diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 94813bcc91..55793495fb 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1 +1 @@ -No pull request can be accepted unless you first sign the Contributor License Agreement [ CONTRIBUTOR-LICENSE.txt ]. Print it as a PDF and email me a signed PDF (digital signature OK). Submit all PRs to the dev2 branch only. +No pull request can be accepted unless you first sign the Contributor License Agreement (see the PDF agreement in the `Contributor_License` folder). Sign the PDF and email it to me (digital signature OK). Submit all PRs to the dev2 branch only. diff --git a/.github/workflows/build-arch-emu.yaml b/.github/workflows/build-arch-emu.yaml index 7be4c923d8..a7be62ace2 100644 --- a/.github/workflows/build-arch-emu.yaml +++ b/.github/workflows/build-arch-emu.yaml @@ -35,20 +35,22 @@ jobs: matrix: # For available CPU architectures, see: # https://github.com/marketplace/actions/setup-alpine-linux-environment - arch: [x86, aarch64, armv7, ppc64le, s390x] + arch: [x86, aarch64, armv7, ppc64le, s390x, riscv64] include: - arch: x86 - ccache-max: 80M + ccache-max: 64M extra-build-libs: ":GraphBLAS:LAGraph" extra-check-libs: ":GraphBLAS:LAGraph" - arch: aarch64 - ccache-max: 42M + ccache-max: 28M - arch: armv7 - ccache-max: 42M + ccache-max: 25M - arch: ppc64le - ccache-max: 45M + ccache-max: 28M - arch: s390x - ccache-max: 42M + ccache-max: 28M + - arch: riscv64 + ccache-max: 28M name: alpine (${{ matrix.arch }}) @@ -76,11 +78,11 @@ jobs: mpfr-dev lapack-dev python3 - valgrind util-linux-misc autoconf automake libtool + # ${{ matrix.arch != 'riscv64' && 'valgrind' || '' }} - name: get CPU information (emulated) run: lscpu diff --git a/.github/workflows/codeql-analysis.yaml b/.github/workflows/codeql-analysis.yaml index 9972f8a5f3..fb8fc639dd 100644 --- a/.github/workflows/codeql-analysis.yaml +++ b/.github/workflows/codeql-analysis.yaml @@ -26,7 +26,7 @@ jobs: language: ['c-cpp'] # Learn more... # https://docs.github.com/en/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#overriding-automatic-language-detection - group: [other] +# group: [other] # GraphBLAS and LAGraph disabled (the runners run out of memory or # disk space) # group: [other, graph] diff --git a/.github/workflows/macos.yaml b/.github/workflows/macos.yaml index 789761f210..ecf2e20e1f 100644 --- a/.github/workflows/macos.yaml +++ b/.github/workflows/macos.yaml @@ -1,6 +1,9 @@ name: macos on: workflow_dispatch: + schedule: + # Run job every Saturday at 08:20 UTC + - cron: '20 8 * * 6' # push: # branches-ignore: # - '**/dev2' @@ -51,6 +54,8 @@ jobs: brew install --overwrite python@3.10 python@3.11 python@3.12 brew reinstall gcc brew install autoconf automake ccache cmake gmp lapack libomp mpfr openblas + HOMEBREW_PREFIX=$(brew --prefix) + echo "HOMEBREW_PREFIX=$(brew --prefix)" >> $GITHUB_ENV - name: prepare ccache # create key with human readable timestamp @@ -89,8 +94,8 @@ jobs: -DCMAKE_C_COMPILER_LAUNCHER="ccache" \ -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \ -DCMAKE_Fortran_COMPILER_LAUNCHER="ccache" \ - -DBLA_VENDOR="OpenBLAS" \ - -DCMAKE_PREFIX_PATH="/usr/local/opt/lapack;/usr/local/opt/openblas;/usr/local/opt/libomp" \ + -DBLA_VENDOR="Apple" \ + -DCMAKE_PREFIX_PATH="${HOMEBREW_PREFIX}/opt/lapack;${HOMEBREW_PREFIX}/opt/openblas;${HOMEBREW_PREFIX}/opt/libomp" \ .. echo "::endgroup::" echo "::group::Build $lib" @@ -98,89 +103,89 @@ jobs: echo "::endgroup::" done - - name: check_Mongoose + - name: check Mongoose run: | cd ${GITHUB_WORKSPACE}/Mongoose/build ctest . - - name: check_AMD + - name: check AMD run: | cd ${GITHUB_WORKSPACE}/AMD make demos - - name: check_CAMD + - name: check CAMD run: | cd ${GITHUB_WORKSPACE}/CAMD make demos - - name: check_COLAMD + - name: check COLAMD run: | cd ${GITHUB_WORKSPACE}/COLAMD make demos - - name: check_CCOLAMD + - name: check CCOLAMD run: | cd ${GITHUB_WORKSPACE}/CCOLAMD make demos - - name: check_CHOLMOD + - name: check CHOLMOD run: | cd ${GITHUB_WORKSPACE}/CHOLMOD make demos cd ${GITHUB_WORKSPACE}/CHOLMOD/build ctest . - - name: check_CSparse + - name: check CSparse run: | cd ${GITHUB_WORKSPACE}/CSparse make demos - - name: check_CXSparse + - name: check CXSparse run: | cd ${GITHUB_WORKSPACE}/CXSparse make demos - - name: check_LDL + - name: check LDL run: | cd ${GITHUB_WORKSPACE}/LDL make demos - - name: check_KLU + - name: check KLU run: | cd ${GITHUB_WORKSPACE}/KLU make demos - - name: check_UMFPACK + - name: check UMFPACK run: | cd ${GITHUB_WORKSPACE}/UMFPACK make demos - - name: check_RBio + - name: check RBio run: | cd ${GITHUB_WORKSPACE}/RBio make demos - - name: check_SPQR + - name: check SPQR run: | cd ${GITHUB_WORKSPACE}/SPQR make demos - - name: check_SPEX + - name: check SPEX run: | cd ${GITHUB_WORKSPACE}/SPEX make demos - - name: check_GraphBLAS + - name: check GraphBLAS run: | cd ${GITHUB_WORKSPACE}/GraphBLAS make demos - - name: check_LAGraph + - name: check LAGraph run: | cd ${GITHUB_WORKSPACE}/LAGraph make demos - - name: check_ParU + - name: check ParU run: | cd ${GITHUB_WORKSPACE}/ParU make demos @@ -212,7 +217,7 @@ jobs: cd ${GITHUB_WORKSPACE}/Example/build printf "::group::\033[0;32m==>\033[0m Configuring example\n" cmake \ - -DCMAKE_PREFIX_PATH="${GITHUB_WORKSPACE}/lib/cmake;/usr/local/opt/lapack;/usr/local/opt/openblas;/usr/local/opt/libomp" \ + -DCMAKE_PREFIX_PATH="${GITHUB_WORKSPACE}/lib/cmake;${HOMEBREW_PREFIX}/opt/lapack;${HOMEBREW_PREFIX}/opt/openblas;${HOMEBREW_PREFIX}/opt/libomp" \ .. echo "::endgroup::" printf "::group::\033[0;32m==>\033[0m Building example\n" diff --git a/.github/workflows/root-cmakelists.yaml b/.github/workflows/root-cmakelists.yaml index 0f8bc91f29..99481a2242 100644 --- a/.github/workflows/root-cmakelists.yaml +++ b/.github/workflows/root-cmakelists.yaml @@ -305,6 +305,7 @@ jobs: cuda: [without] link: [both] cc: [cl] + cxx: [cl] include: - openmp: without openmp-cmake-flags: "-DSUITESPARSE_USE_OPENMP=OFF" @@ -315,6 +316,7 @@ jobs: -DCMAKE_CUDA_COMPILER_LAUNCHER="ccache" link: both cc: cl + cxx: cl - openmp: with cuda: with cuda-cmake-flags: @@ -325,10 +327,17 @@ jobs: -DBUILD_SHARED_LIBS=OFF -DBUILD_STATIC_LIBS=ON cc: cl + cxx: cl - openmp: with cuda: without link: both cc: clang-cl + cxx: clang-cl + - openmp: with + cuda: without + link: both + cc: clang + cxx: clang++ env: CHERE_INVOKING: 1 @@ -351,7 +360,7 @@ jobs: uses: actions/cache/restore@v4 with: path: C:/Miniconda/envs/test - key: conda:msvc + key: conda:netlib:msvc - name: install packages with conda if: ${{ steps.conda-cache.outputs.cache-hit != 'true' }} @@ -359,8 +368,8 @@ jobs: echo ${{ steps.conda-cache.outputs.cache-hit }} conda info conda list - conda install -y -c intel mkl-devel - conda install -y -c conda-forge --override-channels ccache + conda install -y -c conda-forge --override-channels ccache m2w64-gcc-libs + conda install -y -c conda-forge/label/lapack_rc --override-channels liblapack=3.11 - name: save conda cache if: ${{ steps.conda-cache.outputs.cache-hit != 'true' }} @@ -384,12 +393,12 @@ jobs: msystem: UCRT64 - - uses: Jimver/cuda-toolkit@v0.2.14 + - uses: Jimver/cuda-toolkit@v0.2.16 name: install CUDA toolkit if: matrix.cuda == 'with' id: cuda-toolkit with: - cuda: '12.2.0' + cuda: '12.5.0' #See https://docs.nvidia.com/cuda/cuda-installation-guide-microsoft-windows/index.html#install-the-cuda-software method: 'local' # Do not cache the installer (~3 GiB). It doesn't speed up the @@ -455,11 +464,19 @@ jobs: if [ ${{ matrix.cuda }} = 'with' ]; then _extra_config+=(-DCUDAToolkit_ROOT="$(cygpath -m "${{ steps.cuda-toolkit.outputs.CUDA_PATH }}")") _extra_config+=(-DCMAKE_CUDA_COMPILER="$(cygpath -m "${{ steps.cuda-toolkit.outputs.CUDA_PATH }}")/bin/nvcc.exe") + # MSVC 19.40 is still Visual Studio 2022. + # Suppress erroneous version check. + _extra_config+=(-DCMAKE_CUDA_FLAGS=-allow-unsupported-compiler) + fi + if [[ ${{ matrix.cc }} == clang* ]]; then + # Move away (old) clang/clang++ and clang-cl that would be in PATH + # to make sure that we use the one that matches the MSVC runtime. + mv C:/Program\ Files/LLVM C:/Program\ Files/LLVM_old fi mkdir -p ${GITHUB_WORKSPACE}/build && cd ${GITHUB_WORKSPACE}/build cmake -G"Ninja Multi-Config" \ -DCMAKE_C_COMPILER=${{ matrix.cc }} \ - -DCMAKE_CXX_COMPILER=${{ matrix.cc }} \ + -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \ -DCMAKE_BUILD_TYPE="Release" \ -DCMAKE_INSTALL_PREFIX=".." \ -DCMAKE_PREFIX_PATH="C:/Miniconda/envs/test/Library;${GITHUB_WORKSPACE}/dependencies" \ @@ -467,7 +484,7 @@ jobs: -DCMAKE_CXX_COMPILER_LAUNCHER="ccache" \ -DCMAKE_Fortran_COMPILER_LAUNCHER="ccache" \ -DSUITESPARSE_USE_FORTRAN=OFF \ - -DBLA_VENDOR="All" \ + -DSUITESPARSE_C_TO_FORTRAN="(name,NAME) name##_" \ -DPython_EXECUTABLE="C:/msys64/ucrt64/bin/python.exe" \ -DSUITESPARSE_DEMOS=OFF \ -DBUILD_TESTING=OFF \ @@ -524,7 +541,7 @@ jobs: printf "::group::\033[0;32m==>\033[0m Configuring example\n" cmake -G"Ninja Multi-Config" \ -DCMAKE_C_COMPILER=${{ matrix.cc }} \ - -DCMAKE_CXX_COMPILER=${{ matrix.cc }} \ + -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \ -DCMAKE_PREFIX_PATH="${GITHUB_WORKSPACE}/lib/cmake;C:/Miniconda/envs/test/Library;${GITHUB_WORKSPACE}/dependencies" \ -DBLA_VENDOR="All" \ ${{ matrix.openmp-cmake-flags }} \ @@ -562,7 +579,7 @@ jobs: cd build cmake -G"Ninja Multi-Config" \ -DCMAKE_C_COMPILER=${{ matrix.cc }} \ - -DCMAKE_CXX_COMPILER=${{ matrix.cc }} \ + -DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \ -DCMAKE_PREFIX_PATH="${GITHUB_WORKSPACE}/lib/cmake;C:/Miniconda/envs/test/Library;${GITHUB_WORKSPACE}/dependencies" \ .. cmake --build . --config Release diff --git a/AMD/CMakeLists.txt b/AMD/CMakeLists.txt index 372e60e6cd..5714008688 100644 --- a/AMD/CMakeLists.txt +++ b/AMD/CMakeLists.txt @@ -12,10 +12,10 @@ cmake_minimum_required ( VERSION 3.22 ) -set ( AMD_DATE "Mar 22, 2024" ) +set ( AMD_DATE "June 20, 2024" ) set ( AMD_VERSION_MAJOR 3 CACHE STRING "" FORCE ) set ( AMD_VERSION_MINOR 3 CACHE STRING "" FORCE ) -set ( AMD_VERSION_SUB 2 CACHE STRING "" FORCE ) +set ( AMD_VERSION_SUB 3 CACHE STRING "" FORCE ) message ( STATUS "Building AMD version: v" ${AMD_VERSION_MAJOR}. @@ -49,10 +49,10 @@ endif ( ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.7.0 + find_package ( SuiteSparse_config 7.8.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) endif ( ) endif ( ) @@ -90,7 +90,8 @@ if ( BUILD_SHARED_LIBS ) OUTPUT_NAME amd SOVERSION ${AMD_VERSION_MAJOR} PUBLIC_HEADER "Include/amd.h" - WINDOWS_EXPORT_ALL_SYMBOLS ON ) + WINDOWS_EXPORT_ALL_SYMBOLS ON + LINKER_LANGUAGE C ) if ( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.25" ) set_target_properties ( AMD PROPERTIES EXPORT_NO_SYSTEM ON ) @@ -111,7 +112,8 @@ if ( BUILD_STATIC_LIBS ) C_STANDARD 11 C_STANDARD_REQUIRED ON OUTPUT_NAME amd - PUBLIC_HEADER "Include/amd.h" ) + PUBLIC_HEADER "Include/amd.h" + LINKER_LANGUAGE C ) if ( MSVC OR ("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC") ) set_target_properties ( AMD_static PROPERTIES diff --git a/AMD/Config/amd.h.in b/AMD/Config/amd.h.in index 956af0102c..ffbfbf26e2 100644 --- a/AMD/Config/amd.h.in +++ b/AMD/Config/amd.h.in @@ -392,8 +392,8 @@ void amd_version (int version [3]) ; #define AMD__VERSION SUITESPARSE__VERCODE(@AMD_VERSION_MAJOR@,@AMD_VERSION_MINOR@,@AMD_VERSION_SUB@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "AMD @AMD_VERSION_MAJOR@.@AMD_VERSION_MINOR@.@AMD_VERSION_SUB@ requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "AMD @AMD_VERSION_MAJOR@.@AMD_VERSION_MINOR@.@AMD_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later" #endif #endif diff --git a/AMD/Demo/amd_demo.out b/AMD/Demo/amd_demo.out index 0422dc5be3..4a29c4aaf3 100644 --- a/AMD/Demo/amd_demo.out +++ b/AMD/Demo/amd_demo.out @@ -1,7 +1,7 @@ -AMD version 3.3.2, date: Mar 22, 2024 +AMD version 3.3.3, date: June 20, 2024 AMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24: -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -115,7 +115,7 @@ Plot of input matrix pattern: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from amd_order: 0 (should be 0) -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 diff --git a/AMD/Demo/amd_demo2.out b/AMD/Demo/amd_demo2.out index f384d828d5..79bf653cce 100644 --- a/AMD/Demo/amd_demo2.out +++ b/AMD/Demo/amd_demo2.out @@ -1,7 +1,7 @@ AMD demo, with a jumbled version of the 24-by-24 Harwell/Boeing matrix, can_24: -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -144,7 +144,7 @@ Plot of symmetric matrix to be ordered by amd_order: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from amd_order: 1 (should be 1) -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 24 nz, number of nonzeros in A: 102 diff --git a/AMD/Demo/amd_l_demo.out b/AMD/Demo/amd_l_demo.out index 019ce0ce9c..3942f2a7d1 100644 --- a/AMD/Demo/amd_l_demo.out +++ b/AMD/Demo/amd_l_demo.out @@ -1,7 +1,7 @@ -AMD version 3.3.2, date: Mar 22, 2024 +AMD version 3.3.3, date: June 20, 2024 AMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24: -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -115,7 +115,7 @@ Plot of input matrix pattern: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from amd_l_order: 0 (should be 0) -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 diff --git a/AMD/Doc/AMD_UserGuide.pdf b/AMD/Doc/AMD_UserGuide.pdf index 7b3fd6bf6a..7535882bde 100644 Binary files a/AMD/Doc/AMD_UserGuide.pdf and b/AMD/Doc/AMD_UserGuide.pdf differ diff --git a/AMD/Doc/ChangeLog b/AMD/Doc/ChangeLog index 134b5ca9ae..4b80d7e8b3 100644 --- a/AMD/Doc/ChangeLog +++ b/AMD/Doc/ChangeLog @@ -1,3 +1,7 @@ +June 20, 2024: version 3.3.3 + + * minor update for MATLAB on Windows + Mar 22, 2024: version 3.3.2 * minor updates to build system diff --git a/AMD/Doc/amd_version.tex b/AMD/Doc/amd_version.tex index c36dbd4097..26f2346a3b 100644 --- a/AMD/Doc/amd_version.tex +++ b/AMD/Doc/amd_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/AMD -\date{VERSION 3.3.2, Mar 22, 2024} +\date{VERSION 3.3.3, June 20, 2024} diff --git a/AMD/Include/amd.h b/AMD/Include/amd.h index a253a31060..1417b3a255 100644 --- a/AMD/Include/amd.h +++ b/AMD/Include/amd.h @@ -382,18 +382,18 @@ void amd_version (int version [3]) ; * Versions 1.1 and earlier of AMD do not include a #define'd version number. */ -#define AMD_DATE "Mar 22, 2024" +#define AMD_DATE "June 20, 2024" #define AMD_MAIN_VERSION 3 #define AMD_SUB_VERSION 3 -#define AMD_SUBSUB_VERSION 2 +#define AMD_SUBSUB_VERSION 3 #define AMD_VERSION_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub) #define AMD_VERSION AMD_VERSION_CODE(3,3) -#define AMD__VERSION SUITESPARSE__VERCODE(3,3,2) +#define AMD__VERSION SUITESPARSE__VERCODE(3,3,3) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "AMD 3.3.2 requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "AMD 3.3.3 requires SuiteSparse_config 7.8.0 or later" #endif #endif diff --git a/AMD/MATLAB/amd_make.m b/AMD/MATLAB/amd_make.m index 7c33cfc757..db39b7808b 100644 --- a/AMD/MATLAB/amd_make.m +++ b/AMD/MATLAB/amd_make.m @@ -22,6 +22,11 @@ d = ['-silent ' d] ; end +if (ispc) + % disable the SuiteSparse_config timer + d = ['-DNTIMER ' d] ; +end + i = sprintf ('-I../Include -I../../SuiteSparse_config') ; cmd = sprintf ('mex -O %s -output amd2 %s amd_mex.c %s', d, i, ... '../../SuiteSparse_config/SuiteSparse_config.c') ; diff --git a/CAMD/CMakeLists.txt b/CAMD/CMakeLists.txt index ae1bcd0f04..9668f9f21b 100644 --- a/CAMD/CMakeLists.txt +++ b/CAMD/CMakeLists.txt @@ -11,10 +11,10 @@ cmake_minimum_required ( VERSION 3.22 ) -set ( CAMD_DATE "Mar 22, 2024" ) +set ( CAMD_DATE "June 20, 2024" ) set ( CAMD_VERSION_MAJOR 3 CACHE STRING "" FORCE ) set ( CAMD_VERSION_MINOR 3 CACHE STRING "" FORCE ) -set ( CAMD_VERSION_SUB 2 CACHE STRING "" FORCE ) +set ( CAMD_VERSION_SUB 3 CACHE STRING "" FORCE ) message ( STATUS "Building CAMD version: v" ${CAMD_VERSION_MAJOR}. @@ -43,10 +43,10 @@ include ( SuiteSparsePolicy ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.7.0 + find_package ( SuiteSparse_config 7.8.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) endif ( ) endif ( ) diff --git a/CAMD/Config/camd.h.in b/CAMD/Config/camd.h.in index 72855cf799..d9db3bade2 100644 --- a/CAMD/Config/camd.h.in +++ b/CAMD/Config/camd.h.in @@ -402,8 +402,8 @@ void camd_version (int version [3]) ; #define CAMD__VERSION SUITESPARSE__VERCODE(@CAMD_VERSION_MAJOR@,@CAMD_VERSION_MINOR@,@CAMD_VERSION_SUB@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "CAMD @CAMD_VERSION_MAJOR@.@CAMD_VERSION_MINOR@.@CAMD_VERSION_SUB@ requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "CAMD @CAMD_VERSION_MAJOR@.@CAMD_VERSION_MINOR@.@CAMD_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later" #endif #endif diff --git a/CAMD/Demo/camd_demo.out b/CAMD/Demo/camd_demo.out index 42af28485b..22318b3ef5 100644 --- a/CAMD/Demo/camd_demo.out +++ b/CAMD/Demo/camd_demo.out @@ -1,7 +1,7 @@ -CAMD version 3.3.2, date: Mar 22, 2024 +CAMD version 3.3.3, date: June 20, 2024 CAMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24: -camd version 3.3.2, Mar 22, 2024: approximate minimum degree ordering: +camd version 3.3.3, June 20, 2024: approximate minimum degree ordering: dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -115,7 +115,7 @@ Plot of input matrix pattern: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from camd_order: 0 (should be 0) -CAMD version 3.3.2, Mar 22, 2024, results: +CAMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 diff --git a/CAMD/Demo/camd_demo2.out b/CAMD/Demo/camd_demo2.out index 9464c3020d..5cce27dc5a 100644 --- a/CAMD/Demo/camd_demo2.out +++ b/CAMD/Demo/camd_demo2.out @@ -1,7 +1,7 @@ CAMD demo, with a jumbled version of the 24-by-24 Harwell/Boeing matrix, can_24: -camd version 3.3.2, Mar 22, 2024: approximate minimum degree ordering: +camd version 3.3.3, June 20, 2024: approximate minimum degree ordering: dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -144,7 +144,7 @@ Plot of symmetric matrix to be ordered by camd_order: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from camd_order: 1 (should be 1) -CAMD version 3.3.2, Mar 22, 2024, results: +CAMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 24 nz, number of nonzeros in A: 102 diff --git a/CAMD/Demo/camd_l_demo.out b/CAMD/Demo/camd_l_demo.out index f5e603b51b..10c4c12994 100644 --- a/CAMD/Demo/camd_l_demo.out +++ b/CAMD/Demo/camd_l_demo.out @@ -1,7 +1,7 @@ -CAMD version 3.3.2, date: Mar 22, 2024 +CAMD version 3.3.3, date: June 20, 2024 CAMD demo, with the 24-by-24 Harwell/Boeing matrix, can_24: -camd version 3.3.2, Mar 22, 2024: approximate minimum degree ordering: +camd version 3.3.3, June 20, 2024: approximate minimum degree ordering: dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -115,7 +115,7 @@ Plot of input matrix pattern: 23: . . . . . . X . . . . X X . . . . . . . . . . X return value from camd_l_order: 0 (should be 0) -CAMD version 3.3.2, Mar 22, 2024, results: +CAMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 diff --git a/CAMD/Doc/CAMD_UserGuide.pdf b/CAMD/Doc/CAMD_UserGuide.pdf index 7ab8a6d5b1..d7d6e03985 100644 Binary files a/CAMD/Doc/CAMD_UserGuide.pdf and b/CAMD/Doc/CAMD_UserGuide.pdf differ diff --git a/CAMD/Doc/ChangeLog b/CAMD/Doc/ChangeLog index a7b5240818..7617594ca1 100644 --- a/CAMD/Doc/ChangeLog +++ b/CAMD/Doc/ChangeLog @@ -1,3 +1,7 @@ +June 20, 2024: version 3.3.3 + + * minor update for MATLAB on Windows + Mar 22, 2024: version 3.3.2 * minor updates to build system diff --git a/CAMD/Doc/camd_version.tex b/CAMD/Doc/camd_version.tex index 21d928975d..ea8dd3a481 100644 --- a/CAMD/Doc/camd_version.tex +++ b/CAMD/Doc/camd_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/CAMD -\date{VERSION 3.3.2, Mar 22, 2024} +\date{VERSION 3.3.3, June 20, 2024} diff --git a/CAMD/Include/camd.h b/CAMD/Include/camd.h index 536340653d..b73ec1901c 100644 --- a/CAMD/Include/camd.h +++ b/CAMD/Include/camd.h @@ -392,18 +392,18 @@ void camd_version (int version [3]) ; * #endif */ -#define CAMD_DATE "Mar 22, 2024" +#define CAMD_DATE "June 20, 2024" #define CAMD_MAIN_VERSION 3 #define CAMD_SUB_VERSION 3 -#define CAMD_SUBSUB_VERSION 2 +#define CAMD_SUBSUB_VERSION 3 #define CAMD_VERSION_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub) #define CAMD_VERSION CAMD_VERSION_CODE(3,3) -#define CAMD__VERSION SUITESPARSE__VERCODE(3,3,2) +#define CAMD__VERSION SUITESPARSE__VERCODE(3,3,3) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "CAMD 3.3.2 requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "CAMD 3.3.3 requires SuiteSparse_config 7.8.0 or later" #endif #endif diff --git a/CAMD/MATLAB/camd_make.m b/CAMD/MATLAB/camd_make.m index fad8ea9aa6..177fc92ba2 100644 --- a/CAMD/MATLAB/camd_make.m +++ b/CAMD/MATLAB/camd_make.m @@ -22,6 +22,11 @@ d = ['-silent ' d] ; end +if (ispc) + % disable the SuiteSparse_config timer + d = ['-DNTIMER ' d] ; +end + i = sprintf ('-I../Include -I../../SuiteSparse_config') ; cmd = sprintf ('mex -O %s -output camd %s camd_mex.c %s', d, i, ... '../../SuiteSparse_config/SuiteSparse_config.c') ; diff --git a/CCOLAMD/CMakeLists.txt b/CCOLAMD/CMakeLists.txt index 723cc6f2be..615ce8156c 100644 --- a/CCOLAMD/CMakeLists.txt +++ b/CCOLAMD/CMakeLists.txt @@ -11,10 +11,10 @@ cmake_minimum_required ( VERSION 3.22 ) -set ( CCOLAMD_DATE "Mar 22, 2024" ) +set ( CCOLAMD_DATE "June 20, 2024" ) set ( CCOLAMD_VERSION_MAJOR 3 CACHE STRING "" FORCE ) set ( CCOLAMD_VERSION_MINOR 3 CACHE STRING "" FORCE ) -set ( CCOLAMD_VERSION_SUB 3 CACHE STRING "" FORCE ) +set ( CCOLAMD_VERSION_SUB 4 CACHE STRING "" FORCE ) message ( STATUS "Building CCOLAMD version: v" ${CCOLAMD_VERSION_MAJOR}. @@ -43,10 +43,10 @@ include ( SuiteSparsePolicy ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.7.0 + find_package ( SuiteSparse_config 7.8.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) endif ( ) endif ( ) diff --git a/CCOLAMD/Config/ccolamd.h.in b/CCOLAMD/Config/ccolamd.h.in index 895dcaa097..8a02db8908 100644 --- a/CCOLAMD/Config/ccolamd.h.in +++ b/CCOLAMD/Config/ccolamd.h.in @@ -46,8 +46,8 @@ #define CCOLAMD__VERSION SUITESPARSE__VERCODE(@CCOLAMD_VERSION_MAJOR@,@CCOLAMD_VERSION_MINOR@,@CCOLAMD_VERSION_SUB@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "CCOLAMD @CCOLAMD_VERSION_MAJOR@.@CCOLAMD_VERSION_MINOR@.@CCOLAMD_VERSION_SUB@ requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "CCOLAMD @CCOLAMD_VERSION_MAJOR@.@CCOLAMD_VERSION_MINOR@.@CCOLAMD_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later" #endif /* ========================================================================== */ diff --git a/CCOLAMD/Demo/ccolamd_example.out b/CCOLAMD/Demo/ccolamd_example.out index 6d263377ad..78580a59be 100644 --- a/CCOLAMD/Demo/ccolamd_example.out +++ b/CCOLAMD/Demo/ccolamd_example.out @@ -1,4 +1,4 @@ -CCOLAMD v3.3.3 +CCOLAMD v3.3.4 ccolamd 5-by-4 input matrix: Column 0, with 3 entries: row 0 @@ -16,7 +16,7 @@ Column 3, with 2 entries: row 1 row 3 -ccolamd version 3.3.3, Mar 22, 2024: OK. +ccolamd version 3.3.4, June 20, 2024: OK. ccolamd: number of dense or empty rows ignored: 0 ccolamd: number of dense or empty columns ignored: 0 ccolamd: number of garbage collections performed: 0 @@ -39,7 +39,7 @@ Column 3, with 1 entries: row 4 Column 4, with 0 entries: -csymamd version 3.3.3, Mar 22, 2024: OK. +csymamd version 3.3.4, June 20, 2024: OK. csymamd: number of dense or empty rows ignored: 0 csymamd: number of dense or empty columns ignored: 0 csymamd: number of garbage collections performed: 0 diff --git a/CCOLAMD/Demo/ccolamd_l_example.out b/CCOLAMD/Demo/ccolamd_l_example.out index ab5776af6b..70bbb9e91d 100644 --- a/CCOLAMD/Demo/ccolamd_l_example.out +++ b/CCOLAMD/Demo/ccolamd_l_example.out @@ -1,4 +1,4 @@ -CCOLAMD v3.3.3 +CCOLAMD v3.3.4 ccolamd 5-by-4 input matrix: Column 0, with 3 entries: row 0 @@ -16,7 +16,7 @@ Column 3, with 2 entries: row 1 row 3 -ccolamd version 3.3.3, Mar 22, 2024: OK. +ccolamd version 3.3.4, June 20, 2024: OK. ccolamd: number of dense or empty rows ignored: 0 ccolamd: number of dense or empty columns ignored: 0 ccolamd: number of garbage collections performed: 0 @@ -39,7 +39,7 @@ Column 3, with 1 entries: row 4 Column 4, with 0 entries: -csymamd version 3.3.3, Mar 22, 2024: OK. +csymamd version 3.3.4, June 20, 2024: OK. csymamd: number of dense or empty rows ignored: 0 csymamd: number of dense or empty columns ignored: 0 csymamd: number of garbage collections performed: 0 diff --git a/CCOLAMD/Doc/ChangeLog b/CCOLAMD/Doc/ChangeLog index d2146eb441..adf919c780 100644 --- a/CCOLAMD/Doc/ChangeLog +++ b/CCOLAMD/Doc/ChangeLog @@ -1,3 +1,7 @@ +June 20, 2024: version 3.3.4 + + * minor update for MATLAB on Windows + Mar 22, 2024: version 3.3.3 * minor updates to build system diff --git a/CCOLAMD/Include/ccolamd.h b/CCOLAMD/Include/ccolamd.h index a8c92ef95a..862506127b 100644 --- a/CCOLAMD/Include/ccolamd.h +++ b/CCOLAMD/Include/ccolamd.h @@ -36,18 +36,18 @@ * #endif */ -#define CCOLAMD_DATE "Mar 22, 2024" +#define CCOLAMD_DATE "June 20, 2024" #define CCOLAMD_MAIN_VERSION 3 #define CCOLAMD_SUB_VERSION 3 -#define CCOLAMD_SUBSUB_VERSION 3 +#define CCOLAMD_SUBSUB_VERSION 4 #define CCOLAMD_VERSION_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub) #define CCOLAMD_VERSION CCOLAMD_VERSION_CODE(3,3) -#define CCOLAMD__VERSION SUITESPARSE__VERCODE(3,3,3) +#define CCOLAMD__VERSION SUITESPARSE__VERCODE(3,3,4) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "CCOLAMD 3.3.3 requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "CCOLAMD 3.3.4 requires SuiteSparse_config 7.8.0 or later" #endif /* ========================================================================== */ diff --git a/CCOLAMD/MATLAB/ccolamd_make.m b/CCOLAMD/MATLAB/ccolamd_make.m index 720122b2f3..fd31644c07 100644 --- a/CCOLAMD/MATLAB/ccolamd_make.m +++ b/CCOLAMD/MATLAB/ccolamd_make.m @@ -21,6 +21,11 @@ d = ['-silent ' d] ; end +if (ispc) + % disable the SuiteSparse_config timer + d = ['-DNTIMER ' d] ; +end + src = '../Source/ccolamd_l.c ../../SuiteSparse_config/SuiteSparse_config.c' ; cmd = sprintf ( ... 'mex -O %s -I../../SuiteSparse_config -I../Include -output ', d) ; diff --git a/CHOLMOD/CMakeLists.txt b/CHOLMOD/CMakeLists.txt index 78d2588792..e6dbdc137d 100644 --- a/CHOLMOD/CMakeLists.txt +++ b/CHOLMOD/CMakeLists.txt @@ -12,10 +12,10 @@ # cmake 3.22 is required to find the BLAS/LAPACK cmake_minimum_required ( VERSION 3.22 ) -set ( CHOLMOD_DATE "Mar 22, 2024" ) +set ( CHOLMOD_DATE "June 20, 2024" ) set ( CHOLMOD_VERSION_MAJOR 5 CACHE STRING "" FORCE ) -set ( CHOLMOD_VERSION_MINOR 2 CACHE STRING "" FORCE ) -set ( CHOLMOD_VERSION_SUB 1 CACHE STRING "" FORCE ) +set ( CHOLMOD_VERSION_MINOR 3 CACHE STRING "" FORCE ) +set ( CHOLMOD_VERSION_SUB 0 CACHE STRING "" FORCE ) message ( STATUS "Building CHOLMOD version: v" ${CHOLMOD_VERSION_MAJOR}. @@ -112,10 +112,10 @@ endif ( ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.7.0 + find_package ( SuiteSparse_config 7.8.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) endif ( ) find_package ( AMD 3.3.2 @@ -302,6 +302,55 @@ endif ( ) # configure files #------------------------------------------------------------------------------- +if ( CHOLMOD_CHECK ) + set ( CHOLMOD_HAS_CHECK ON ) +else ( ) + set ( CHOLMOD_HAS_CHECK OFF ) +endif ( ) + +if ( CHOLMOD_CHOLESKY ) + set ( CHOLMOD_HAS_CHOLESKY ON ) +else ( ) + set ( CHOLMOD_HAS_CHOLESKY OFF ) +endif ( ) + +if ( CHOLMOD_PARTITION ) + set ( CHOLMOD_HAS_PARTITION ON ) +else ( ) + set ( CHOLMOD_HAS_PARTITION OFF ) +endif ( ) + +if ( CHOLMOD_CAMD ) + # CHOLMOD has both CAMD and CCOLAMD + set ( CHOLMOD_HAS_CAMD ON ) +else ( ) + set ( CHOLMOD_HAS_CAMD OFF ) +endif ( ) + +if ( CHOLMOD_MATRIXOPS ) + set ( CHOLMOD_HAS_MATRIXOPS ON ) +else ( ) + set ( CHOLMOD_HAS_MATRIXOPS OFF ) +endif ( ) + +if ( CHOLMOD_MODIFY ) + set ( CHOLMOD_HAS_MODIFY ON ) +else ( ) + set ( CHOLMOD_HAS_MODIFY OFF ) +endif ( ) + +if ( CHOLMOD_SUPERNODAL ) + set ( CHOLMOD_HAS_SUPERNODAL ON ) +else ( ) + set ( CHOLMOD_HAS_SUPERNODAL OFF ) +endif ( ) + +if ( CHOLMOD_GPL ) + set ( CHOLMOD_HAS_GPL ON ) +else ( ) + set ( CHOLMOD_HAS_GPL OFF ) +endif ( ) + configure_file ( "Config/cholmod.h.in" "${PROJECT_SOURCE_DIR}/Include/cholmod.h" NEWLINE_STYLE LF ) @@ -334,7 +383,8 @@ if ( BUILD_SHARED_LIBS ) OUTPUT_NAME cholmod SOVERSION ${CHOLMOD_VERSION_MAJOR} PUBLIC_HEADER "Include/cholmod.h" - WINDOWS_EXPORT_ALL_SYMBOLS ON ) + WINDOWS_EXPORT_ALL_SYMBOLS ON + LINKER_LANGUAGE C ) if ( CHOLMOD_HAS_CUDA ) set_target_properties ( CHOLMOD PROPERTIES CUDA_SEPARABLE_COMPILATION ON ) @@ -361,7 +411,8 @@ if ( BUILD_STATIC_LIBS ) C_STANDARD 11 C_STANDARD_REQUIRED ON OUTPUT_NAME cholmod - PUBLIC_HEADER "Include/cholmod.h" ) + PUBLIC_HEADER "Include/cholmod.h" + LINKER_LANGUAGE C ) if ( MSVC OR ("${CMAKE_C_SIMULATE_ID}" STREQUAL "MSVC") ) set_target_properties ( CHOLMOD_static PROPERTIES @@ -522,13 +573,15 @@ endif ( ) # CHOLMOD_CUDA if ( CHOLMOD_HAS_CUDA ) - if ( BUILD_SHARED_LIBS ) - target_compile_definitions ( CHOLMOD PUBLIC "CHOLMOD_HAS_CUDA" ) - endif ( ) - set ( CHOLMOD_CFLAGS "${CHOLMOD_CFLAGS} -DCHOLMOD_HAS_CUDA" ) - if ( BUILD_STATIC_LIBS ) - target_compile_definitions ( CHOLMOD_static PUBLIC "CHOLMOD_HAS_CUDA" ) - endif ( ) +# cmake now configures cholmod.h with "#define CHOLMOD_HAS_CUDA" if CHOLMOD is +# being compiled with CUDA, so the -DCHOLMOD_HAS_CUDA flag is no longer needed. +# if ( BUILD_SHARED_LIBS ) +# target_compile_definitions ( CHOLMOD PUBLIC "CHOLMOD_HAS_CUDA" ) +# endif ( ) +# set ( CHOLMOD_CFLAGS "${CHOLMOD_CFLAGS} -DCHOLMOD_HAS_CUDA" ) +# if ( BUILD_STATIC_LIBS ) +# target_compile_definitions ( CHOLMOD_static PUBLIC "CHOLMOD_HAS_CUDA" ) +# endif ( ) if ( BUILD_SHARED_LIBS ) target_link_libraries ( CHOLMOD PRIVATE CUDA::nvrtc CUDA::cudart_static CUDA::cublas ) target_include_directories ( CHOLMOD INTERFACE diff --git a/CHOLMOD/Check/cholmod_check.c b/CHOLMOD/Check/cholmod_check.c index 1ed0f9fbb7..d84604fc0e 100644 --- a/CHOLMOD/Check/cholmod_check.c +++ b/CHOLMOD/Check/cholmod_check.c @@ -623,32 +623,32 @@ int CHOLMOD(gpu_stats) int print = Common->print ; double cpu_time, gpu_time ; - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) P2 ("%s", "\nCHOLMOD GPU/CPU statistics:\n") ; #else P2 ("%s", "\nCHOLMOD BLAS statistics:\n") ; #endif P2 ("SYRK CPU calls %12.0f", (double) Common->CHOLMOD_CPU_SYRK_CALLS) ; P2 (" time %12.4e\n", Common->CHOLMOD_CPU_SYRK_TIME) ; - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) P2 (" GPU calls %12.0f", (double) Common->CHOLMOD_GPU_SYRK_CALLS) ; P2 (" time %12.4e\n", Common->CHOLMOD_GPU_SYRK_TIME) ; #endif P2 ("GEMM CPU calls %12.0f", (double) Common->CHOLMOD_CPU_GEMM_CALLS) ; P2 (" time %12.4e\n", Common->CHOLMOD_CPU_GEMM_TIME) ; - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) P2 (" GPU calls %12.0f", (double) Common->CHOLMOD_GPU_GEMM_CALLS) ; P2 (" time %12.4e\n", Common->CHOLMOD_GPU_GEMM_TIME) ; #endif P2 ("POTRF CPU calls %12.0f", (double) Common->CHOLMOD_CPU_POTRF_CALLS) ; P2 (" time %12.4e\n", Common->CHOLMOD_CPU_POTRF_TIME) ; - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) P2 (" GPU calls %12.0f", (double) Common->CHOLMOD_GPU_POTRF_CALLS) ; P2 (" time %12.4e\n", Common->CHOLMOD_GPU_POTRF_TIME) ; #endif P2 ("TRSM CPU calls %12.0f", (double) Common->CHOLMOD_CPU_TRSM_CALLS) ; P2 (" time %12.4e\n", Common->CHOLMOD_CPU_TRSM_TIME) ; - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) P2 (" GPU calls %12.0f", (double) Common->CHOLMOD_GPU_TRSM_CALLS) ; P2 (" time %12.4e\n", Common->CHOLMOD_GPU_TRSM_TIME) ; #endif @@ -659,7 +659,7 @@ int CHOLMOD(gpu_stats) gpu_time = Common->CHOLMOD_GPU_SYRK_TIME + Common->CHOLMOD_GPU_TRSM_TIME + Common->CHOLMOD_GPU_GEMM_TIME + Common->CHOLMOD_GPU_POTRF_TIME ; - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) P2 ("time in the BLAS: CPU %12.4e", cpu_time) ; P2 (" GPU %12.4e", gpu_time) ; P2 (" total: %12.4e\n", cpu_time + gpu_time) ; diff --git a/CHOLMOD/Cholesky/cholmod_amd.c b/CHOLMOD/Cholesky/cholmod_amd.c index 8c334206cd..0049969a90 100644 --- a/CHOLMOD/Cholesky/cholmod_amd.c +++ b/CHOLMOD/Cholesky/cholmod_amd.c @@ -33,8 +33,8 @@ #ifndef NCHOLESKY #include "amd.h" -#if (!defined (AMD_VERSION) || (AMD_VERSION < AMD_VERSION_CODE (3,3))) -#error "CHOLMOD:Cholesky requires AMD 3.3.1 or later" +#if (!defined (AMD__VERSION) || (AMD__VERSION < SUITESPARSE__VERCODE(3,3,3))) +#error "CHOLMOD:Cholesky requires AMD 3.3.3 or later" #endif //------------------------------------------------------------------------------ diff --git a/CHOLMOD/Cholesky/cholmod_colamd.c b/CHOLMOD/Cholesky/cholmod_colamd.c index 4c1c3f0ab0..7a633e67fd 100644 --- a/CHOLMOD/Cholesky/cholmod_colamd.c +++ b/CHOLMOD/Cholesky/cholmod_colamd.c @@ -28,8 +28,8 @@ #ifndef NCHOLESKY #include "colamd.h" -#if (!defined (COLAMD_VERSION) || (COLAMD_VERSION < COLAMD_VERSION_CODE (3,3))) -#error "CHOLMOD:Cholesky requires COLAMD 3.3.1 or later" +#if (!defined (COLAMD__VERSION) || (COLAMD__VERSION < SUITESPARSE__VERCODE(3,3,4))) +#error "CHOLMOD:Cholesky requires COLAMD 3.3.4 or later" #endif //------------------------------------------------------------------------------ diff --git a/CHOLMOD/Config/cholmod.h.in b/CHOLMOD/Config/cholmod.h.in index cf6691c8f2..29e24c4b5f 100644 --- a/CHOLMOD/Config/cholmod.h.in +++ b/CHOLMOD/Config/cholmod.h.in @@ -309,8 +309,8 @@ int cholmod_l_version (int version [3]) ; #define CHOLMOD__VERSION SUITESPARSE__VERCODE(@CHOLMOD_VERSION_MAJOR@,@CHOLMOD_VERSION_MINOR@,@CHOLMOD_VERSION_SUB@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "CHOLMOD @CHOLMOD_VERSION_MAJOR@.@CHOLMOD_VERSION_MINOR@.@CHOLMOD_VERSION_SUB@ requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "CHOLMOD @CHOLMOD_VERSION_MAJOR@.@CHOLMOD_VERSION_MINOR@.@CHOLMOD_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later" #endif //------------------------------------------------------------------------------ @@ -320,6 +320,7 @@ int cholmod_l_version (int version [3]) ; // You do not have to edit any CHOLMOD files to compile and install CHOLMOD. // However, if you do not use all of CHOLMOD's modules, you need to compile // with the appropriate flag, or edit this file to add the appropriate #define. +// cmake configures these options for you. // // Compiler flags for CHOLMOD // @@ -349,6 +350,66 @@ int cholmod_l_version (int version [3]) ; // #define NPRINT // #define NGPL +// These flags are configured by cmake when CHOLMOD is compiled: +#cmakedefine CHOLMOD_HAS_GPL +#cmakedefine CHOLMOD_HAS_CHECK +#cmakedefine CHOLMOD_HAS_CHOLESKY +#cmakedefine CHOLMOD_HAS_CAMD +#cmakedefine CHOLMOD_HAS_PARTITION +#cmakedefine CHOLMOD_HAS_MATRIXOPS +#cmakedefine CHOLMOD_HAS_MODIFY +#cmakedefine CHOLMOD_HAS_SUPERNODAL +#cmakedefine CHOLMOD_HAS_CUDA +#cmakedefine CHOLMOD_HAS_OPENMP + +#if defined(MATLAB_MEX_FILE) || defined(MATHWORKS) +// CHOLMOD MATLAB interface does not use CUDA +#undef CHOLMOD_HAS_CUDA +#endif + +// The cmake flags defined above also ensure CHOLMOD knows which modules +// are available when it was compiled: + +#ifndef CHOLMOD_HAS_GPL + #undef NGPL + #define NGPL +#endif + +#ifndef CHOLMOD_HAS_CHECK + #undef NCHECK + #define NCHECK +#endif + +#ifndef CHOLMOD_HAS_CHOLESKY + #undef NCHOLESKY + #define NCHOLESKY +#endif + +#ifndef CHOLMOD_HAS_CAMD + #undef NCAMD + #define NCAMD +#endif + +#ifndef CHOLMOD_HAS_PARTITION + #undef NPARTITION + #define NPARTITION +#endif + +#ifndef CHOLMOD_HAS_MATRIXOPS + #undef NMATRIXOPS + #define NMATRIXOPS +#endif + +#ifndef CHOLMOD_HAS_MODIFY + #undef NMODIFY + #define NMODIFY +#endif + +#ifndef CHOLMOD_HAS_SUPERNODAL + #undef NSUPERNODAL + #define NSUPERNODAL +#endif + // The NGPL option disables the MatrixOps, Modify, and Supernodal modules. The // existence of this #define here, and its use in these 3 modules, does not // affect the license itself; see CHOLMOD/Doc/License.txt for your actual @@ -370,6 +431,39 @@ int cholmod_l_version (int version [3]) ; // the CHOLMOD:Utility Module is always required #if 1 +//------------------------------------------------------------------------------ +// CHOLMOD query: check for CHOLMOD configuration +//------------------------------------------------------------------------------ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum +{ + CHOLMOD_QUERY_HAS_GPL = 0, // has GPL licensed modules + CHOLMOD_QUERY_HAS_CHECK = 1, // has Check Module + CHOLMOD_QUERY_HAS_CHOLESKY = 2, // has Cholesky Module + CHOLMOD_QUERY_HAS_CAMD = 3, // has CAMD and CCOLAMD + CHOLMOD_QUERY_HAS_PARTITION = 4, // has Partition Module + CHOLMOD_QUERY_HAS_MATRIXOPS = 5, // has MatrixOps Module + CHOLMOD_QUERY_HAS_MODIFY = 6, // has Modify Module + CHOLMOD_QUERY_HAS_SUPERNODAL = 7, // has Supernodal Module + CHOLMOD_QUERY_HAS_CUDA = 8, // has GPU Module + CHOLMOD_QUERY_HAS_OPENMP = 9 // has OpenMP +} +cholmod_query_t ; + +bool cholmod_query // true if CHOLMOD has a specific feature +( + cholmod_query_t feature +) ; +bool cholmod_l_query (cholmod_query_t feature) ; + +#ifdef __cplusplus +} +#endif + //------------------------------------------------------------------------------ // CUDA BLAS //------------------------------------------------------------------------------ diff --git a/CHOLMOD/Doc/CHOLMOD_UserGuide.pdf b/CHOLMOD/Doc/CHOLMOD_UserGuide.pdf index bd9334823f..553334b06d 100644 Binary files a/CHOLMOD/Doc/CHOLMOD_UserGuide.pdf and b/CHOLMOD/Doc/CHOLMOD_UserGuide.pdf differ diff --git a/CHOLMOD/Doc/CHOLMOD_UserGuide.tex b/CHOLMOD/Doc/CHOLMOD_UserGuide.tex index 1422c9e0a4..9b19dcdf3a 100644 --- a/CHOLMOD/Doc/CHOLMOD_UserGuide.tex +++ b/CHOLMOD/Doc/CHOLMOD_UserGuide.tex @@ -2669,6 +2669,16 @@ \subsection{{\tt cholmod\_version}: return current CHOLMOD version} prototypes. Both use {\tt int}'s. Unlike all other CHOLMOD functions, this function does not take the {\tt Common} object as an input parameter. +%------------------------------------------------------------------------------- +\newpage \section{{\tt Utility} Module: query CHOLMOD configuration} +%------------------------------------------------------------------------------- + +\input{_query.tex} +Returns \verb'true' if CHOLMOD has been compiled with the specific feature. +The feature is an enum defined as follows: + +\input{_query_t.tex} + %------------------------------------------------------------------------------- \newpage \section{{\tt Check} Module routines} %------------------------------------------------------------------------------- diff --git a/CHOLMOD/Doc/ChangeLog b/CHOLMOD/Doc/ChangeLog index aa324e1e8f..111c80a0c5 100644 --- a/CHOLMOD/Doc/ChangeLog +++ b/CHOLMOD/Doc/ChangeLog @@ -1,3 +1,10 @@ +June 20, 2024: version 5.3.0 + + * added cholmod_query: to deterimine at run time which modules + of CHOLMOD have been compiled into the libcholmod.so. + Also added CHOLMOD_HAS_* #defines in cholmod.h, configured + by cmake when CHOLMOD is compiled. + Mar 22, 2024: version 5.2.1 * minor updates to build system diff --git a/CHOLMOD/Doc/Makefile b/CHOLMOD/Doc/Makefile index 69b30b345c..737a866f04 100644 --- a/CHOLMOD/Doc/Makefile +++ b/CHOLMOD/Doc/Makefile @@ -127,6 +127,8 @@ CHOLMOD_UserGuide.pdf: CHOLMOD_UserGuide.tex UserGuide.bib $(I) $(C) $(M) Makefi ./getproto '/void \*cholmod_realloc/, /\*\) ;/' ../Include/cholmod.h > _realloc.tex ./getproto '/int cholmod_realloc_multiple/, /\*\) ;/' ../Include/cholmod.h > _realloc_multiple.tex ./getproto '/int cholmod_version/, /l_version/' ../Include/cholmod.h > _version.tex + ./getproto '/bool cholmod_query/, /l_query/' ../Include/cholmod.h > _query.tex + ./getproto '/typedef enum/, /cholmod_query_t/' ../Include/cholmod.h > _query_t.tex ./getproto '/int cholmod_check_common/, /\*\) ;/' ../Include/cholmod.h > _check_common.tex ./getproto '/int cholmod_print_common/, /\*\) ;/' ../Include/cholmod.h > _print_common.tex ./getproto '/int cholmod_check_sparse/, /\*\) ;/' ../Include/cholmod.h > _check_sparse.tex diff --git a/CHOLMOD/Doc/cholmod_version.tex b/CHOLMOD/Doc/cholmod_version.tex index a2907991ee..3e8fec2911 100644 --- a/CHOLMOD/Doc/cholmod_version.tex +++ b/CHOLMOD/Doc/cholmod_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/CHOLMOD -\date{VERSION 5.2.1, Mar 22, 2024} +\date{VERSION 5.3.0, June 20, 2024} diff --git a/CHOLMOD/GPU/CMakeLists.txt b/CHOLMOD/GPU/CMakeLists.txt index fe2386200f..405264ebc3 100644 --- a/CHOLMOD/GPU/CMakeLists.txt +++ b/CHOLMOD/GPU/CMakeLists.txt @@ -53,7 +53,7 @@ if ( BUILD_SHARED_LIBS ) ${CHOLMOD_CUDA_INCLUDES} ) set_target_properties ( CHOLMOD PROPERTIES POSITION_INDEPENDENT_CODE ON ) set_target_properties ( CHOLMOD PROPERTIES CUDA_SEPARABLE_COMPILATION ON ) - target_compile_definitions ( CHOLMOD PUBLIC "CHOLMOD_HAS_CUDA" ) +# target_compile_definitions ( CHOLMOD PUBLIC "CHOLMOD_HAS_CUDA" ) endif ( ) if ( BUILD_STATIC_LIBS ) @@ -62,7 +62,7 @@ if ( BUILD_STATIC_LIBS ) ${CHOLMOD_CUDA_INCLUDES} ) set_target_properties ( CHOLMOD_static PROPERTIES CUDA_SEPARABLE_COMPILATION on ) set_target_properties ( CHOLMOD_static PROPERTIES POSITION_INDEPENDENT_CODE on ) - target_compile_definitions ( CHOLMOD_static PUBLIC "CHOLMOD_HAS_CUDA" ) +# target_compile_definitions ( CHOLMOD_static PUBLIC "CHOLMOD_HAS_CUDA" ) endif ( ) if ( BUILD_SHARED_LIBS ) diff --git a/CHOLMOD/GPU/cholmod_gpu.c b/CHOLMOD/GPU/cholmod_gpu.c index 2d4de05a52..3b5df431cc 100644 --- a/CHOLMOD/GPU/cholmod_gpu.c +++ b/CHOLMOD/GPU/cholmod_gpu.c @@ -18,7 +18,7 @@ #include "cholmod_internal.h" -#ifdef CHOLMOD_HAS_CUDA +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) #include #include #endif @@ -41,7 +41,7 @@ static int poll_gpu (size_t s) /* TRUE if OK, FALSE otherwise */ { -#ifdef CHOLMOD_HAS_CUDA +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) /* Returns TRUE if the GPU has a block of memory of size s, FALSE otherwise. The block of memory is immediately freed. */ void *p = NULL ; @@ -81,7 +81,7 @@ int CHOLMOD(gpu_memorysize) /* returns 1 on error, 0 otherwise */ return (0) ; /* not using the GPU at all */ } -#ifdef CHOLMOD_HAS_CUDA +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) /* find the total amount of free memory */ cudaMemGetInfo (&total_free, &total_memory) ; @@ -148,7 +148,7 @@ int CHOLMOD(gpu_memorysize) /* returns 1 on error, 0 otherwise */ int CHOLMOD(gpu_probe) ( cholmod_common *Common ) { -#ifdef CHOLMOD_HAS_CUDA +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) int ngpus, idevice; double tstart, tend; struct cudaDeviceProp gpuProp; @@ -190,7 +190,7 @@ int CHOLMOD(gpu_deallocate) ) { -#ifdef CHOLMOD_HAS_CUDA +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) cudaError_t cudaErr; if ( Common->dev_mempool ) @@ -236,7 +236,7 @@ int CHOLMOD(gpu_start) cholmod_common *Common ) { -#ifdef CHOLMOD_HAS_CUDA +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) cudaError_t cudaErr ; if (Common->cublasHandle == NULL) @@ -321,7 +321,7 @@ void CHOLMOD(gpu_end) cholmod_common *Common ) { -#ifdef CHOLMOD_HAS_CUDA +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) //---------------------------------------------------------------------- // destroy cublasHandle @@ -426,7 +426,7 @@ void CHOLMOD(gpu_end) int CHOLMOD(gpu_allocate) ( cholmod_common *Common ) { -#ifdef CHOLMOD_HAS_CUDA +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) size_t fdm, tdm; size_t requestedDeviceMemory, requestedHostMemory; diff --git a/CHOLMOD/GPU/cholmod_gpu_kernels.cu b/CHOLMOD/GPU/cholmod_gpu_kernels.cu index 9574a15242..bf5d7434d0 100644 --- a/CHOLMOD/GPU/cholmod_gpu_kernels.cu +++ b/CHOLMOD/GPU/cholmod_gpu_kernels.cu @@ -8,10 +8,11 @@ // SPDX-License-Identifier: GPL-2.0+ //------------------------------------------------------------------------------ -#ifdef CHOLMOD_HAS_CUDA - #include #include "SuiteSparse_config.h" +#include "cholmod.h" + +#if defined ( CHOLMOD_HAS_CUDA ) /* 64-bit version only */ diff --git a/CHOLMOD/GPU/cholmod_gpu_kernels.h b/CHOLMOD/GPU/cholmod_gpu_kernels.h index c1708273bb..be7e687998 100644 --- a/CHOLMOD/GPU/cholmod_gpu_kernels.h +++ b/CHOLMOD/GPU/cholmod_gpu_kernels.h @@ -15,13 +15,13 @@ #ifndef CHOLMODGPUKERNELS_H #define CHOLMODGPUKERNELS_H +#include "SuiteSparse_config.h" + /* make it easy for C++ programs to include CHOLMOD */ #ifdef __cplusplus extern "C" { #endif -#include "SuiteSparse_config.h" - int createMapOnDevice ( int64_t *d_Map, int64_t *d_Ls, int64_t psi, int64_t nsrow ); int createRelativeMapOnDevice ( int64_t *d_Map, int64_t *d_Ls, diff --git a/CHOLMOD/GPU/t_cholmod_gpu.c b/CHOLMOD/GPU/t_cholmod_gpu.c index 888515a49b..af6ab6036e 100644 --- a/CHOLMOD/GPU/t_cholmod_gpu.c +++ b/CHOLMOD/GPU/t_cholmod_gpu.c @@ -14,7 +14,7 @@ /* === include files and definitions ======================================== */ /* ========================================================================== */ -#ifdef CHOLMOD_HAS_CUDA +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) #include #include "cholmod_template.h" diff --git a/CHOLMOD/Include/cholmod.h b/CHOLMOD/Include/cholmod.h index 9def3cdde5..6ca59fa3c6 100644 --- a/CHOLMOD/Include/cholmod.h +++ b/CHOLMOD/Include/cholmod.h @@ -246,13 +246,13 @@ // version control //------------------------------------------------------------------------------ -#define CHOLMOD_DATE "Mar 22, 2024" +#define CHOLMOD_DATE "June 20, 2024" #define CHOLMOD_MAIN_VERSION 5 -#define CHOLMOD_SUB_VERSION 2 -#define CHOLMOD_SUBSUB_VERSION 1 +#define CHOLMOD_SUB_VERSION 3 +#define CHOLMOD_SUBSUB_VERSION 0 #define CHOLMOD_VER_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub) -#define CHOLMOD_VERSION CHOLMOD_VER_CODE(5,2) +#define CHOLMOD_VERSION CHOLMOD_VER_CODE(5,3) #define CHOLMOD_HAS_VERSION_FUNCTION #ifdef __cplusplus @@ -307,10 +307,10 @@ int cholmod_l_version (int version [3]) ; #include "SuiteSparse_config.h" -#define CHOLMOD__VERSION SUITESPARSE__VERCODE(5,2,1) +#define CHOLMOD__VERSION SUITESPARSE__VERCODE(5,3,0) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "CHOLMOD 5.2.1 requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "CHOLMOD 5.3.0 requires SuiteSparse_config 7.8.0 or later" #endif //------------------------------------------------------------------------------ @@ -320,6 +320,7 @@ int cholmod_l_version (int version [3]) ; // You do not have to edit any CHOLMOD files to compile and install CHOLMOD. // However, if you do not use all of CHOLMOD's modules, you need to compile // with the appropriate flag, or edit this file to add the appropriate #define. +// cmake configures these options for you. // // Compiler flags for CHOLMOD // @@ -349,6 +350,66 @@ int cholmod_l_version (int version [3]) ; // #define NPRINT // #define NGPL +// These flags are configured by cmake when CHOLMOD is compiled: +#define CHOLMOD_HAS_GPL +#define CHOLMOD_HAS_CHECK +#define CHOLMOD_HAS_CHOLESKY +#define CHOLMOD_HAS_CAMD +#define CHOLMOD_HAS_PARTITION +#define CHOLMOD_HAS_MATRIXOPS +#define CHOLMOD_HAS_MODIFY +#define CHOLMOD_HAS_SUPERNODAL +/* #undef CHOLMOD_HAS_CUDA */ +#define CHOLMOD_HAS_OPENMP + +#if defined(MATLAB_MEX_FILE) || defined(MATHWORKS) +// CHOLMOD MATLAB interface does not use CUDA +#undef CHOLMOD_HAS_CUDA +#endif + +// The cmake flags defined above also ensure CHOLMOD knows which modules +// are available when it was compiled: + +#ifndef CHOLMOD_HAS_GPL + #undef NGPL + #define NGPL +#endif + +#ifndef CHOLMOD_HAS_CHECK + #undef NCHECK + #define NCHECK +#endif + +#ifndef CHOLMOD_HAS_CHOLESKY + #undef NCHOLESKY + #define NCHOLESKY +#endif + +#ifndef CHOLMOD_HAS_CAMD + #undef NCAMD + #define NCAMD +#endif + +#ifndef CHOLMOD_HAS_PARTITION + #undef NPARTITION + #define NPARTITION +#endif + +#ifndef CHOLMOD_HAS_MATRIXOPS + #undef NMATRIXOPS + #define NMATRIXOPS +#endif + +#ifndef CHOLMOD_HAS_MODIFY + #undef NMODIFY + #define NMODIFY +#endif + +#ifndef CHOLMOD_HAS_SUPERNODAL + #undef NSUPERNODAL + #define NSUPERNODAL +#endif + // The NGPL option disables the MatrixOps, Modify, and Supernodal modules. The // existence of this #define here, and its use in these 3 modules, does not // affect the license itself; see CHOLMOD/Doc/License.txt for your actual @@ -370,6 +431,39 @@ int cholmod_l_version (int version [3]) ; // the CHOLMOD:Utility Module is always required #if 1 +//------------------------------------------------------------------------------ +// CHOLMOD query: check for CHOLMOD configuration +//------------------------------------------------------------------------------ + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum +{ + CHOLMOD_QUERY_HAS_GPL = 0, // has GPL licensed modules + CHOLMOD_QUERY_HAS_CHECK = 1, // has Check Module + CHOLMOD_QUERY_HAS_CHOLESKY = 2, // has Cholesky Module + CHOLMOD_QUERY_HAS_CAMD = 3, // has CAMD and CCOLAMD + CHOLMOD_QUERY_HAS_PARTITION = 4, // has Partition Module + CHOLMOD_QUERY_HAS_MATRIXOPS = 5, // has MatrixOps Module + CHOLMOD_QUERY_HAS_MODIFY = 6, // has Modify Module + CHOLMOD_QUERY_HAS_SUPERNODAL = 7, // has Supernodal Module + CHOLMOD_QUERY_HAS_CUDA = 8, // has GPU Module + CHOLMOD_QUERY_HAS_OPENMP = 9 // has OpenMP +} +cholmod_query_t ; + +bool cholmod_query // true if CHOLMOD has a specific feature +( + cholmod_query_t feature +) ; +bool cholmod_l_query (cholmod_query_t feature) ; + +#ifdef __cplusplus +} +#endif + //------------------------------------------------------------------------------ // CUDA BLAS //------------------------------------------------------------------------------ diff --git a/CHOLMOD/Include/cholmod_internal.h b/CHOLMOD/Include/cholmod_internal.h index 06952e2b58..fe3872b521 100644 --- a/CHOLMOD/Include/cholmod_internal.h +++ b/CHOLMOD/Include/cholmod_internal.h @@ -143,11 +143,6 @@ #include "cholmod_types.h" -#ifndef CHOLMOD_INT64 -// GPU acceleration only available for the CHOLMOD_INT64 case (int64) -#undef CHOLMOD_HAS_CUDA -#endif - //------------------------------------------------------------------------------ // internal routines //------------------------------------------------------------------------------ diff --git a/CHOLMOD/MATLAB/cholmod_make.m b/CHOLMOD/MATLAB/cholmod_make.m index 522c50303b..b37835ae35 100644 --- a/CHOLMOD/MATLAB/cholmod_make.m +++ b/CHOLMOD/MATLAB/cholmod_make.m @@ -27,6 +27,8 @@ if (ispc) % MSVC does not define ssize_t flags = [flags ' -DNO_SSIZE_T'] ; + % disable the SuiteSparse_config timer + flags = ['-DNTIMER ' flags] ; end include = '-I. -I.. -I../../AMD/Include -I../../COLAMD/Include -I../../CCOLAMD/Include -I../../CAMD/Include -I../Include -I../../SuiteSparse_config' ; diff --git a/CHOLMOD/Partition/cholmod_camd.c b/CHOLMOD/Partition/cholmod_camd.c index aefd4d57e5..df01f01610 100644 --- a/CHOLMOD/Partition/cholmod_camd.c +++ b/CHOLMOD/Partition/cholmod_camd.c @@ -34,8 +34,8 @@ #ifndef NCAMD #include "camd.h" -#if (CAMD_VERSION < CAMD_VERSION_CODE (3,3)) -#error "CHOLMOD:Partition requires CAMD 3.3.1 or later" +#if !defined (CAMD__VERSION) || (CAMD__VERSION < SUITESPARSE__VERCODE(3,3,3)) +#error "CHOLMOD:Partition requires CAMD 3.3.3 or later" #endif //------------------------------------------------------------------------------ diff --git a/CHOLMOD/Supernodal/cholmod_super_numeric.c b/CHOLMOD/Supernodal/cholmod_super_numeric.c index a605d6b593..2932738342 100644 --- a/CHOLMOD/Supernodal/cholmod_super_numeric.c +++ b/CHOLMOD/Supernodal/cholmod_super_numeric.c @@ -60,14 +60,12 @@ //------------------------------------------------------------------------------ #define DOUBLE -#ifdef CHOLMOD_INT64 -#ifdef CHOLMOD_HAS_CUDA -#include "cholmod_gpu_kernels.h" -#define REAL -#include "../GPU/t_cholmod_gpu.c" -#define COMPLEX -#include "../GPU/t_cholmod_gpu.c" -#endif +#if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) + #include "cholmod_gpu_kernels.h" + #define REAL + #include "../GPU/t_cholmod_gpu.c" + #define COMPLEX + #include "../GPU/t_cholmod_gpu.c" #endif //------------------------------------------------------------------------------ diff --git a/CHOLMOD/Supernodal/cholmod_super_symbolic.c b/CHOLMOD/Supernodal/cholmod_super_symbolic.c index a644646672..1c56dcc6fe 100644 --- a/CHOLMOD/Supernodal/cholmod_super_symbolic.c +++ b/CHOLMOD/Supernodal/cholmod_super_symbolic.c @@ -234,7 +234,7 @@ int CHOLMOD(super_symbolic2) L->useGPU = 0 ; // only used for Cholesky factorization, not QR - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) // GPU module is installed if (for_whom == CHOLMOD_ANALYZE_FOR_CHOLESKY && A->dtype == CHOLMOD_DOUBLE) @@ -413,7 +413,7 @@ int CHOLMOD(super_symbolic2) if (Parent [j-1] != j // parent of j-1 is not j || (ColCount [j-1] != ColCount [j] + 1) // j-1 not subset of j || Wi [j] > 1 // j has more than one child - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) // Ensure that the supernode will fit in the GPU buffers // Data size of 16 bytes must be assumed for case of PATTERN || (for_whom == CHOLMOD_ANALYZE_FOR_CHOLESKY && L->useGPU && @@ -573,7 +573,7 @@ int CHOLMOD(super_symbolic2) } } - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) if ( for_whom == CHOLMOD_ANALYZE_FOR_CHOLESKY && L->useGPU ) { // Ensure that the aggregated supernode fits in the device // supernode buffers diff --git a/CHOLMOD/Supernodal/t_cholmod_super_numeric_worker.c b/CHOLMOD/Supernodal/t_cholmod_super_numeric_worker.c index 77dc28453f..d1c44123a5 100644 --- a/CHOLMOD/Supernodal/t_cholmod_super_numeric_worker.c +++ b/CHOLMOD/Supernodal/t_cholmod_super_numeric_worker.c @@ -171,7 +171,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) // these variables are not used if the GPU module is not installed - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) Int ndescendants, mapCreatedOnGpu, supernodeUsedGPU, idescendant, dlarge, dsmall, skips ; int iHostBuff, iDevBuff, useGPU, GPUavailable ; @@ -228,7 +228,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) Lx = L->x ; - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) // local copy of useGPU if ( (Common->useGPU == 1) && L->useGPU) { @@ -319,7 +319,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) // Once supernode s is repeated, the factorization is terminated. repeat_supernode = FALSE ; - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( useGPU ) { // Case of GPU, zero all supernodes at one time for better performance @@ -357,7 +357,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) ASSERT ((size_t) (psx + nsrow*nscol) <= L->xsize) ; - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( !useGPU ) #endif { @@ -403,7 +403,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) // (all supernodes in a level are independent) //---------------------------------------------------------------------- - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( useGPU ) { TEMPLATE2 (CHOLMOD (gpu_reorder_descendants)) @@ -564,7 +564,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) PRINT1 (("\nNow factorizing supernode "ID":\n", s)) ; #endif - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( useGPU ) { // initialize the buffer counter @@ -586,7 +586,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) } while - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) ( (!useGPU && (dnext != EMPTY)) || (useGPU && (idescendant < ndescendants))) #else @@ -594,7 +594,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) #endif { - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( useGPU ) { @@ -729,7 +729,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) ndrow3 = ndrow2 - ndrow1 ; // number of rows of C2 ASSERT (ndrow3 >= 0) ; - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( useGPU ) { // set up GPU to assemble new supernode @@ -751,7 +751,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) } #endif - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( !useGPU || GPUavailable!=1 || !TEMPLATE2 (CHOLMOD (gpu_updateC)) (ndrow1, ndrow2, ndrow, @@ -931,7 +931,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) } - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) else { supernodeUsedGPU = 1; // GPU was used for this supernode @@ -968,7 +968,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) } // end of descendant supernode loop - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( useGPU ) { iHostBuff = (Common->ibuffer)%CHOLMOD_HOST_SUPERNODE_BUFFERS; iDevBuff = (Common->ibuffer)%CHOLMOD_DEVICE_STREAMS; @@ -1003,7 +1003,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) nscol2 = (repeat_supernode) ? (nscol_new) : (nscol) ; - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( !useGPU || !supernodeUsedGPU || !TEMPLATE2 (CHOLMOD (gpu_lower_potrf))(nscol2, nsrow, psx, Lx, @@ -1011,7 +1011,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) #endif { // Note that the GPU will not be used for the triangular solve - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) supernodeUsedGPU = 0; #endif #ifdef BLAS_TIMER @@ -1126,7 +1126,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) // zero. Also, info will be 1 if integer overflow occured in // the BLAS. Head [s] = EMPTY ; - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( useGPU ) { CHOLMOD (gpu_end) (Common) ; } @@ -1159,7 +1159,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) // overwritten with L2. More precisely, L2 = S2 / L1' in MATLAB // notation. - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( !useGPU || !supernodeUsedGPU || !TEMPLATE2 (CHOLMOD(gpu_triangular_solve)) @@ -1236,7 +1236,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) } else { - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) TEMPLATE2 ( CHOLMOD (gpu_copy_supernode) ) ( Common, Lx, psx, nscol, nscol2, nsrow, supernodeUsedGPU, iHostBuff, gpu_p) ; @@ -1255,7 +1255,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) // matrix is not positive definite; finished clean-up for supernode // containing negative diagonal - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( useGPU ) { CHOLMOD (gpu_end) (Common) ; @@ -1268,7 +1268,7 @@ static int TEMPLATE (cholmod_super_numeric_worker) // success; matrix is positive definite L->minor = n ; - #if (defined (CHOLMOD_HAS_CUDA) && defined (DOUBLE)) + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) && defined (DOUBLE) if ( useGPU ) { CHOLMOD (gpu_end) (Common) ; diff --git a/CHOLMOD/Tcov/Makefile b/CHOLMOD/Tcov/Makefile index 5f71ca83df..a2684365b2 100644 --- a/CHOLMOD/Tcov/Makefile +++ b/CHOLMOD/Tcov/Makefile @@ -25,11 +25,11 @@ default: go # NVIDIA CUDA configuration for CHOLMOD and SPQR #--------------------------------------------------------------------------- -# ifneq ($(CUDA),no) -# CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") -# else + ifneq ($(CUDA),no) + CUDA_PATH = $(shell which nvcc 2>/dev/null | sed "s/\/bin\/nvcc//") + else CUDA_PATH = -# endif + endif ifeq ($(wildcard $(CUDA_PATH)),) # CUDA is not present @@ -45,12 +45,7 @@ default: go else # with CUDA for CHOLMOD and SPQR GPU_BLAS_PATH = $(CUDA_PATH) - # GPU_CONFIG must include -DCHOLMOD_HAS_CUDA to compile SuiteSparse for - # the GPU. You can add additional GPU-related flags to it as well. - # with 4 cores (default): - GPU_CONFIG = -DCHOLMOD_HAS_CUDA - # For example, to compile CHOLMOD for 10 CPU cores when using the GPU: - # GPU_CONFIG = -DCHOLMOD_HAS_CUDA + GPU_CONFIG = yes CUDART_LIB = $(CUDA_PATH)/lib64/libcudart.so CUBLAS_LIB = $(CUDA_PATH)/lib64/libcublas.so CUDA_INC_PATH = $(CUDA_PATH)/include/ @@ -61,8 +56,6 @@ default: go -gencode=arch=compute_60,code=compute_60 endif - CHOLMOD_CONFIG ?= $(GPU_CONFIG) - # remove object files, but keep compiled libraries via 'make clean' CLEAN = *.o *.obj *.ln *.bb *.bbg *.da *.tcov *.gcov gmon.out *.bak *.d \ *.gcda *.gcno *.aux *.bbl *.blg *.log *.toc *.dvi *.lof *.lot @@ -125,8 +118,6 @@ I = -I.. -I../../AMD/Include -I../../COLAMD/Include \ -I../../COLAMD/Source -I../../CCOLAMD/Source \ -I../Utility -I += $(GPU_CONFIG) - ccode: \ di_test dl_test si_test sl_test \ di_demo dl_demo si_demo sl_demo \ @@ -143,6 +134,7 @@ TEMPLATES = \ t_camdtest.c \ t_cctest.c \ t_cm.c \ + t_query.c \ t_read_triplet.c \ t_rhs.c \ t_znorm_diag.c \ @@ -390,6 +382,7 @@ IUTIL_OBJ = \ ui_start.o \ ui_triplet_to_sparse.o \ ui_version.o \ + ui_query.o \ ui_xtype.o \ ui_zeros.o @@ -460,6 +453,7 @@ LUTIL_OBJ = \ ul_start.o \ ul_triplet_to_sparse.o \ ul_version.o \ + ul_query.o \ ul_xtype.o \ ul_zeros.o @@ -1450,6 +1444,10 @@ ui_version.o: ../Utility/cholmod_version.c - ln -s $< ui_version.c $(C) -c $(I) ui_version.c +ui_query.o: ../Utility/cholmod_query.c + - ln -s $< ui_query.c + $(C) -c $(I) ui_query.c + ui_xtype.o: ../Utility/cholmod_xtype.c - ln -s $< ui_xtype.c $(C) -c $(I) ui_xtype.c @@ -1738,6 +1736,10 @@ ul_version.o: ../Utility/cholmod_l_version.c - ln -s $< ul_version.c $(C) -c $(I) ul_version.c +ul_query.o: ../Utility/cholmod_l_query.c + - ln -s $< ul_query.c + $(C) -c $(I) ul_query.c + ul_xtype.o: ../Utility/cholmod_l_xtype.c - ln -s $< ul_xtype.c $(C) -c $(I) ul_xtype.c @@ -2052,5 +2054,5 @@ l_super_solve.o: ../Supernodal/cholmod_l_super_solve.c # GPU kernels only use int64_t: l_gpu_kernels.o: ../GPU/cholmod_gpu_kernels.cu - ln -s $< l_gpu_kernels.cu - $(NVCC) $(CHOLMOD_CONFIG) -I../../SuiteSparse_config -Xcompiler -fPIC -O3 -c l_gpu_kernels.cu + $(NVCC) $(CHOLMOD_CONFIG) $(I) -Xcompiler -fPIC -O3 -c l_gpu_kernels.cu diff --git a/CHOLMOD/Tcov/cm.h b/CHOLMOD/Tcov/cm.h index b59414b944..04de4d802a 100644 --- a/CHOLMOD/Tcov/cm.h +++ b/CHOLMOD/Tcov/cm.h @@ -187,6 +187,7 @@ void common_tests (cholmod_common *cm) ; void error_tests (cholmod_sparse *A, cholmod_common *cm) ; double tofrom_tests (cholmod_sparse *A, cholmod_common *cm) ; double suitesparse_tests (void) ; +void query_test (void) ; //------------------------------------------------------------------------------ // AMD, COLAMD, and CCOLAMD diff --git a/CHOLMOD/Tcov/di_test.c b/CHOLMOD/Tcov/di_test.c index 593a18b0e1..890c806a3b 100644 --- a/CHOLMOD/Tcov/di_test.c +++ b/CHOLMOD/Tcov/di_test.c @@ -42,3 +42,4 @@ #include "t_error_tests.c" #include "t_tofrom_tests.c" #include "t_suitesparse.c" +#include "t_query.c" diff --git a/CHOLMOD/Tcov/dl_test.c b/CHOLMOD/Tcov/dl_test.c index 636e4e40e3..4d4b354a7c 100644 --- a/CHOLMOD/Tcov/dl_test.c +++ b/CHOLMOD/Tcov/dl_test.c @@ -42,3 +42,4 @@ #include "t_error_tests.c" #include "t_tofrom_tests.c" #include "t_suitesparse.c" +#include "t_query.c" diff --git a/CHOLMOD/Tcov/si_test.c b/CHOLMOD/Tcov/si_test.c index 5ddd25bba0..81bc66b166 100644 --- a/CHOLMOD/Tcov/si_test.c +++ b/CHOLMOD/Tcov/si_test.c @@ -42,3 +42,4 @@ #include "t_error_tests.c" #include "t_tofrom_tests.c" #include "t_suitesparse.c" +#include "t_query.c" diff --git a/CHOLMOD/Tcov/sl_test.c b/CHOLMOD/Tcov/sl_test.c index fef34f7fb1..f8b51e7bc5 100644 --- a/CHOLMOD/Tcov/sl_test.c +++ b/CHOLMOD/Tcov/sl_test.c @@ -42,3 +42,4 @@ #include "t_error_tests.c" #include "t_tofrom_tests.c" #include "t_suitesparse.c" +#include "t_query.c" diff --git a/CHOLMOD/Tcov/t_cm.c b/CHOLMOD/Tcov/t_cm.c index 30ebeddbc3..fe9be3e781 100644 --- a/CHOLMOD/Tcov/t_cm.c +++ b/CHOLMOD/Tcov/t_cm.c @@ -1119,6 +1119,12 @@ int main (int argc, char **argv) printf ("do_memory: %d singular: %d\n", do_memory, singular) ; + //-------------------------------------------------------------------------- + // query CHOLMOD configuration + //-------------------------------------------------------------------------- + + query_test ( ) ; + //-------------------------------------------------------------------------- // test SuiteSparse_config //-------------------------------------------------------------------------- diff --git a/CHOLMOD/Tcov/t_query.c b/CHOLMOD/Tcov/t_query.c new file mode 100644 index 0000000000..c5ede98547 --- /dev/null +++ b/CHOLMOD/Tcov/t_query.c @@ -0,0 +1,107 @@ +//------------------------------------------------------------------------------ +// CHOLMOD/Tcov/t_query: tests for cholmod_query +//------------------------------------------------------------------------------ + +// CHOLMOD/Tcov Module. Copyright (C) 2005-2023, Timothy A. Davis. +// All Rights Reserved. +// SPDX-License-Identifier: GPL-2.0+ + +//------------------------------------------------------------------------------ + +void query_test (void) +{ + + #ifdef CHOLMOD_HAS_GPL + int has_gpl = 1 ; + #else + int has_gpl = 0 ; + #endif + bool has_gpl_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_GPL) ; + printf ("Query: GPL %d %d\n", has_gpl, has_gpl_2) ; + OK (has_gpl == has_gpl_2) ; + + #ifdef CHOLMOD_HAS_CHECK + int has_check = 1 ; + #else + int has_check = 0 ; + #endif + bool has_check_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_CHECK) ; + printf ("Query: CHECK %d %d\n", has_check, has_check_2) ; + OK (has_check == has_check_2) ; + + #ifdef CHOLMOD_HAS_CHOLESKY + int has_chol = 1 ; + #else + int has_chol = 0 ; + #endif + bool has_chol_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_CHOLESKY) ; + printf ("Query: CHOL %d %d\n", has_chol, has_chol_2) ; + OK (has_chol == has_chol_2) ; + + #ifdef CHOLMOD_HAS_CAMD + int has_camd = 1 ; + #else + int has_camd = 0 ; + #endif + bool has_camd_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_CAMD) ; + printf ("Query: CAMD %d %d\n", has_camd, has_camd_2) ; + OK (has_camd == has_camd_2) ; + + #ifdef CHOLMOD_HAS_PARTITION + int has_part = 1 ; + #else + int has_part = 0 ; + #endif + bool has_part_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_PARTITION) ; + printf ("Query: PART %d %d\n", has_part, has_part_2) ; + OK (has_part == has_part_2) ; + + #ifdef CHOLMOD_HAS_MATRIXOPS + int has_ops = 1 ; + #else + int has_ops = 0 ; + #endif + bool has_ops_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_MATRIXOPS) ; + printf ("Query: OPS %d %d\n", has_ops, has_ops_2) ; + OK (has_ops == has_ops_2) ; + + #ifdef CHOLMOD_HAS_MODIFY + int has_mod = 1 ; + #else + int has_mod = 0 ; + #endif + bool has_mod_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_MODIFY) ; + printf ("Query: MOD %d %d\n", has_mod, has_mod_2) ; + OK (has_mod == has_mod_2) ; + + #ifdef CHOLMOD_HAS_SUPERNODAL + int has_super = 1 ; + #else + int has_super = 0 ; + #endif + bool has_super_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_SUPERNODAL) ; + printf ("Query: SUPER %d %d\n", has_super, has_super_2) ; + OK (has_super == has_super_2) ; + + #ifdef CHOLMOD_HAS_CUDA + int has_cuda = 1 ; + #else + int has_cuda = 0 ; + #endif + bool has_cuda_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_CUDA) ; + printf ("Query: CUDA %d %d\n", has_cuda, has_cuda_2) ; + OK (has_cuda == has_cuda_2) ; + + #ifdef CHOLMOD_HAS_OPENMP + int has_omp = 1 ; + #else + int has_omp = 0 ; + #endif + bool has_omp_2 = CHOLMOD(query) (CHOLMOD_QUERY_HAS_OPENMP) ; + printf ("Query: OMP %d %d\n", has_omp, has_omp_2) ; + OK (has_omp == has_omp_2) ; + + bool has_undefined = CHOLMOD(query) (100) ; + OK (!has_undefined) ; +} + diff --git a/CHOLMOD/Tcov/t_suitesparse.c b/CHOLMOD/Tcov/t_suitesparse.c index 0987ffcfef..6a61eb74f7 100644 --- a/CHOLMOD/Tcov/t_suitesparse.c +++ b/CHOLMOD/Tcov/t_suitesparse.c @@ -182,6 +182,7 @@ double suitesparse_tests (void) { double maxerr = 0 ; + double t = SuiteSparse_time ( ) ; //-------------------------------------------------------------------------- // hypot @@ -255,7 +256,8 @@ double suitesparse_tests (void) // return results //-------------------------------------------------------------------------- - printf ("suitesparse maxerr %g\n", maxerr) ; + t = SuiteSparse_time ( ) - t ; + printf ("suitesparse maxerr %g, test time: %g\n", maxerr, t) ; return (maxerr) ; } diff --git a/CHOLMOD/Utility/cholmod_l_query.c b/CHOLMOD/Utility/cholmod_l_query.c new file mode 100644 index 0000000000..4f8e23738d --- /dev/null +++ b/CHOLMOD/Utility/cholmod_l_query.c @@ -0,0 +1,13 @@ +//------------------------------------------------------------------------------ +// CHOLMOD/Utility/cholmod_l_query: CHOLMOD query +//------------------------------------------------------------------------------ + +// CHOLMOD/Utility Module. Copyright (C) 2024, Timothy A. Davis, All Rights +// Reserved. +// SPDX-License-Identifier: LGPL-2.1+ + +//------------------------------------------------------------------------------ + +#define CHOLMOD_INT64 +#include "t_cholmod_query.c" + diff --git a/CHOLMOD/Utility/cholmod_query.c b/CHOLMOD/Utility/cholmod_query.c new file mode 100644 index 0000000000..38eddc57e0 --- /dev/null +++ b/CHOLMOD/Utility/cholmod_query.c @@ -0,0 +1,13 @@ +//------------------------------------------------------------------------------ +// CHOLMOD/Utility/cholmod_query: CHOLMOD query +//------------------------------------------------------------------------------ + +// CHOLMOD/Utility Module. Copyright (C) 2024, Timothy A. Davis, All Rights +// Reserved. +// SPDX-License-Identifier: LGPL-2.1+ + +//------------------------------------------------------------------------------ + +#define CHOLMOD_INT32 +#include "t_cholmod_query.c" + diff --git a/CHOLMOD/Utility/t_cholmod_free_work.c b/CHOLMOD/Utility/t_cholmod_free_work.c index c90771d813..df03b41514 100644 --- a/CHOLMOD/Utility/t_cholmod_free_work.c +++ b/CHOLMOD/Utility/t_cholmod_free_work.c @@ -48,7 +48,7 @@ int CHOLMOD(free_work) (cholmod_common *Common) // free GPU workspace //-------------------------------------------------------------------------- - #ifdef CHOLMOD_HAS_CUDA + #if defined ( CHOLMOD_HAS_CUDA ) && defined ( CHOLMOD_INT64 ) CHOLMOD(gpu_deallocate) (Common) ; #endif diff --git a/CHOLMOD/Utility/t_cholmod_query.c b/CHOLMOD/Utility/t_cholmod_query.c new file mode 100644 index 0000000000..9fdafa7bae --- /dev/null +++ b/CHOLMOD/Utility/t_cholmod_query.c @@ -0,0 +1,95 @@ +//------------------------------------------------------------------------------ +// CHOLMOD/Utility/t_cholmod_query: CHOLMOD query +//------------------------------------------------------------------------------ + +// CHOLMOD/Utility Module. Copyright (C) 2024, Timothy A. Davis, All Rights +// Reserved. +// SPDX-License-Identifier: LGPL-2.1+ + +//------------------------------------------------------------------------------ + +#include "cholmod_internal.h" + +bool CHOLMOD(query) +( + cholmod_query_t feature +) +{ + switch (feature) + { + case CHOLMOD_QUERY_HAS_GPL : + #ifdef CHOLMOD_HAS_GPL + return (true) ; + #else + return (false) ; + #endif + + case CHOLMOD_QUERY_HAS_CHECK : + #ifdef CHOLMOD_HAS_CHECK + return (true) ; + #else + return (false) ; + #endif + + case CHOLMOD_QUERY_HAS_CHOLESKY : + #ifdef CHOLMOD_HAS_CHOLESKY + return (true) ; + #else + return (false) ; + #endif + + case CHOLMOD_QUERY_HAS_CAMD : + #ifdef CHOLMOD_HAS_CAMD + return (true) ; + #else + return (false) ; + #endif + + case CHOLMOD_QUERY_HAS_PARTITION : + #ifdef CHOLMOD_HAS_PARTITION + return (true) ; + #else + return (false) ; + #endif + + case CHOLMOD_QUERY_HAS_MATRIXOPS : + #ifdef CHOLMOD_HAS_MATRIXOPS + return (true) ; + #else + return (false) ; + #endif + + case CHOLMOD_QUERY_HAS_MODIFY : + #ifdef CHOLMOD_HAS_MODIFY + return (true) ; + #else + return (false) ; + #endif + + case CHOLMOD_QUERY_HAS_SUPERNODAL : + #ifdef CHOLMOD_HAS_SUPERNODAL + return (true) ; + #else + return (false) ; + #endif + + case CHOLMOD_QUERY_HAS_CUDA : + #ifdef CHOLMOD_HAS_CUDA + return (true) ; + #else + return (false) ; + #endif + + case CHOLMOD_QUERY_HAS_OPENMP : + #ifdef CHOLMOD_HAS_OPENMP + return (true) ; + #else + return (false) ; + #endif + + default : + // undefined feature + return (false) ; + } +} + diff --git a/CMakeLists.txt b/CMakeLists.txt index 8bee05191b..8edfcc9d0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -111,7 +111,7 @@ include ( SuiteSparsePolicy ) if ( SUITESPARSE_USE_SYSTEM_GRAPHBLAS ) list ( REMOVE_ITEM SUITESPARSE_ENABLE_PROJECTS "graphblas" ) - find_package ( GraphBLAS 9.1.0 REQUIRED ) + find_package ( GraphBLAS 9.3.0 REQUIRED ) else ( ) if ( "lagraph" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) # LAGraph requires GraphBLAS. @@ -150,7 +150,7 @@ endif ( ) if ( SUITESPARSE_USE_SYSTEM_CHOLMOD ) list ( REMOVE_ITEM SUITESPARSE_ENABLE_PROJECTS "cholmod" ) - find_package ( CHOLMOD 5.2.1 REQUIRED ) + find_package ( CHOLMOD 5.3.0 REQUIRED ) else ( ) if ( ( KLU_USE_CHOLMOD AND "klu" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) OR ( UMFPACK_USE_CHOLMOD AND "umfpack" IN_LIST SUITESPARSE_ENABLE_PROJECTS ) @@ -224,7 +224,7 @@ endif ( ) if ( SUITESPARSE_USE_SYSTEM_SUITESPARSE_CONFIG ) list ( REMOVE_ITEM SUITESPARSE_ENABLE_PROJECTS "suitesparse_config" ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) else ( ) if ( "mongoose" IN_LIST SUITESPARSE_ENABLE_PROJECTS OR "amd" IN_LIST SUITESPARSE_ENABLE_PROJECTS diff --git a/COLAMD/CMakeLists.txt b/COLAMD/CMakeLists.txt index 4d4b17cfa2..5848678a0a 100644 --- a/COLAMD/CMakeLists.txt +++ b/COLAMD/CMakeLists.txt @@ -11,10 +11,10 @@ cmake_minimum_required ( VERSION 3.22 ) -set ( COLAMD_DATE "Mar 22, 2024" ) +set ( COLAMD_DATE "June 20, 2024" ) set ( COLAMD_VERSION_MAJOR 3 CACHE STRING "" FORCE ) set ( COLAMD_VERSION_MINOR 3 CACHE STRING "" FORCE ) -set ( COLAMD_VERSION_SUB 3 CACHE STRING "" FORCE ) +set ( COLAMD_VERSION_SUB 4 CACHE STRING "" FORCE ) message ( STATUS "Building COLAMD version: v" ${COLAMD_VERSION_MAJOR}. @@ -43,10 +43,10 @@ include ( SuiteSparsePolicy ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.7.0 + find_package ( SuiteSparse_config 7.8.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) endif ( ) endif ( ) diff --git a/COLAMD/Config/colamd.h.in b/COLAMD/Config/colamd.h.in index 915f81c5fa..8ee81174c1 100644 --- a/COLAMD/Config/colamd.h.in +++ b/COLAMD/Config/colamd.h.in @@ -75,8 +75,8 @@ #define COLAMD__VERSION SUITESPARSE__VERCODE(@COLAMD_VERSION_MAJOR@,@COLAMD_VERSION_MINOR@,@COLAMD_VERSION_SUB@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "COLAMD @COLAMD_VERSION_MAJOR@.@COLAMD_VERSION_MINOR@.@COLAMD_VERSION_SUB@ requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "COLAMD @COLAMD_VERSION_MAJOR@.@COLAMD_VERSION_MINOR@.@COLAMD_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later" #endif /* ========================================================================== */ diff --git a/COLAMD/Demo/colamd_example.out b/COLAMD/Demo/colamd_example.out index 1b6c81fc32..f44017d2d1 100644 --- a/COLAMD/Demo/colamd_example.out +++ b/COLAMD/Demo/colamd_example.out @@ -1,4 +1,4 @@ -COLAMD v3.3.3 +COLAMD v3.3.4 colamd 5-by-4 input matrix: Column 0, with 3 entries: row 0 @@ -16,7 +16,7 @@ Column 3, with 2 entries: row 1 row 3 -colamd version 3.3.3, Mar 22, 2024: OK. +colamd version 3.3.4, June 20, 2024: OK. colamd: number of dense or empty rows ignored: 0 colamd: number of dense or empty columns ignored: 0 colamd: number of garbage collections performed: 0 @@ -39,7 +39,7 @@ Column 3, with 1 entries: row 4 Column 4, with 0 entries: -symamd version 3.3.3, Mar 22, 2024: OK. +symamd version 3.3.4, June 20, 2024: OK. symamd: number of dense or empty rows ignored: 0 symamd: number of dense or empty columns ignored: 0 symamd: number of garbage collections performed: 0 diff --git a/COLAMD/Demo/colamd_l_example.out b/COLAMD/Demo/colamd_l_example.out index 104688eeee..8d66652763 100644 --- a/COLAMD/Demo/colamd_l_example.out +++ b/COLAMD/Demo/colamd_l_example.out @@ -1,4 +1,4 @@ -COLAMD v3.3.3 +COLAMD v3.3.4 colamd 5-by-4 input matrix: Column 0, with 3 entries: row 0 @@ -16,7 +16,7 @@ Column 3, with 2 entries: row 1 row 3 -colamd version 3.3.3, Mar 22, 2024: OK. +colamd version 3.3.4, June 20, 2024: OK. colamd: number of dense or empty rows ignored: 0 colamd: number of dense or empty columns ignored: 0 colamd: number of garbage collections performed: 0 @@ -39,7 +39,7 @@ Column 3, with 1 entries: row 4 Column 4, with 0 entries: -symamd version 3.3.3, Mar 22, 2024: OK. +symamd version 3.3.4, June 20, 2024: OK. symamd: number of dense or empty rows ignored: 0 symamd: number of dense or empty columns ignored: 0 symamd: number of garbage collections performed: 0 diff --git a/COLAMD/Doc/ChangeLog b/COLAMD/Doc/ChangeLog index b9e700d95b..dc7f12e659 100644 --- a/COLAMD/Doc/ChangeLog +++ b/COLAMD/Doc/ChangeLog @@ -1,3 +1,7 @@ +June 20, 2024: version 3.3.4 + + * minor update for MATLAB on Windows + Mar 22, 2024: version 3.3.3 * minor updates to build system diff --git a/COLAMD/Include/colamd.h b/COLAMD/Include/colamd.h index 7b2e77f184..a60ef6f0ae 100644 --- a/COLAMD/Include/colamd.h +++ b/COLAMD/Include/colamd.h @@ -65,18 +65,18 @@ * Versions 2.3 and earlier of COLAMD do not include a #define'd version number. */ -#define COLAMD_DATE "Mar 22, 2024" +#define COLAMD_DATE "June 20, 2024" #define COLAMD_MAIN_VERSION 3 #define COLAMD_SUB_VERSION 3 -#define COLAMD_SUBSUB_VERSION 3 +#define COLAMD_SUBSUB_VERSION 4 #define COLAMD_VERSION_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub) #define COLAMD_VERSION COLAMD_VERSION_CODE(3,3) -#define COLAMD__VERSION SUITESPARSE__VERCODE(3,3,3) +#define COLAMD__VERSION SUITESPARSE__VERCODE(3,3,4) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "COLAMD 3.3.3 requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "COLAMD 3.3.4 requires SuiteSparse_config 7.8.0 or later" #endif /* ========================================================================== */ diff --git a/COLAMD/MATLAB/colamd_make.m b/COLAMD/MATLAB/colamd_make.m index dae8435a04..effc292f7e 100644 --- a/COLAMD/MATLAB/colamd_make.m +++ b/COLAMD/MATLAB/colamd_make.m @@ -24,6 +24,11 @@ d = ['-silent ' d] ; end +if (ispc) + % disable the SuiteSparse_config timer + d = ['-DNTIMER ' d] ; +end + src = '../Source/colamd_l.c ../../SuiteSparse_config/SuiteSparse_config.c' ; cmd = sprintf ( ... 'mex -O %s -I../../SuiteSparse_config -I../Include -output ', d) ; diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a81e104cf1..6348f2f481 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -6,13 +6,13 @@ you can use the issue tracker on github.com, at (https://github.com/DrTimothyAldenDavis/SuiteSparse/issues). To contribute code, you can submit a pull request. To do so, -you must first agree to the Contributor License Agreement -[`CONTRIBUTOR-LICENSE.txt`](CONTRIBUTOR-LICENSE.txt). -Print a copy of the txt file (as a PDF), sign and date it, -and email it to me at DrTimothyAldenDavis@gmail.com. Pull -requests will only be included into SuiteSparse after I receive -your email with the signed PDF. +you must first agree to the Contributor License +in the [`Contributor_License`](Contributor_License) folder. +Sign and date it the PDF, and email it to me at +DrTimothyAldenDavis@gmail.com. Pull requests will only be +included into SuiteSparse after I receive your email with +the signed PDF. Do not submit a pull request to the default branch. -Instead, use the dev or dev2 branches. +Instead, use the dev2 branch. diff --git a/CONTRIBUTOR-LICENSE.txt b/CONTRIBUTOR-LICENSE.txt deleted file mode 100644 index 7cd19eec69..0000000000 --- a/CONTRIBUTOR-LICENSE.txt +++ /dev/null @@ -1,177 +0,0 @@ -SuiteSparse Individual Contributor License Agreement - -Thank you for your interest in contributing to SuiteSparse ("We" or "Us"). - -This contributor agreement ("Agreement") documents the rights granted by -contributors to Us. To make this document effective, please sign it and send it -to Us by electronic submission. This is a legally binding document, so please -read it carefully before agreeing to it. The Agreement may cover more than one -software project managed by Us. - -1. Definitions - - "You" means the individual who Submits a Contribution to Us. - - "Contribution" means any work of authorship that is Submitted by You to Us - in which You own or assert ownership of the Copyright. - - "Copyright" means all rights protecting works of authorship owned or - controlled by You, including copyright, moral and neighboring rights, as - appropriate, for the full term of their existence including any extensions - by You. - - "Material" means the work of authorship which is made available by Us to - third parties. When this Agreement covers more than one software project, - the Material means the work of authorship to which the Contribution was - Submitted. After You Submit the Contribution, it may be included in the - Material. - - "Submit" means any form of electronic, verbal, or written communication - sent to Us or our representatives, including but not limited to electronic - mailing lists, source code control systems, and issue tracking systems that - are managed by, or on behalf of, Us for the purpose of discussing and - improving the Material, but excluding communication that is conspicuously - marked or otherwise designated in writing by You as "Not a Contribution." - - "Submission Date" means the date on which You Submit a Contribution to Us. - - "Effective Date" means the date You execute this Agreement or the date You - first Submit a Contribution to Us, whichever is earlier. - -2. Grant of Rights - - 2.1 Copyright License - - (a) You retain ownership of the Copyright in Your Contribution and have - the same rights to use or license the Contribution which You would have - had without entering into the Agreement. - - (b) To the maximum extent permitted by the relevant law, You grant to - Us a perpetual, worldwide, non-exclusive, transferable, royalty-free, - irrevocable license under the Copyright covering the Contribution, with - the right to sublicense such rights through multiple tiers of - sublicensees, to reproduce, modify, display, perform and distribute the - Contribution as part of the Material; provided that this license is - conditioned upon compliance with Section 2.3. - - 2.2 Patent License - - For patent claims including, without limitation, method, process, and - apparatus claims which You own, control or have the right to grant, now - or in the future, You grant to Us a perpetual, worldwide, - non-exclusive, transferable, royalty-free, irrevocable patent license, - with the right to sublicense these rights to multiple tiers of - sublicensees, to make, have made, use, sell, offer for sale, import and - otherwise transfer the Contribution and the Contribution in combination - with the Material (and portions of such combination). This license is - granted only to the extent that the exercise of the licensed rights - infringes such patent claims; and provided that this license is - conditioned upon compliance with Section 2.3. - - 2.3 Outbound License - - Based on the grant of rights in Sections 2.1 and 2.2, if We include - Your Contribution in a Material, We may license the Contribution under - any license, including copyleft, permissive, commercial, or proprietary - licenses. - - 2.4 Moral Rights. - - If moral rights apply to the Contribution, to the maximum extent - permitted by law, You waive and agree not to assert such moral rights - against Us or our successors in interest, or any of our licensees, - either direct or indirect. - - 2.5 Our Rights. - - You acknowledge that We are not obligated to use Your Contribution as - part of the Material and may decide to include any Contribution We - consider appropriate. - - 2.6 Reservation of Rights. - - Any rights not expressly licensed under this section are expressly - reserved by You. - -3. Agreement - - You confirm that: - - (a) You have the legal authority to enter into this Agreement. - - (b) You own the Copyright and patent claims covering the Contribution which - are required to grant the rights under Section 2. - - (c) The grant of rights under Section 2 does not violate any grant of - rights which You have made to third parties, including Your employer. If - You are an employee, You have had Your employer approve this Agreement or - sign the Entity version of this document. If You are less than eighteen - years old, please have Your parents or guardian sign the Agreement. - -4. Disclaimer - - EXCEPT FOR THE EXPRESS WARRANTIES IN SECTION 3, THE CONTRIBUTION IS - PROVIDED "AS IS". MORE PARTICULARLY, ALL EXPRESS OR IMPLIED WARRANTIES - INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTY OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE EXPRESSLY - DISCLAIMED BY YOU TO US. TO THE EXTENT THAT ANY SUCH WARRANTIES CANNOT BE - DISCLAIMED, SUCH WARRANTY IS LIMITED IN DURATION TO THE MINIMUM PERIOD - PERMITTED BY LAW. - -5. Consequential Damage Waiver - - TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, IN NO EVENT WILL YOU BE - LIABLE FOR ANY LOSS OF PROFITS, LOSS OF ANTICIPATED SAVINGS, LOSS OF DATA, - INDIRECT, SPECIAL, INCIDENTAL, CONSEQUENTIAL AND EXEMPLARY DAMAGES ARISING - OUT OF THIS AGREEMENT REGARDLESS OF THE LEGAL OR EQUITABLE THEORY - (CONTRACT, TORT OR OTHERWISE) UPON WHICH THE CLAIM IS BASED. - -6. Miscellaneous - - 6.1 This Agreement will be governed by and construed in accordance with the - laws of the State of Texas excluding its conflicts of law provisions. Under - certain circumstances, the governing law in this section might be - superseded by the United Nations Convention on Contracts for the - International Sale of Goods ("UN Convention") and the parties intend to - avoid the application of the UN Convention to this Agreement and, thus, - exclude the application of the UN Convention in its entirety to this - Agreement. - - 6.2 This Agreement sets out the entire agreement between You and Us for - Your Contributions to Us and overrides all other agreements or - understandings. - - 6.3 If You or We assign the rights or obligations received through this - Agreement to a third party, as a condition of the assignment, that third - party must agree in writing to abide by all the rights and obligations in - the Agreement. - - 6.4 The failure of either party to require performance by the other party - of any provision of this Agreement in one situation shall not affect the - right of a party to require such performance at any time in the future. A - waiver of performance under a provision in one situation shall not be - considered a waiver of the performance of the provision in the future or a - waiver of the provision in its entirety. - - 6.5 If any provision of this Agreement is found void and unenforceable, - such provision will be replaced to the extent possible with a provision - that comes closest to the meaning of the original provision and which is - enforceable. The terms and conditions set forth in this Agreement shall - apply notwithstanding any failure of essential purpose of this Agreement or - any limited remedy to the maximum extent possible under law. - -Us -Timothy A. Davis, and all SuiteSparse co-authors (varies according to -the SuiteSparse package) - - -You: - - Your Name (printed): - - - Your Signature: - - - Date: - diff --git a/CXSparse/CMakeLists.txt b/CXSparse/CMakeLists.txt index 83fb4ed70e..455e416386 100644 --- a/CXSparse/CMakeLists.txt +++ b/CXSparse/CMakeLists.txt @@ -11,10 +11,10 @@ cmake_minimum_required ( VERSION 3.22 ) -set ( CXSPARSE_DATE "Mar 22, 2024" ) +set ( CXSPARSE_DATE "June 20, 2024" ) set ( CXSPARSE_VERSION_MAJOR 4 CACHE STRING "" FORCE ) set ( CXSPARSE_VERSION_MINOR 4 CACHE STRING "" FORCE ) -set ( CXSPARSE_VERSION_SUB 0 CACHE STRING "" FORCE ) +set ( CXSPARSE_VERSION_SUB 1 CACHE STRING "" FORCE ) message ( STATUS "Building CXSparse version: v" ${CXSPARSE_VERSION_MAJOR}. @@ -70,10 +70,10 @@ endif ( ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.7.0 + find_package ( SuiteSparse_config 7.8.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) endif ( ) endif ( ) diff --git a/CXSparse/Config/cs.h.in b/CXSparse/Config/cs.h.in index 9d78f5b3e0..15dbe1bb02 100644 --- a/CXSparse/Config/cs.h.in +++ b/CXSparse/Config/cs.h.in @@ -26,6 +26,7 @@ #ifndef _CXS_H #define _CXS_H +#ifndef NCOMPLEX #if @CXSPARSE_HAS_COMPLEX@ # ifdef __cplusplus # include @@ -34,6 +35,7 @@ # endif # define cs_complex_t double _Complex #endif +#endif #define CS_VER @CXSPARSE_VERSION_MAJOR@ /* CXSparse Version */ #define CS_SUBVER @CXSPARSE_VERSION_MINOR@ @@ -46,8 +48,8 @@ #define CXSPARSE__VERSION SUITESPARSE__VERCODE(@CXSPARSE_VERSION_MAJOR@,@CXSPARSE_VERSION_MINOR@,@CXSPARSE_VERSION_SUB@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "CXSparse @CXSPARSE_VERSION_MAJOR@.@CXSPARSE_VERSION_MINOR@.@CXSPARSE_VERSION_SUB@ requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "CXSparse @CXSPARSE_VERSION_MAJOR@.@CXSPARSE_VERSION_MINOR@.@CXSPARSE_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later" #endif #define cs_long_t int64_t @@ -343,6 +345,7 @@ cs_dld *cs_dl_ddone (cs_dld *D, cs_dl *C, void *w, int64_t ok) ; /* complex/int32_t version of CXSparse */ /* -------------------------------------------------------------------------- */ +#ifndef NCOMPLEX #if @CXSPARSE_HAS_COMPLEX@ /* --- primary CSparse routines and data structures ------------------------- */ @@ -627,6 +630,7 @@ int64_t *cs_cl_idone (int64_t *p, cs_cl *C, void *w, int64_t ok) ; cs_cln *cs_cl_ndone (cs_cln *N, cs_cl *C, void *w, void *x, int64_t ok) ; cs_cld *cs_cl_ddone (cs_cld *D, cs_cl *C, void *w, int64_t ok) ; +#endif #endif /* -------------------------------------------------------------------------- */ @@ -768,12 +772,14 @@ cs_cld *cs_cl_ddone (cs_cld *D, cs_cl *C, void *w, int64_t ok) ; /* Conversion routines */ /* -------------------------------------------------------------------------- */ +#ifndef NCOMPLEX #if @CXSPARSE_HAS_COMPLEX@ cs_di *cs_i_real (cs_ci *A, int32_t real) ; cs_ci *cs_i_complex (cs_di *A, int32_t real) ; cs_dl *cs_l_real (cs_cl *A, int64_t real) ; cs_cl *cs_l_complex (cs_dl *A, int64_t real) ; #endif +#endif #ifdef __cplusplus } diff --git a/CXSparse/Demo/cs_demo.out b/CXSparse/Demo/cs_demo.out index a319e28627..7f303e5bd8 100644 --- a/CXSparse/Demo/cs_demo.out +++ b/CXSparse/Demo/cs_demo.out @@ -1,5 +1,5 @@ ( cd build && cmake -DSUITESPARSE_DEMOS=1 .. && cmake --build . --config Release -j8 ) --- Building CXSparse version: v4.4.0 (Mar 22, 2024) +-- Building CXSparse version: v4.4.1 (June 20, 2024) -- Source: /home/faculty/d/davis/dev2/SuiteSparse/CXSparse -- Build: /home/faculty/d/davis/dev2/SuiteSparse/CXSparse/build -- Install lib: /home/faculty/d/davis/dev2/SuiteSparse/lib @@ -16,9 +16,9 @@ -- CUDA toolkit lib: /usr/local/cuda/lib64 -- CUDA: enabled -- complex data type: enabled --- SuiteSparse_config version: 7.7.0 +-- SuiteSparse_config version: 7.8.0 -- SuiteSparse_config include: /home/faculty/d/davis/dev2/SuiteSparse/SuiteSparse_config --- SuiteSparse_config library: /home/faculty/d/davis/dev2/SuiteSparse/SuiteSparse_config/build/libsuitesparseconfig.so.7.7.0 +-- SuiteSparse_config library: /home/faculty/d/davis/dev2/SuiteSparse/SuiteSparse_config/build/libsuitesparseconfig.so.7.8.0 -- SuiteSparse_config static: /home/faculty/d/davis/dev2/SuiteSparse/SuiteSparse_config/build/libsuitesparseconfig.a -- Also compiling the demos in CXSparse/Demo -- ------------------------------------------------------------------------ @@ -45,28 +45,28 @@ gmake[1]: Entering directory '/home/faculty/d/davis/dev2/SuiteSparse/CXSparse/build' [ 44%] Built target CXSparse [ 89%] Built target CXSparse_static -[ 89%] Built target cs_demo1 -[ 89%] Built target cs_di_demo1 -[ 90%] Built target cs_demo2 +[ 90%] Built target cs_demo3 [ 91%] Built target cs_di_demo2 -[ 91%] Built target cs_dl_demo1 -[ 92%] Built target cs_di_demo3 -[ 93%] Built target cs_demo3 +[ 91%] Built target cs_di_demo1 +[ 92%] Built target cs_demo2 +[ 92%] Built target cs_dl_demo1 +[ 94%] Built target cs_di_demo3 +[ 94%] Built target cs_demo1 [ 94%] Built target cs_dl_demo2 [ 95%] Built target cs_dl_demo3 -[ 96%] Built target cs_cl_demo1 -[ 97%] Built target cs_ci_demo1 +[ 96%] Built target cs_ci_demo1 +[ 96%] Built target cs_ci_demo2 +[ 96%] Built target cs_idemo +[ 97%] Built target cs_ci_demo3 [ 97%] Built target cs_cl_demo2 -[ 97%] Built target cs_ci_demo2 -[ 98%] Built target cs_ci_demo3 +[ 98%] Built target cs_cl_demo1 [ 99%] Built target cs_cl_demo3 -[ 99%] Built target cs_idemo [100%] Built target cs_ldemo gmake[1]: Leaving directory '/home/faculty/d/davis/dev2/SuiteSparse/CXSparse/build' ./build/cs_demo1 < Matrix/t1 -CXSparse v4.4.0 +CXSparse v4.4.1 T: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -79,7 +79,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : 4.5 2 1 : 1.7 A: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -96,7 +96,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 3 : 1 1 : 0.9 AT: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 7.7 col 0 : locations 0 to 1 0 : 4.5 @@ -113,7 +113,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : 0.4 3 : 1 D: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 16 nnz: 16, 1-norm: 139.58 col 0 : locations 0 to 3 1 : 13.95 @@ -151,7 +151,7 @@ LU amd(A'*A) time: 0.00 resid: 1.53e-17 zero entries dropped: 71 tiny entries dropped: 10 blocks: 38 singletons: 37 structural rank: 183 -QR natural time: 0.00 resid: 1.42e-27 +QR natural time: 0.01 resid: 1.42e-27 QR amd(A'*A) time: 0.00 resid: 3.35e-28 LU natural time: 0.00 resid: 6.20e-28 LU amd(A+A') time: 0.00 resid: 1.55e-27 @@ -184,7 +184,7 @@ QR amd(A'*A) time: 0.00 resid: 1.61e-02 --- Matrix: 492-by-490, nnz: 49920 (sym: 0: nnz 0), norm: 9.29e-01 blocks: 10 singletons: 8 structural rank: 448 QR natural time: 0.06 resid: nan -QR amd(A'*A) time: 0.06 resid: nan +QR amd(A'*A) time: 0.07 resid: nan ./build/cs_demo2 < Matrix/bcsstk01 --- Matrix: 48-by-48, nnz: 224 (sym: -1: nnz 400), norm: 3.57e+09 @@ -235,9 +235,9 @@ rechol: time: 0.09 (incl solve) resid: 1.17e-23 downdate: time: 0.00 downdate: time: 0.00 (incl solve) resid: 4.09e-22 ./build/cs_di_demo1 < Matrix/t1 -CXSparse v4.4.0 +CXSparse v4.4.1 T: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -250,7 +250,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : 4.5 2 1 : 1.7 A: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -267,7 +267,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 3 : 1 1 : 0.9 AT: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 7.7 col 0 : locations 0 to 1 0 : 4.5 @@ -284,7 +284,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : 0.4 3 : 1 D: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 16 nnz: 16, 1-norm: 139.58 col 0 : locations 0 to 3 1 : 13.95 @@ -322,7 +322,7 @@ LU amd(A'*A) time: 0.00 resid: 1.53e-17 zero entries dropped: 71 tiny entries dropped: 10 blocks: 38 singletons: 37 structural rank: 183 -QR natural time: 0.01 resid: 1.42e-27 +QR natural time: 0.00 resid: 1.42e-27 QR amd(A'*A) time: 0.00 resid: 3.35e-28 LU natural time: 0.00 resid: 6.20e-28 LU amd(A+A') time: 0.00 resid: 1.55e-27 @@ -354,8 +354,8 @@ QR amd(A'*A) time: 0.00 resid: 1.61e-02 --- Matrix: 492-by-490, nnz: 49920 (sym: 0: nnz 0), norm: 9.29e-01 blocks: 10 singletons: 8 structural rank: 448 -QR natural time: 0.06 resid: nan -QR amd(A'*A) time: 0.07 resid: nan +QR natural time: 0.05 resid: nan +QR amd(A'*A) time: 0.06 resid: nan ./build/cs_di_demo2 < Matrix/bcsstk01 --- Matrix: 48-by-48, nnz: 224 (sym: -1: nnz 400), norm: 3.57e+09 @@ -386,10 +386,10 @@ downdate: time: 0.00 (incl solve) resid: 3.74e-17 --- Matrix: 4884-by-4884, nnz: 147631 (sym: -1: nnz 290378), norm: 7.01e+09 blocks: 75 singletons: 74 structural rank: 4884 -QR amd(A'*A) time: 0.62 resid: 2.01e-22 +QR amd(A'*A) time: 0.61 resid: 2.01e-22 LU amd(A+A') time: 0.32 resid: 1.10e-22 LU amd(S'*S) time: 0.32 resid: 1.28e-22 -LU amd(A'*A) time: 0.36 resid: 1.78e-22 +LU amd(A'*A) time: 0.33 resid: 1.78e-22 Chol amd(A+A') time: 0.10 resid: 1.19e-22 ./build/cs_di_demo3 < Matrix/bcsstk16 @@ -397,7 +397,7 @@ Chol amd(A+A') time: 0.10 resid: 1.19e-22 chol then update/downdate amd(A+A') symbolic chol time 0.01 -numeric chol time 0.11 +numeric chol time 0.10 solve chol time 0.00 original: resid: 1.19e-22 update: time: 0.00 @@ -406,9 +406,9 @@ rechol: time: 0.09 (incl solve) resid: 1.17e-23 downdate: time: 0.00 downdate: time: 0.00 (incl solve) resid: 4.09e-22 ./build/cs_dl_demo1 < Matrix/t1 -CXSparse v4.4.0 +CXSparse v4.4.1 T: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -421,7 +421,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : 4.5 2 1 : 1.7 A: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -438,7 +438,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 3 : 1 1 : 0.9 AT: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 7.7 col 0 : locations 0 to 1 0 : 4.5 @@ -455,7 +455,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : 0.4 3 : 1 D: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 16 nnz: 16, 1-norm: 139.58 col 0 : locations 0 to 3 1 : 13.95 @@ -557,7 +557,7 @@ downdate: time: 0.00 (incl solve) resid: 3.74e-17 --- Matrix: 4884-by-4884, nnz: 147631 (sym: -1: nnz 290378), norm: 7.01e+09 blocks: 75 singletons: 74 structural rank: 4884 -QR amd(A'*A) time: 0.62 resid: 2.01e-22 +QR amd(A'*A) time: 0.65 resid: 2.01e-22 LU amd(A+A') time: 0.32 resid: 1.10e-22 LU amd(S'*S) time: 0.33 resid: 1.28e-22 LU amd(A'*A) time: 0.34 resid: 1.78e-22 @@ -568,7 +568,7 @@ Chol amd(A+A') time: 0.11 resid: 1.19e-22 chol then update/downdate amd(A+A') symbolic chol time 0.01 -numeric chol time 0.10 +numeric chol time 0.11 solve chol time 0.00 original: resid: 1.19e-22 update: time: 0.00 @@ -577,7 +577,7 @@ rechol: time: 0.10 (incl solve) resid: 1.17e-23 downdate: time: 0.00 downdate: time: 0.00 (incl solve) resid: 4.09e-22 ( cd build && cmake -DSUITESPARSE_DEMOS=1 .. && cmake --build . --config Release -j8 ) --- Building CXSparse version: v4.4.0 (Mar 22, 2024) +-- Building CXSparse version: v4.4.1 (June 20, 2024) -- Source: /home/faculty/d/davis/dev2/SuiteSparse/CXSparse -- Build: /home/faculty/d/davis/dev2/SuiteSparse/CXSparse/build -- Install lib: /home/faculty/d/davis/dev2/SuiteSparse/lib @@ -594,9 +594,9 @@ downdate: time: 0.00 (incl solve) resid: 4.09e-22 -- CUDA toolkit lib: /usr/local/cuda/lib64 -- CUDA: enabled -- complex data type: enabled --- SuiteSparse_config version: 7.7.0 +-- SuiteSparse_config version: 7.8.0 -- SuiteSparse_config include: /home/faculty/d/davis/dev2/SuiteSparse/SuiteSparse_config --- SuiteSparse_config library: /home/faculty/d/davis/dev2/SuiteSparse/SuiteSparse_config/build/libsuitesparseconfig.so.7.7.0 +-- SuiteSparse_config library: /home/faculty/d/davis/dev2/SuiteSparse/SuiteSparse_config/build/libsuitesparseconfig.so.7.8.0 -- SuiteSparse_config static: /home/faculty/d/davis/dev2/SuiteSparse/SuiteSparse_config/build/libsuitesparseconfig.a -- Also compiling the demos in CXSparse/Demo -- ------------------------------------------------------------------------ @@ -621,23 +621,23 @@ downdate: time: 0.00 (incl solve) resid: 4.09e-22 -- Generating done (0.1s) -- Build files have been written to: /home/faculty/d/davis/dev2/SuiteSparse/CXSparse/build gmake[1]: Entering directory '/home/faculty/d/davis/dev2/SuiteSparse/CXSparse/build' -[ 44%] Built target CXSparse -[ 89%] Built target CXSparse_static +[ 74%] Built target CXSparse_static +[ 89%] Built target CXSparse [ 89%] Built target cs_demo1 [ 90%] Built target cs_di_demo3 -[ 91%] Built target cs_di_demo2 +[ 90%] Built target cs_dl_demo1 +[ 90%] Built target cs_di_demo1 +[ 91%] Built target cs_demo3 [ 92%] Built target cs_demo2 -[ 92%] Built target cs_dl_demo1 -[ 93%] Built target cs_demo3 -[ 93%] Built target cs_di_demo1 -[ 94%] Built target cs_dl_demo2 +[ 93%] Built target cs_dl_demo2 +[ 94%] Built target cs_di_demo2 [ 95%] Built target cs_dl_demo3 -[ 96%] Built target cs_ci_demo3 -[ 96%] Built target cs_ci_demo2 -[ 97%] Built target cs_ci_demo1 -[ 97%] Built target cs_cl_demo2 +[ 95%] Built target cs_cl_demo2 +[ 95%] Built target cs_ci_demo2 +[ 96%] Built target cs_ci_demo1 +[ 97%] Built target cs_cl_demo3 [ 98%] Built target cs_cl_demo1 -[ 99%] Built target cs_cl_demo3 +[ 99%] Built target cs_ci_demo3 [ 99%] Built target cs_idemo [100%] Built target cs_ldemo gmake[1]: Leaving directory '/home/faculty/d/davis/dev2/SuiteSparse/CXSparse/build' @@ -646,7 +646,7 @@ gmake[1]: Leaving directory '/home/faculty/d/davis/dev2/SuiteSparse/CXSparse/bui --- cs_idemo, size of CS_INT: 4 T: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : (3, 3.14159) 1 0 : (3.1, 42) @@ -660,7 +660,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : (1.7, 1) Treal: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -674,7 +674,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : 1.7 Timag: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3.14159 1 0 : 42 @@ -688,7 +688,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : 1 A: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, 42) @@ -706,7 +706,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : (0.9, 99) C1 = real(A): -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -724,7 +724,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : 0.9 C2 = imag(A): -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106 col 0 : locations 0 to 2 1 : 42 @@ -742,7 +742,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : 99 A1: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : (3.1, 0) @@ -760,7 +760,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : (0.9, 0) A2: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106 col 0 : locations 0 to 2 1 : (0, 42) @@ -778,7 +778,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : (0, 99) B = conj(A): -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, -42) @@ -799,7 +799,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 --- cs_ldemo, size of CS_INT: 8 T: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : (3, 3.14159) 1 0 : (3.1, 42) @@ -813,7 +813,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : (1.7, 1) Treal: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3 1 0 : 3.1 @@ -827,7 +827,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : 1.7 Timag: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : 3.14159 1 0 : 42 @@ -841,7 +841,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 2 1 : 1 A: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, 42) @@ -859,7 +859,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : (0.9, 99) C1 = real(A): -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : 3.1 @@ -877,7 +877,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : 0.9 C2 = imag(A): -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106 col 0 : locations 0 to 2 1 : 42 @@ -895,7 +895,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : 99 A1: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 11.1 col 0 : locations 0 to 2 1 : (3.1, 0) @@ -913,7 +913,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : (0.9, 0) A2: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106 col 0 : locations 0 to 2 1 : (0, 42) @@ -931,7 +931,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : (0, 99) B = conj(A): -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, -42) @@ -948,9 +948,9 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 3 : (1, -7) 1 : (0.9, -99) ./build/cs_ci_demo1 < Matrix/t2 -CXSparse v4.4.0 +CXSparse v4.4.1 T: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : (3, 3.14159) 1 0 : (3.1, 42) @@ -963,7 +963,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : (4.5, 6) 2 1 : (1.7, 1) A: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, 42) @@ -980,7 +980,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 3 : (1, 7) 1 : (0.9, 99) AT: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 144.296 col 0 : locations 0 to 1 0 : (4.5, -6) @@ -997,7 +997,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : (0.4, -2.71828) 3 : (1, -7) D: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 16 nnz: 16, 1-norm: 25308.3 col 0 : locations 0 to 3 1 : (265.95, 170.4) @@ -1061,8 +1061,8 @@ LU amd(A'*A) time: 0.00 resid: 4.76e-17 --- Matrix: 492-by-490, nnz: 49920 (sym: 0: nnz 0), norm: 9.29e-01 blocks: 10 singletons: 8 structural rank: 448 -QR natural time: 0.12 resid: nan -QR amd(A'*A) time: 0.13 resid: nan +QR natural time: 0.14 resid: nan +QR amd(A'*A) time: 0.15 resid: nan ./build/cs_ci_demo2 < Matrix/young1c --- Matrix: 841-by-841, nnz: 4089 (sym: 0: nnz 0), norm: 7.30e+02 @@ -1142,9 +1142,9 @@ rechol: time: 0.00 (incl solve) resid: 1.71e-25 downdate: time: 0.00 downdate: time: 0.00 (incl solve) resid: 5.85e-25 ./build/cs_cl_demo1 < Matrix/t2 -CXSparse v4.4.0 +CXSparse v4.4.1 T: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 triplet: 4-by-4, nzmax: 16 nnz: 10 2 2 : (3, 3.14159) 1 0 : (3.1, 42) @@ -1157,7 +1157,7 @@ triplet: 4-by-4, nzmax: 16 nnz: 10 0 0 : (4.5, 6) 2 1 : (1.7, 1) A: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 106.075 col 0 : locations 0 to 2 1 : (3.1, 42) @@ -1174,7 +1174,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 3 : (1, 7) 1 : (0.9, 99) AT: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 10 nnz: 10, 1-norm: 144.296 col 0 : locations 0 to 1 0 : (4.5, -6) @@ -1191,7 +1191,7 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : (0.4, -2.71828) 3 : (1, -7) D: -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 4-by-4, nzmax: 16 nnz: 16, 1-norm: 25308.3 col 0 : locations 0 to 3 1 : (265.95, 170.4) @@ -1255,7 +1255,7 @@ LU amd(A'*A) time: 0.00 resid: 4.76e-17 --- Matrix: 492-by-490, nnz: 49920 (sym: 0: nnz 0), norm: 9.29e-01 blocks: 10 singletons: 8 structural rank: 448 -QR natural time: 0.11 resid: nan +QR natural time: 0.14 resid: nan QR amd(A'*A) time: 0.13 resid: nan ./build/cs_cl_demo2 < Matrix/young1c @@ -1263,7 +1263,7 @@ QR amd(A'*A) time: 0.13 resid: nan blocks: 1 singletons: 0 structural rank: 841 QR natural time: 0.01 resid: 1.81e-16 QR amd(A'*A) time: 0.01 resid: 1.57e-16 -LU natural time: 0.01 resid: 1.39e-16 +LU natural time: 0.00 resid: 1.39e-16 LU amd(A+A') time: 0.01 resid: 2.95e-16 LU amd(S'*S) time: 0.00 resid: 3.37e-16 LU amd(A'*A) time: 0.00 resid: 3.37e-16 @@ -1282,7 +1282,7 @@ LU amd(A'*A) time: 0.01 resid: 4.71e-17 --- Matrix: 1600-by-1600, nnz: 7840 (sym: 0: nnz 0), norm: 1.41e+01 blocks: 1 singletons: 0 structural rank: 1600 QR amd(A'*A) time: 0.02 resid: 1.04e-15 -LU amd(A+A') time: 0.00 resid: 3.55e-16 +LU amd(A+A') time: 0.01 resid: 3.55e-16 LU amd(S'*S) time: 0.01 resid: 4.03e-16 LU amd(A'*A) time: 0.01 resid: 4.03e-16 ./build/cs_cl_demo2 < Matrix/c4 diff --git a/CXSparse/Doc/ChangeLog b/CXSparse/Doc/ChangeLog index 15fe06f124..76a1377038 100644 --- a/CXSparse/Doc/ChangeLog +++ b/CXSparse/Doc/ChangeLog @@ -1,3 +1,7 @@ +June 20, 2024: version 4.4.1 + + * minor update for MATLAB on Windows + Mar 22, 2024: version 4.4.0 * minor updates to build system diff --git a/CXSparse/Include/cs.h b/CXSparse/Include/cs.h index 9454190642..95796f448a 100644 --- a/CXSparse/Include/cs.h +++ b/CXSparse/Include/cs.h @@ -26,6 +26,7 @@ #ifndef _CXS_H #define _CXS_H +#ifndef NCOMPLEX #if 1 # ifdef __cplusplus # include @@ -34,20 +35,21 @@ # endif # define cs_complex_t double _Complex #endif +#endif #define CS_VER 4 /* CXSparse Version */ #define CS_SUBVER 4 -#define CS_SUBSUB 0 -#define CS_DATE "Mar 22, 2024" /* CXSparse release date */ +#define CS_SUBSUB 1 +#define CS_DATE "June 20, 2024" /* CXSparse release date */ #define CS_COPYRIGHT "Copyright (c) Timothy A. Davis, 2006-2024" #define CXSPARSE #include "SuiteSparse_config.h" -#define CXSPARSE__VERSION SUITESPARSE__VERCODE(4,4,0) +#define CXSPARSE__VERSION SUITESPARSE__VERCODE(4,4,1) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "CXSparse 4.4.0 requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "CXSparse 4.4.1 requires SuiteSparse_config 7.8.0 or later" #endif #define cs_long_t int64_t @@ -343,6 +345,7 @@ cs_dld *cs_dl_ddone (cs_dld *D, cs_dl *C, void *w, int64_t ok) ; /* complex/int32_t version of CXSparse */ /* -------------------------------------------------------------------------- */ +#ifndef NCOMPLEX #if 1 /* --- primary CSparse routines and data structures ------------------------- */ @@ -627,6 +630,7 @@ int64_t *cs_cl_idone (int64_t *p, cs_cl *C, void *w, int64_t ok) ; cs_cln *cs_cl_ndone (cs_cln *N, cs_cl *C, void *w, void *x, int64_t ok) ; cs_cld *cs_cl_ddone (cs_cld *D, cs_cl *C, void *w, int64_t ok) ; +#endif #endif /* -------------------------------------------------------------------------- */ @@ -768,12 +772,14 @@ cs_cld *cs_cl_ddone (cs_cld *D, cs_cl *C, void *w, int64_t ok) ; /* Conversion routines */ /* -------------------------------------------------------------------------- */ +#ifndef NCOMPLEX #if 1 cs_di *cs_i_real (cs_ci *A, int32_t real) ; cs_ci *cs_i_complex (cs_di *A, int32_t real) ; cs_dl *cs_l_real (cs_cl *A, int64_t real) ; cs_cl *cs_l_complex (cs_dl *A, int64_t real) ; #endif +#endif #ifdef __cplusplus } diff --git a/CXSparse/MATLAB/CSparse/private/cs_make_helper.m b/CXSparse/MATLAB/CSparse/private/cs_make_helper.m index 627ee48690..1069b33b63 100644 --- a/CXSparse/MATLAB/CSparse/private/cs_make_helper.m +++ b/CXSparse/MATLAB/CSparse/private/cs_make_helper.m @@ -114,6 +114,11 @@ pc = ~isunix ; end +if (pc) + % disable the SuiteSparse_config timer + mexcmd = [mexcmd ' -DNTIMER '] ; +end + if (pc) obj = '.obj' ; else diff --git a/ChangeLog b/ChangeLog index e2bf5cc283..8a90a6766f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,41 @@ +Aug 2, 2024: version 7.8.0 + + * ParU 0.2.0: many changes; nearing a stable release. + * CHOLMOD 5.3.0: added cholmod_query, and #define's in cholmod.h, + to query which Modules and features have been configured. + * GraphBLAS 9.3.0: simpler MATLAB install; sanitize environment variables; + code restructuring. + * SPQR 4.3.4: changes to reflect updates to CHOLMOD + * SPEX 3.2.0: control Python interface, fix build issues on Mac, + split SPEX Cholesky into LDL and Cholesky. + * SuiteSparse_config: changes to SuiteSparse timer, BLA_VENDOR. Added + SUITESPARSE_USE_PYTHON option. Split BLAS prototypes and macros. + * .github: new CI runner for riscv64, and other changes in CI workflows. + * AMD, CAMD, COLAMD, CCOLAMD, CXSparse, KLU, SuiteSparse_Mongoose, + RBio, UMFPACK: minor changes for MATLAB in Windows + * no changes to: BTF, CSparse, LDL, and LAGraph + * Package versions in this release: (* denotes a new version) + SuiteSparse_config 7.8.0 * + AMD 3.3.3 * + BTF 2.3.2 same as SuiteSparse 7.7.0 + CAMD 3.3.3 * + CCOLAMD 3.3.4 * + CHOLMOD 5.3.0 * + COLAMD 3.3.4 * + CSparse 4.3.2 same as SuiteSparse 7.7.0 + CXSparse 4.4.1 * + Example 1.8.0 * + GraphBLAS 9.3.0 * + KLU 2.3.4 * + LDL 3.3.2 same as SuiteSparse 7.7.0 + LAGraph 1.1.3 same as SuiteSparse 7.7.0 + SuiteSparse_Mongoose 3.3.4 * + ParU 0.2.0 * + RBio 4.3.3 * + SPEX 3.2.0 * + SPQR 4.3.4 * + UMFPACK 6.3.4 * + Mar 22, 2024: version 7.7.0 * SPEX 3.1.0: major revision to API, new methods. Added SPEX_Cholesky, diff --git a/Contributor_License/SuiteSparse_Individual_Contributor_License_Agreement.pdf b/Contributor_License/SuiteSparse_Individual_Contributor_License_Agreement.pdf new file mode 100644 index 0000000000..6ee37512c6 Binary files /dev/null and b/Contributor_License/SuiteSparse_Individual_Contributor_License_Agreement.pdf differ diff --git a/Example/CMakeLists.txt b/Example/CMakeLists.txt index c3c8179f3a..b1bbab357b 100644 --- a/Example/CMakeLists.txt +++ b/Example/CMakeLists.txt @@ -53,9 +53,9 @@ message ( STATUS "MY prefix path: ${CMAKE_PREFIX_PATH}" ) #------------------------------------------------------------------------------- # cmake inserts the date and version number into Include/my.h: -set ( MY_DATE "Mar 22, 2024" ) +set ( MY_DATE "Aug 2, 2024" ) set ( MY_VERSION_MAJOR 1 ) -set ( MY_VERSION_MINOR 7 ) +set ( MY_VERSION_MINOR 8 ) set ( MY_VERSION_PATCH 0 ) message ( STATUS "Building MY library version: v" @@ -87,25 +87,25 @@ project ( my #------------------------------------------------------------------------------- # look for all SuiteSparse packages: -find_package ( SuiteSparse_config 7.7.0 REQUIRED ) -find_package ( AMD 3.3.2 REQUIRED ) +find_package ( SuiteSparse_config 7.8.0 REQUIRED ) +find_package ( AMD 3.3.3 REQUIRED ) find_package ( BTF 2.3.2 REQUIRED ) -find_package ( CAMD 3.3.2 REQUIRED ) -find_package ( CCOLAMD 3.3.3 REQUIRED ) -find_package ( CHOLMOD 5.2.1 REQUIRED ) -find_package ( COLAMD 3.3.3 REQUIRED ) -find_package ( CXSparse 4.4.0 REQUIRED ) -find_package ( GraphBLAS 9.1.0 ) -find_package ( KLU 2.3.3 REQUIRED ) -find_package ( KLU_CHOLMOD 2.3.3 REQUIRED ) +find_package ( CAMD 3.3.3 REQUIRED ) +find_package ( CCOLAMD 3.3.4 REQUIRED ) +find_package ( CHOLMOD 5.3.0 REQUIRED ) +find_package ( COLAMD 3.3.4 REQUIRED ) +find_package ( CXSparse 4.4.1 REQUIRED ) +find_package ( GraphBLAS 9.3.0 ) +find_package ( KLU 2.3.4 REQUIRED ) +find_package ( KLU_CHOLMOD 2.3.4 REQUIRED ) find_package ( LDL 3.3.2 REQUIRED ) find_package ( LAGraph 1.1.3 ) -find_package ( SuiteSparse_Mongoose 3.3.3 REQUIRED ) -find_package ( ParU 0.1.3 REQUIRED ) -find_package ( RBio 4.3.2 REQUIRED ) -find_package ( SPEX 3.1.0 REQUIRED ) # requires GMP and MPFR -find_package ( SPQR 4.3.3 REQUIRED ) -find_package ( UMFPACK 6.3.3 REQUIRED ) +find_package ( SuiteSparse_Mongoose 3.3.4 REQUIRED ) +find_package ( ParU 0.2.0 REQUIRED ) +find_package ( RBio 4.3.3 REQUIRED ) +find_package ( SPEX 3.2.0 REQUIRED ) # requires GMP and MPFR +find_package ( SPQR 4.3.4 REQUIRED ) +find_package ( UMFPACK 6.3.4 REQUIRED ) # for GMP and MPFR find_package ( MPFR 4.0.2 REQUIRED ) # from SPEX/cmake_modules diff --git a/Example/Demo/mydemo.out b/Example/Demo/mydemo.out index 0ca20685b2..4271b30d1e 100644 --- a/Example/Demo/mydemo.out +++ b/Example/Demo/mydemo.out @@ -1,25 +1,25 @@ My demo -Date from #include 'my.h': Mar 22, 2024 -Date from compiled library: Mar 22, 2024 -version from #include 'my.h.': 1.7.0 -version from compiled library: 1.7.0 +Date from #include 'my.h': Aug 2, 2024 +Date from compiled library: Aug 2, 2024 +version from #include 'my.h.': 1.8.0 +version from compiled library: 1.8.0 ------------------------------------------------------------ -MY: v1.7.0 (Mar 22, 2024) -MY: v1.7.0 (in library) -MY version code: 1007000 -MY date: Mar 22, 2024 +MY: v1.8.0 (Aug 2, 2024) +MY: v1.8.0 (in library) +MY version code: 1008000 +MY date: Aug 2, 2024 ------------------------------------------------------------ -SuiteSparse_config: v7.7.0 (Mar 22, 2024) -SuiteSparse_config: v7.7.0 (in library) -SuiteSparse_config version code: 7007000 +SuiteSparse_config: v7.8.0 (Aug 2, 2024) +SuiteSparse_config: v7.8.0 (in library) +SuiteSparse_config version code: 7008000 ------------------------------------------------------------ -CXSparse: v4.4.0 (Mar 22, 2024) -CXSparse: v4.4.0 (in library) -CXSparse version code: 4004000 -CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 +CXSparse: v4.4.1 (June 20, 2024) +CXSparse: v4.4.1 (in library) +CXSparse version code: 4004001 +CXSparse Version 4.4.1, June 20, 2024. Copyright (c) Timothy A. Davis, 2006-2024 2-by-2, nzmax: 4 nnz: 4, 1-norm: 34 col 0 : locations 0 to 1 0 : 11 @@ -29,9 +29,9 @@ CXSparse Version 4.4.0, Mar 22, 2024. Copyright (c) Timothy A. Davis, 2006-2024 1 : 22 ------------------------------------------------------------ -AMD: v3.3.2 (Mar 22, 2024) -AMD: v3.3.2 (in library) -AMD version code: 3003002 +AMD: v3.3.3 (June 20, 2024) +AMD: v3.3.3 (in library) +AMD version code: 3003003 P [0] = 0 P [1] = 1 @@ -46,35 +46,35 @@ Q [1] = 1 nblocks 1 ------------------------------------------------------------ -CAMD: v3.3.2 (Mar 22, 2024) -CAMD: v3.3.2 (in library) -CAMD version code: 3003002 +CAMD: v3.3.3 (June 20, 2024) +CAMD: v3.3.3 (in library) +CAMD version code: 3003003 P [0] = 0 P [1] = 1 ------------------------------------------------------------ -CCOLAMD: v3.3.3 (Mar 22, 2024) -CCOLAMD: v3.3.3 (in library) -CCOLAMD version code: 3003003 +CCOLAMD: v3.3.4 (June 20, 2024) +CCOLAMD: v3.3.4 (in library) +CCOLAMD version code: 3003004 P [0] = 0 P [1] = 1 ------------------------------------------------------------ -COLAMD: v3.3.3 (Mar 22, 2024) -COLAMD: v3.3.3 (in library) -COLAMD version code: 3003003 +COLAMD: v3.3.4 (June 20, 2024) +COLAMD: v3.3.4 (in library) +COLAMD version code: 3003004 P [0] = 0 P [1] = 1 ------------------------------------------------------------ -CHOLMOD: v5.2.1 (Mar 22, 2024) -CHOLMOD: v5.2.1 (in library) -CHOLMOD version code: 5002001 +CHOLMOD: v5.3.0 (June 20, 2024) +CHOLMOD: v5.3.0 (in library) +CHOLMOD version code: 5003000 ------------------------------------------------------------ -GraphBLAS: v9.1.0 (Mar 22, 2024) -GraphBLAS: v9.1.0 (in library) -GraphBLAS version code: 9001000 +GraphBLAS: v9.3.0 (Aug 2, 2024) +GraphBLAS: v9.3.0 (in library) +GraphBLAS version code: 9003000 ------------------------------------------------------------ LAGraph: v1.1.3 (Mar 22, 2024) @@ -82,9 +82,9 @@ LAGraph: v1.1.3 (in library) LAGraph version code: 1001003 ------------------------------------------------------------ -KLU: v2.3.3 (Mar 22, 2024) -KLU: v2.3.3 (in library) -KLU version code: 2003003 +KLU: v2.3.4 (June 20, 2024) +KLU: v2.3.4 (in library) +KLU version code: 2003004 x [0] = 36.4 x [1] = -32.7 error: 7.10543e-14 @@ -98,9 +98,9 @@ x2 [1] = -32.7 error: 0 ------------------------------------------------------------ -RBio: v4.3.2 (Mar 22, 2024) -RBio: v4.3.2 (in library) -RBio version code: 4003002 +RBio: v4.3.3 (June 20, 2024) +RBio: v4.3.3 (in library) +RBio version code: 4003003 njumbled 0, nzeros 0 result 0 mtype: iua @@ -113,14 +113,14 @@ iua 2 2 4 0 11 21 12 22 ------------------------------------------------------------ -SPEX: v3.1.0 (Mar 22, 2024) -SPEX: v3.1.0 (in library) -SPEX version code: 3001000 +SPEX: v3.2.0 (July 2, 2024) +SPEX: v3.2.0 (in library) +SPEX version code: 3002000 ------------------------------------------------------------ -SuiteSparseQR: v4.3.3 (Mar 22, 2024) -SuiteSparseQR: v4.3.3 (in library) -SuiteSparseQR version code: 4003003 +SuiteSparseQR: v4.3.4 (June 20, 2024) +SuiteSparseQR: v4.3.4 (in library) +SuiteSparseQR version code: 4003004 CHOLMOD dense: X from QR: 2-by-1, leading dimension 2, nzmax 2, real, double @@ -131,10 +131,10 @@ CHOLMOD dense: X from QR: 2-by-1, ------------------------------------------------------------ -UMFPACK: v6.3.3 (Mar 22, 2024) -UMFPACK: v6.3.3 (in library) -UMFPACK version code: 6003003 -UMFPACK V6.3.3 (Mar 22, 2024) +UMFPACK: v6.3.4 (June 20, 2024) +UMFPACK: v6.3.4 (in library) +UMFPACK version code: 6003004 +UMFPACK V6.3.4 (June 20, 2024) UMFPACK: Copyright (c) 2005-2024 by Timothy A. Davis. All Rights Reserved. UMFPACK License: SPDX-License-Identifier: GPL-2.0+ @@ -155,14 +155,14 @@ UMFPACK License: SPDX-License-Identifier: GPL-2.0+ Availability: http://www.suitesparse.com -UMFPACK V6.3.3 (Mar 22, 2024): OK +UMFPACK V6.3.4 (June 20, 2024): OK -UMFPACK V6.3.3 (Mar 22, 2024), Info: +UMFPACK V6.3.4 (June 20, 2024), Info: matrix entry defined as: double Int (generic integer) defined as: int64_t BLAS library used: Intel MKL 64lp BLAS (32-bit integers). size of BLAS integer: 4 MATLAB: no. - CPU timer: SuiteSparse_time ( ) + CPU timer: omp_get_wtime number of rows in matrix A: 2 number of columns in matrix A: 2 entries in matrix A: 4 diff --git a/Example/Include/my.h b/Example/Include/my.h index 7d80db21f2..7889add2a0 100644 --- a/Example/Include/my.h +++ b/Example/Include/my.h @@ -11,9 +11,9 @@ // file, since it is constructed from Config/my.h.in by cmake. // version and date for example user library -#define MY_DATE "Mar 22, 2024" +#define MY_DATE "Aug 2, 2024" #define MY_MAJOR_VERSION 1 -#define MY_MINOR_VERSION 7 +#define MY_MINOR_VERSION 8 #define MY_PATCH_VERSION 0 #ifdef __cplusplus diff --git a/Example/Include/my_internal.h b/Example/Include/my_internal.h index e304740860..6387588838 100644 --- a/Example/Include/my_internal.h +++ b/Example/Include/my_internal.h @@ -2,7 +2,7 @@ // SuiteSparse/Example/Include/my_internal.h //------------------------------------------------------------------------------ -// Copyright (c) 2022-2023, Timothy A. Davis, All Rights Reserved. +// Copyright (c) 2022-2024, Timothy A. Davis, All Rights Reserved. // SPDX-License-Identifier: BSD-3-clause //------------------------------------------------------------------------------ @@ -14,13 +14,13 @@ // SuiteSparse include files for C/C++: #include "SuiteSparse_config.h" -#if !defined (SUITESPARSE__VERSION) || SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0) -#error "This library requires SuiteSparse_config 7.7.0 or later" +#if !defined (SUITESPARSE__VERSION) || SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0) +#error "This library requires SuiteSparse_config 7.8.0 or later" #endif #include "amd.h" -#if !defined (AMD__VERSION) || AMD__VERSION < SUITESPARSE__VERCODE(3,3,2) -#error "This library requires AMD 3.3.2 or later" +#if !defined (AMD__VERSION) || AMD__VERSION < SUITESPARSE__VERCODE(3,3,3) +#error "This library requires AMD 3.3.3 or later" #endif #include "btf.h" @@ -29,35 +29,35 @@ #endif #include "camd.h" -#if !defined (CAMD__VERSION) || CAMD__VERSION < SUITESPARSE__VERCODE(3,3,2) -#error "This library requires CAMD 3.3.2 or later" +#if !defined (CAMD__VERSION) || CAMD__VERSION < SUITESPARSE__VERCODE(3,3,3) +#error "This library requires CAMD 3.3.3 or later" #endif #include "ccolamd.h" -#if !defined (CCOLAMD__VERSION) || CCOLAMD__VERSION < SUITESPARSE__VERCODE(3,3,3) -#error "This library requires CCOLAMD 3.3.3 or later" +#if !defined (CCOLAMD__VERSION) || CCOLAMD__VERSION < SUITESPARSE__VERCODE(3,3,4) +#error "This library requires CCOLAMD 3.3.4 or later" #endif #include "cholmod.h" -#if !defined (CHOLMOD__VERSION) || CHOLMOD__VERSION < SUITESPARSE__VERCODE(5,2,1) -#error "This library requires CHOLMOD 5.2.1 or later" +#if !defined (CHOLMOD__VERSION) || CHOLMOD__VERSION < SUITESPARSE__VERCODE(5,3,0) +#error "This library requires CHOLMOD 5.3.0 or later" #endif #include "colamd.h" -#if !defined (COLAMD__VERSION) || COLAMD__VERSION < SUITESPARSE__VERCODE(3,3,3) -#error "This library requires COLAMD 3.3.3 or later" +#if !defined (COLAMD__VERSION) || COLAMD__VERSION < SUITESPARSE__VERCODE(3,3,4) +#error "This library requires COLAMD 3.3.4 or later" #endif #include "cs.h" -#if !defined (CXSPARSE__VERSION) || CXSPARSE__VERSION < SUITESPARSE__VERCODE(4,4,0) -#error "This library requires CXSparse 4.4.0 or later" +#if !defined (CXSPARSE__VERSION) || CXSPARSE__VERSION < SUITESPARSE__VERCODE(4,4,1) +#error "This library requires CXSparse 4.4.1 or later" #endif #if ! defined (NO_GRAPHBLAS) #include "GraphBLAS.h" #if !defined ( GxB_SUITESPARSE_GRAPHBLAS ) || \ - GxB_IMPLEMENTATION < GxB_VERSION (9,1,0) - #error "This library requires SuiteSparse:GraphBLAS 9.1.0 or later" + GxB_IMPLEMENTATION < GxB_VERSION (9,3,0) + #error "This library requires SuiteSparse:GraphBLAS 9.3.0 or later" #endif #endif @@ -69,8 +69,8 @@ #endif #include "klu.h" -#if !defined (KLU__VERSION) || KLU__VERSION < SUITESPARSE__VERCODE(2,3,3) -#error "This library requires KLU 2.3.3 or later" +#if !defined (KLU__VERSION) || KLU__VERSION < SUITESPARSE__VERCODE(2,3,4) +#error "This library requires KLU 2.3.4 or later" #endif #include "ldl.h" @@ -79,23 +79,23 @@ #endif #include "RBio.h" -#if !defined (RBIO__VERSION) || RBIO__VERSION < SUITESPARSE__VERCODE(4,3,2) -#error "This library requires RBio 4.3.2 or later" +#if !defined (RBIO__VERSION) || RBIO__VERSION < SUITESPARSE__VERCODE(4,3,3) +#error "This library requires RBio 4.3.3 or later" #endif #include "SPEX.h" -#if !defined (SPEX__VERSION) || SPEX__VERSION < SUITESPARSE__VERCODE(3,1,0) -#error "This library requires SPEX 3.1.0 or later" +#if !defined (SPEX__VERSION) || SPEX__VERSION < SUITESPARSE__VERCODE(3,2,0) +#error "This library requires SPEX 3.2.0 or later" #endif #include "SuiteSparseQR_C.h" -#if !defined (SPQR__VERSION) || SPQR__VERSION < SUITESPARSE__VERCODE(4,3,3) -#error "This library requires SPQR 4.3.3 or later" +#if !defined (SPQR__VERSION) || SPQR__VERSION < SUITESPARSE__VERCODE(4,3,4) +#error "This library requires SPQR 4.3.4 or later" #endif #include "umfpack.h" -#if !defined (UMFPACK__VERSION) || UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,3) -#error "This library requires UMFPACK 6.3.3 or later" +#if !defined (UMFPACK__VERSION) || UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,4) +#error "This library requires UMFPACK 6.3.4 or later" #endif // SuiteSparse include files for C++: @@ -103,14 +103,16 @@ #include "SuiteSparseQR.hpp" #include "Mongoose.hpp" - #if !defined (Mongoose__VERSION) || Mongoose__VERSION < SUITESPARSE__VERCODE(3,3,3) - #error "This library requires Mongoose 3.3.3 or later" + #if !defined (Mongoose__VERSION) || Mongoose__VERSION < SUITESPARSE__VERCODE(3,3,4) + #error "This library requires Mongoose 3.3.4 or later" #endif #endif // OpenMP include file: +#ifdef _OPENMP #include +#endif // GMP and MPFR #include diff --git a/GraphBLAS/CMakeLists.txt b/GraphBLAS/CMakeLists.txt index 8229506f9d..dd146ad193 100644 --- a/GraphBLAS/CMakeLists.txt +++ b/GraphBLAS/CMakeLists.txt @@ -42,7 +42,7 @@ endif ( ) # CUDA is under development for now, and not deployed in production: set ( GRAPHBLAS_USE_CUDA OFF ) -# set ( GRAPHBLAS_USE_CUDA ON ) +# set ( GRAPHBLAS_USE_CUDA ON ) # FIXME: use this for CUDA development include ( SuiteSparsePolicy ) @@ -207,17 +207,35 @@ configure_file ( "Config/README.md.in" # include directories for both graphblas and the demos #------------------------------------------------------------------------------- -if ( GRAPHBLAS_COMPACT ) - # do not compile the FactoryKernels - include_directories ( Source/Template Source Include Source/Shared - Config xxHash Config lz4 zstd zstd/zstd_subset JITpackage - Source/Factories Demo/Include rmm_wrap Source/JitKernels ) -else ( ) - include_directories ( Source/Template Source Include Source/Shared - Config xxHash Config lz4 zstd zstd/zstd_subset JITpackage - Source/FactoryKernels - Source/Factories Demo/Include rmm_wrap Source/JitKernels ) -endif ( ) +include_directories ( ${PROJECT_SOURCE_DIR} Source Include Config + xxHash lz4 zstd zstd/zstd_subset JITpackage Demo/Include rmm_wrap + # include all Source/* folders that have include/ or template/ subfolders: + Source/apply + Source/assign + Source/builder + Source/builtin + Source/callback + Source/concat + Source/convert + Source/ewise + Source/hyper + Source/jit_kernels + Source/math + Source/memory + Source/monoid + Source/mxm + Source/ok + Source/omp + Source/print + Source/reduce + Source/select + Source/split + Source/slice + Source/transpose + Source/type + Source/wait + Source/werk + ) #------------------------------------------------------------------------------- # compiler options @@ -229,50 +247,29 @@ include ( GraphBLAS_compiler_options ) # dynamic graphblas library properties #------------------------------------------------------------------------------- -# Notes from Sebastien Villemot (sebastien@debian.org): -# SOVERSION policy: if a binary compiled against the old version of the shared -# library needs recompiling in order to work with the new version, then a -# SO_VERSION increase # is needed. Otherwise not. Examples of the changes that -# require a SO_VERSION increase: -# -# - a public function or static variable is removed -# - the prototype of a public function changes -# - the integer value attached to a public #define or enum changes -# - the fields of a public structure are modified -# -# Examples of changes that do not require a SO_VERSION increase: -# -# - a new public function or static variable is added -# - a private function or static variable is removed or modified -# - changes in the internals of a structure that is opaque to the calling -# program (i.e. is only a pointer manipulated through public functions of -# the library) -# - a public enum is extended (by adding a new item at the end, but without -# changing the already existing items) +file ( GLOB GRAPHBLAS_SOURCES "PreJIT/*.c" "Config/*.c" "Source/*/*.c" ) + +if ( NOT GRAPHBLAS_COMPACT ) + # compile the FactoryKernels + file ( GLOB GRAPHBLAS_FACTORYKERNELS "FactoryKernels/*.c" ) + list ( APPEND GRAPHBLAS_SOURCES ${GRAPHBLAS_FACTORYKERNELS} ) +endif ( ) if ( GRAPHBLAS_USE_JIT ) - # generate compressed JIT sources + # generate compressed JIT sources to create GB_JITpackage.c + message ( STATUS "Creating the GraphBLAS/JITpackage:" ) add_subdirectory ( JITpackage ) - if ( GRAPHBLAS_COMPACT ) - # with the JIT; but do not compile the FactoryKernels - file ( GLOB GRAPHBLAS_SOURCES "Source/*.c" "Config/*.c" "PreJIT/*.c" ) - else ( ) - # with the JIT and the FactoryKernels - file ( GLOB GRAPHBLAS_SOURCES "Source/*.c" "Config/*.c" "PreJIT/*.c" - "Source/FactoryKernels/*.c" ) - endif ( ) # GLOB does not include files that do not yet exist, so prepend # the GB_JITpackage.c file here: - list ( PREPEND GRAPHBLAS_SOURCES $ ) + list ( PREPEND GRAPHBLAS_SOURCES + $ ) else ( ) - if ( GRAPHBLAS_COMPACT ) - # no JIT, do not compile the FactoryKernels - file ( GLOB GRAPHBLAS_SOURCES "Source/*.c" "Config/*.c" "PreJIT/*.c" ) - else ( ) - # no JIT, but do compile the FactoryKernels - file ( GLOB GRAPHBLAS_SOURCES "Source/*.c" "Config/*.c" "PreJIT/*.c" - "Source/FactoryKernels/*.c" ) - endif ( ) + # create an empty GB_JITpackage.c file: + message ( STATUS "Creating an empty GraphBLAS/JITpackage (JIT disabled):" ) + configure_file ( "Config/GB_JITpackage_NJIT.c.in" + "${PROJECT_SOURCE_DIR}/JITpackage/GB_JITpackage.c" + NEWLINE_STYLE LF ) + list ( PREPEND GRAPHBLAS_SOURCES "JITpackage/GB_JITpackage.c") endif ( ) if ( BUILD_SHARED_LIBS ) @@ -412,13 +409,13 @@ if ( NOT NO_LIBM ) endif ( ) # libdl -if ( NOT WIN32 ) +if ( NOT "${CMAKE_DL_LIBS}" STREQUAL "" ) if ( BUILD_SHARED_LIBS ) - target_link_libraries ( GraphBLAS PRIVATE dl ) + target_link_libraries ( GraphBLAS PRIVATE ${CMAKE_DL_LIBS} ) endif ( ) if ( BUILD_STATIC_LIBS ) - list ( APPEND GRAPHBLAS_STATIC_LIBS "dl" ) - target_link_libraries ( GraphBLAS_static PUBLIC dl ) + list ( APPEND GRAPHBLAS_STATIC_LIBS ${CMAKE_DL_LIBS} ) + target_link_libraries ( GraphBLAS_static PUBLIC ${CMAKE_DL_LIBS} ) endif ( ) endif ( ) @@ -522,6 +519,7 @@ if ( SUITESPARSE_DEMOS ) add_executable ( wathen_demo "Demo/Program/wathen_demo.c" ) add_executable ( context_demo "Demo/Program/context_demo.c" ) add_executable ( gauss_demo "Demo/Program/gauss_demo.c" ) + add_executable ( grow_demo "Demo/Program/grow_demo.c" ) # Libraries required for Demo programs if ( BUILD_SHARED_LIBS ) @@ -536,6 +534,7 @@ if ( SUITESPARSE_DEMOS ) target_link_libraries ( wathen_demo PUBLIC GraphBLAS ) target_link_libraries ( context_demo PUBLIC GraphBLAS ) target_link_libraries ( gauss_demo PUBLIC GraphBLAS ) + target_link_libraries ( grow_demo PUBLIC GraphBLAS ) else ( ) target_link_libraries ( openmp_demo PUBLIC GraphBLAS_static ) target_link_libraries ( openmp2_demo PUBLIC GraphBLAS_static ) @@ -548,6 +547,7 @@ if ( SUITESPARSE_DEMOS ) target_link_libraries ( wathen_demo PUBLIC GraphBLAS_static ) target_link_libraries ( context_demo PUBLIC GraphBLAS_static ) target_link_libraries ( gauss_demo PUBLIC GraphBLAS_static ) + target_link_libraries ( grow_demo PUBLIC GraphBLAS_static ) endif ( ) target_link_libraries ( openmp_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) @@ -561,6 +561,7 @@ if ( SUITESPARSE_DEMOS ) target_link_libraries ( wathen_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) target_link_libraries ( context_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) target_link_libraries ( gauss_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) + target_link_libraries ( grow_demo PUBLIC ${GB_M} ${GB_CUDA} ${GB_RMM} ) if ( GRAPHBLAS_HAS_OPENMP ) target_link_libraries ( openmp_demo PUBLIC OpenMP::OpenMP_C ) @@ -568,6 +569,7 @@ if ( SUITESPARSE_DEMOS ) target_link_libraries ( reduce_demo PUBLIC OpenMP::OpenMP_C ) target_link_libraries ( wathen_demo PUBLIC OpenMP::OpenMP_C ) target_link_libraries ( context_demo PUBLIC OpenMP::OpenMP_C ) + target_link_libraries ( grow_demo PUBLIC OpenMP::OpenMP_C ) endif ( ) else ( ) diff --git a/GraphBLAS/CUDA/CMakeLists.txt b/GraphBLAS/CUDA/CMakeLists.txt index c0c74d825d..b4bbf21a87 100644 --- a/GraphBLAS/CUDA/CMakeLists.txt +++ b/GraphBLAS/CUDA/CMakeLists.txt @@ -38,29 +38,20 @@ set_target_properties ( GraphBLAS_CUDA PROPERTIES C_STANDARD 11 C_STANDARD_REQUIRED ON ) -# find rmm_wrap, the malloc/calloc/realloc/free wrapper for the Rapids -# memory manager -set ( RMM_WRAP_INCLUDES "../rmm_wrap" ) - -message ( STATUS "RMM_WRAP_INCLUDES: ${RMM_WRAP_INCLUDES}" ) -set ( GRAPHBLAS_CUDA_INCLUDES - ${RMM_WRAP_INCLUDES} - ../Source - ../Source/Shared - ../Source/Template - ../Source/Factories - Template - ../Include - ../CUDA ) - -message ( STATUS "GraphBLAS CUDA includes: ${GRAPHBLAS_CUDA_INCLUDES}" ) - #------------------------------------------------------------------------------- # GraphBLAS_CUDA properties #------------------------------------------------------------------------------- target_include_directories ( GraphBLAS_CUDA PRIVATE - ${GRAPHBLAS_CUDA_INCLUDES}) + ${PROJECT_SOURCE_DIR} + ${PROJECT_SOURCE_DIR}/../ + include + ../Include + ../rmm_wrap + ../Source + ../Source/builtin + ) + set_target_properties ( GraphBLAS_CUDA PROPERTIES POSITION_INDEPENDENT_CODE ON ) set_target_properties ( GraphBLAS_CUDA PROPERTIES CUDA_SEPARABLE_COMPILATION ON ) # FIXME: use SUITESPARSE_CUDA_ARCHITECTURES diff --git a/GraphBLAS/CUDA/GB_cuda.hpp b/GraphBLAS/CUDA/GB_cuda.hpp index baa0bc23ee..b833105393 100644 --- a/GraphBLAS/CUDA/GB_cuda.hpp +++ b/GraphBLAS/CUDA/GB_cuda.hpp @@ -11,23 +11,14 @@ #ifndef GB_CUDA_HPP #define GB_CUDA_HPP -extern "C" -{ - #include "GB_dev.h" - #include "GB_compiler.h" - #include "GB_cpu_features.h" - #include "GB_warnings.h" -} - -#include "GraphBLAS_cuda.hpp" +#include "CUDA/include/GraphBLAS_cuda.hpp" extern "C" { #include #include #include "GB.h" - #include "GB_stringify.h" - #include "GB_iceil.h" + #include "jitifyer/GB_stringify.h" } // Finally, include the CUDA definitions @@ -40,8 +31,8 @@ extern "C" #include #include -#include "GB_cuda_error.hpp" -#include "GB_cuda_timer.hpp" +#include "CUDA/include/GB_cuda_error.hpp" +#include "CUDA/include/GB_cuda_timer.hpp" //------------------------------------------------------------------------------ // prefetch and memadvise diff --git a/GraphBLAS/CUDA/GB_cuda_AxB.hpp b/GraphBLAS/CUDA/GB_cuda_AxB.hpp index 19a319777e..12737d882e 100644 --- a/GraphBLAS/CUDA/GB_cuda_AxB.hpp +++ b/GraphBLAS/CUDA/GB_cuda_AxB.hpp @@ -11,7 +11,6 @@ #define GB_CUDA_AXB_H #include "GB_cuda.hpp" -#include "GB_hash.h" GrB_Info GB_cuda_AxB_dot3_jit ( diff --git a/GraphBLAS/CUDA/GB_cuda_apply.hpp b/GraphBLAS/CUDA/GB_cuda_apply.hpp new file mode 100644 index 0000000000..d7fa101dcf --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_apply.hpp @@ -0,0 +1,61 @@ +//------------------------------------------------------------------------------ +// GB_cuda_apply.hpp: CPU definitions for CUDA apply operations +//------------------------------------------------------------------------------ + +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#ifndef GB_CUDA_APPLY_H +#define GB_CUDA_APPLY_H + +#include "GB_cuda.hpp" + +GrB_Info GB_cuda_apply_unop_jit +( + // output: + GB_void *Cx, + // input: + const GrB_Type ctype, + const GB_Operator op, + const bool flipij, + const GrB_Matrix A, + const GB_void *ythunk, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) ; + +GrB_Info GB_cuda_apply_bind1st_jit +( + // output: + GB_void *Cx, + // input: + const GrB_Type ctype, + const GrB_BinaryOp op, + const GrB_Matrix A, + const GB_void *xscalar, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) ; + +GrB_Info GB_cuda_apply_bind2nd_jit +( + // output: + GB_void *Cx, + // input: + const GrB_Type ctype, + const GrB_BinaryOp op, + const GrB_Matrix A, + const GB_void *xscalar, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) ; + +#endif + diff --git a/GraphBLAS/CUDA/GB_cuda_apply_bind1st_jit.cpp b/GraphBLAS/CUDA/GB_cuda_apply_bind1st_jit.cpp new file mode 100644 index 0000000000..977a1919c6 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_apply_bind1st_jit.cpp @@ -0,0 +1,53 @@ +#include "GB_cuda_apply.hpp" + +extern "C" +{ + typedef GB_JIT_CUDA_KERNEL_APPLY_BIND1ST_PROTO ((*GB_jit_dl_function)) ; +} + + +GrB_Info GB_cuda_apply_bind1st_jit +( + // output: + GB_void *Cx, + // input: + const GrB_Type ctype, + const GrB_BinaryOp op, + const GrB_Matrix A, + const GB_void *scalarx, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) +{ + //-------------------------------------------------------------------------- + // encodify the problem + //-------------------------------------------------------------------------- + + GB_jit_encoding encoding ; + char *suffix ; + uint64_t hash = GB_encodify_ewise (&encoding, &suffix, + GB_JIT_CUDA_KERNEL_APPLYBIND1, false, false, false, GxB_FULL, ctype, + NULL, false, false, op, false, NULL, A) ; + + //-------------------------------------------------------------------------- + // get the kernel function pointer, loading or compiling it if needed + //-------------------------------------------------------------------------- + + void *dl_function ; + GrB_Info info = GB_jitifyer_load (&dl_function, + GB_jit_ewise_family, "cuda_apply_bind1st", + hash, &encoding, suffix, NULL, NULL, + (GB_Operator) op, ctype, NULL, A->type) ; + if (info != GrB_SUCCESS) { + return (info) ; + } + + //-------------------------------------------------------------------------- + // call the jit kernel and return result + //-------------------------------------------------------------------------- + + GB_jit_dl_function GB_jit_kernel = (GB_jit_dl_function) dl_function ; + return (GB_jit_kernel (Cx, scalarx, A, stream, gridsz, blocksz)) ; +} diff --git a/GraphBLAS/CUDA/GB_cuda_apply_bind2nd_jit.cpp b/GraphBLAS/CUDA/GB_cuda_apply_bind2nd_jit.cpp new file mode 100644 index 0000000000..fa330cbaef --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_apply_bind2nd_jit.cpp @@ -0,0 +1,53 @@ +#include "GB_cuda_apply.hpp" + +extern "C" +{ + typedef GB_JIT_CUDA_KERNEL_APPLY_BIND2ND_PROTO ((*GB_jit_dl_function)) ; +} + + +GrB_Info GB_cuda_apply_bind2nd_jit +( + // output: + GB_void *Cx, + // input: + const GrB_Type ctype, + const GrB_BinaryOp op, + const GrB_Matrix A, + const GB_void *scalarx, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) +{ + //-------------------------------------------------------------------------- + // encodify the problem + //-------------------------------------------------------------------------- + + GB_jit_encoding encoding ; + char *suffix ; + uint64_t hash = GB_encodify_ewise (&encoding, &suffix, + GB_JIT_CUDA_KERNEL_APPLYBIND2, false, false, false, GxB_FULL, ctype, + NULL, false, false, op, false, A, NULL) ; + + //-------------------------------------------------------------------------- + // get the kernel function pointer, loading or compiling it if needed + //-------------------------------------------------------------------------- + + void *dl_function ; + GrB_Info info = GB_jitifyer_load (&dl_function, + GB_jit_ewise_family, "cuda_apply_bind2nd", + hash, &encoding, suffix, NULL, NULL, + (GB_Operator) op, ctype, A->type, NULL) ; + if (info != GrB_SUCCESS){ + return (info) ; + } + + //-------------------------------------------------------------------------- + // call the jit kernel and return result + //-------------------------------------------------------------------------- + + GB_jit_dl_function GB_jit_kernel = (GB_jit_dl_function) dl_function ; + return (GB_jit_kernel (Cx, A, scalarx, stream, gridsz, blocksz)) ; +} diff --git a/GraphBLAS/CUDA/GB_cuda_apply_binop.cpp b/GraphBLAS/CUDA/GB_cuda_apply_binop.cpp new file mode 100644 index 0000000000..7fea1ccae0 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_apply_binop.cpp @@ -0,0 +1,74 @@ +#include "GB_cuda_apply.hpp" + +#undef GB_FREE_WORKSPACE +#define GB_FREE_WORKSPACE \ +{ \ + GB_FREE_WORK (&scalarx_cuda, scalarx_cuda_size) ; \ +} + +#undef GB_FREE_ALL +#define GB_FREE_ALL ; + +#define BLOCK_SIZE 512 +#define LOG2_BLOCK_SIZE 9 + +GrB_Info GB_cuda_apply_binop +( + GB_void *Cx, + const GrB_Type ctype, + const GrB_BinaryOp op, + const GrB_Matrix A, + const GB_void *scalarx, + const bool bind1st +) +{ + ASSERT (scalarx != NULL) ; + // make a copy of scalarx to ensure it's not on the CPU stack + GB_void *scalarx_cuda = NULL ; + size_t scalarx_cuda_size = 0 ; + if (bind1st) + { + ASSERT (op->xtype != NULL) ; + scalarx_cuda = GB_MALLOC_WORK (op->xtype->size, GB_void, &scalarx_cuda_size) ; + } + else + { + ASSERT (op->ytype != NULL) ; + scalarx_cuda = GB_MALLOC_WORK (op->ytype->size, GB_void, &scalarx_cuda_size) ; + } + if (scalarx_cuda == NULL) + { + return (GrB_OUT_OF_MEMORY) ; + } + memcpy (scalarx_cuda, scalarx, scalarx_cuda_size) ; + + // FIXME: use the stream pool + cudaStream_t stream ; + CUDA_OK (cudaStreamCreate (&stream)) ; + + GrB_Index anz = GB_nnz_held (A) ; + + int32_t number_of_sms = GB_Global_gpu_sm_get (0) ; + int64_t raw_gridsz = GB_ICEIL (anz, BLOCK_SIZE) ; + // cap #of blocks to 256 * #of sms + int32_t gridsz = std::min (raw_gridsz, (int64_t) (number_of_sms * 256)) ; + + GrB_Info info ; + if (bind1st) { + info = GB_cuda_apply_bind1st_jit (Cx, ctype, op, A, + scalarx_cuda, stream, gridsz, BLOCK_SIZE) ; + } else { + info = GB_cuda_apply_bind2nd_jit (Cx, ctype, op, A, + scalarx_cuda, stream, gridsz, BLOCK_SIZE) ; + } + + if (info == GrB_NO_VALUE) info = GrB_PANIC ; + GB_OK (info) ; + + CUDA_OK (cudaStreamSynchronize (stream)) ; + CUDA_OK (cudaStreamDestroy (stream)) ; + + GB_FREE_WORKSPACE ; + return GrB_SUCCESS ; + +} diff --git a/GraphBLAS/CUDA/GB_cuda_apply_binop_branch.cpp b/GraphBLAS/CUDA/GB_cuda_apply_binop_branch.cpp new file mode 100644 index 0000000000..874eaf0f17 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_apply_binop_branch.cpp @@ -0,0 +1,39 @@ +#include "GB_cuda.hpp" + +bool GB_cuda_apply_binop_branch +( + const GrB_Type ctype, + const GrB_BinaryOp op, + const GrB_Matrix A +) +{ + if (op == NULL) + { + return false ; + } + + if (A->static_header) + { + return false ; + } + + bool ok = GB_cuda_type_branch (ctype) && GB_cuda_type_branch (A->type) ; + + if (op->xtype != NULL) + { + ok = ok && GB_cuda_type_branch (op->xtype) ; + } + if (op->ytype != NULL) + { + ok = ok && GB_cuda_type_branch (op->ytype) ; + } + if (op->ztype != NULL) + { + ok = ok && GB_cuda_type_branch (op->ztype) ; + } + + ok = ok && (op->hash != UINT64_MAX) ; + + return (ok) ; +} + diff --git a/GraphBLAS/CUDA/GB_cuda_apply_unop.cpp b/GraphBLAS/CUDA/GB_cuda_apply_unop.cpp new file mode 100644 index 0000000000..60f449aa52 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_apply_unop.cpp @@ -0,0 +1,63 @@ +#include "GB_cuda_apply.hpp" + +#undef GB_FREE_WORKSPACE +#define GB_FREE_WORKSPACE \ +{ \ + GB_FREE_WORK (&ythunk_cuda, ythunk_cuda_size) ; \ +} + +#undef GB_FREE_ALL +#define GB_FREE_ALL ; + +#define BLOCK_SIZE 512 +#define LOG2_BLOCK_SIZE 9 + +GrB_Info GB_cuda_apply_unop +( + GB_void *Cx, + const GrB_Type ctype, + const GB_Operator op, + const bool flipij, + const GrB_Matrix A, + const GB_void *ythunk +) +{ + + GB_void *ythunk_cuda = NULL ; + size_t ythunk_cuda_size = 0 ; + if (ythunk != NULL && op != NULL && op->ytype != NULL) + { + // make a copy of ythunk, since ythunk might be allocated on + // the CPU stack and thus not accessible to the CUDA kernel. + ythunk_cuda = GB_MALLOC_WORK (op->ytype->size, GB_void, &ythunk_cuda_size) ; + if (ythunk_cuda == NULL) + { + return (GrB_OUT_OF_MEMORY) ; + } + memcpy (ythunk_cuda, ythunk, op->ytype->size) ; + } + + // FIXME: use the stream pool + cudaStream_t stream ; + CUDA_OK (cudaStreamCreate (&stream)) ; + + GrB_Index anz = GB_nnz_held (A) ; + + int32_t number_of_sms = GB_Global_gpu_sm_get (0) ; + int64_t raw_gridsz = GB_ICEIL (anz, BLOCK_SIZE) ; + // cap #of blocks to 256 * #of sms + int32_t gridsz = std::min (raw_gridsz, (int64_t) (number_of_sms * 256)) ; + + GrB_Info info = GB_cuda_apply_unop_jit (Cx, ctype, op, flipij, A, + ythunk_cuda, stream, gridsz, BLOCK_SIZE) ; + + if (info == GrB_NO_VALUE) info = GrB_PANIC ; + GB_OK (info) ; + + CUDA_OK (cudaStreamSynchronize (stream)) ; + CUDA_OK (cudaStreamDestroy (stream)) ; + + GB_FREE_WORKSPACE ; + return GrB_SUCCESS ; + +} diff --git a/GraphBLAS/CUDA/GB_cuda_apply_unop_branch.cpp b/GraphBLAS/CUDA/GB_cuda_apply_unop_branch.cpp new file mode 100644 index 0000000000..f9b1267073 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_apply_unop_branch.cpp @@ -0,0 +1,38 @@ +#include "GB_cuda.hpp" + +bool GB_cuda_apply_unop_branch +( + const GrB_Type ctype, + const GrB_Matrix A, + const GB_Operator op +) +{ + if (op == NULL) + { + return false ; + } + + if (A->static_header) + { + return false ; + } + + bool ok = (GB_cuda_type_branch (ctype) && GB_cuda_type_branch (A->type)) ; + + if (op->xtype != NULL) + { + ok = ok && (GB_cuda_type_branch (op->xtype)) ; + } + if (op->ytype != NULL) + { + ok = ok && (GB_cuda_type_branch (op->ytype)) ; + } + if (op->ztype != NULL) + { + ok = ok && (GB_cuda_type_branch (op->ztype)) ; + } + + ok = ok && (op->hash != UINT64_MAX) ; + + return ok ; +} \ No newline at end of file diff --git a/GraphBLAS/CUDA/GB_cuda_apply_unop_jit.cpp b/GraphBLAS/CUDA/GB_cuda_apply_unop_jit.cpp new file mode 100644 index 0000000000..8817d8e275 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_apply_unop_jit.cpp @@ -0,0 +1,51 @@ +#include "GB_cuda_apply.hpp" + +extern "C" +{ + typedef GB_JIT_CUDA_KERNEL_APPLY_UNOP_PROTO ((*GB_jit_dl_function)) ; +} + + +GrB_Info GB_cuda_apply_unop_jit +( + // output: + GB_void *Cx, + // input: + const GrB_Type ctype, + const GB_Operator op, + const bool flipij, + const GrB_Matrix A, + const GB_void *ythunk, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) +{ + //-------------------------------------------------------------------------- + // encodify the problem + //-------------------------------------------------------------------------- + + GB_jit_encoding encoding ; + char *suffix ; + uint64_t hash = GB_encodify_apply (&encoding, &suffix, + GB_JIT_CUDA_KERNEL_APPLYUNOP, GxB_FULL, false, ctype, op, flipij, A) ; + + //-------------------------------------------------------------------------- + // get the kernel function pointer, loading or compiling it if needed + //-------------------------------------------------------------------------- + + void *dl_function ; + GrB_Info info = GB_jitifyer_load (&dl_function, + GB_jit_apply_family, "cuda_apply_unop", + hash, &encoding, suffix, NULL, NULL, + op, ctype, A->type, NULL) ; + if (info != GrB_SUCCESS) return (info) ; + + //-------------------------------------------------------------------------- + // call the jit kernel and return result + //-------------------------------------------------------------------------- + + GB_jit_dl_function GB_jit_kernel = (GB_jit_dl_function) dl_function ; + return (GB_jit_kernel (Cx, A, ythunk, stream, gridsz, blocksz)) ; +} \ No newline at end of file diff --git a/GraphBLAS/CUDA/GB_cuda_colscale.cpp b/GraphBLAS/CUDA/GB_cuda_colscale.cpp new file mode 100644 index 0000000000..c9e561e5b7 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_colscale.cpp @@ -0,0 +1,40 @@ +#include "GB_cuda_ewise.hpp" + +#undef GB_FREE_WORKSPACE +#define GB_FREE_WORKSPACE ; + +#undef GB_FREE_ALL +#define GB_FREE_ALL ; + +#define BLOCK_SIZE 128 +#define LOG2_BLOCK_SIZE 7 + +GrB_Info GB_cuda_colscale +( + GrB_Matrix C, + const GrB_Matrix A, + const GrB_Matrix D, + const GrB_Semiring semiring, + const bool flipxy +) +{ + // FIXME: use the stream pool + cudaStream_t stream ; + CUDA_OK (cudaStreamCreate (&stream)) ; + + // compute gridsz, blocksz, call GB_cuda_rowscale_jit + GrB_Index anz = GB_nnz_held (A) ; + + int32_t gridsz = 1 + (anz >> LOG2_BLOCK_SIZE) ; + + GrB_Info info = GB_cuda_colscale_jit ( C, A, D, + semiring->multiply, flipxy, stream, gridsz, BLOCK_SIZE) ; + + if (info == GrB_NO_VALUE) info = GrB_PANIC ; + GB_OK (info) ; + + CUDA_OK (cudaStreamSynchronize (stream)) ; + CUDA_OK (cudaStreamDestroy (stream)) ; + return GrB_SUCCESS ; + +} diff --git a/GraphBLAS/CUDA/GB_cuda_colscale_branch.cpp b/GraphBLAS/CUDA/GB_cuda_colscale_branch.cpp new file mode 100644 index 0000000000..5c6c4ccd9b --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_colscale_branch.cpp @@ -0,0 +1,27 @@ +#include "GB_cuda.hpp" + +bool GB_cuda_colscale_branch +( + const GrB_Matrix A, + const GrB_Matrix D, + const GrB_Semiring semiring, + const bool flipxy +) +{ + if (A->static_header) + { + return false ; + } + if (D->static_header) + { + return false ; + } + + if (!GB_cuda_type_branch (A->type) || + !GB_cuda_type_branch (D->type) || + !GB_cuda_type_branch (semiring->multiply->ztype)) + { + return false; + } + return true; +} diff --git a/GraphBLAS/CUDA/GB_cuda_colscale_jit.cpp b/GraphBLAS/CUDA/GB_cuda_colscale_jit.cpp new file mode 100644 index 0000000000..ea32ca4525 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_colscale_jit.cpp @@ -0,0 +1,52 @@ +#include "GB_cuda_ewise.hpp" + +extern "C" +{ + typedef GB_JIT_CUDA_KERNEL_COLSCALE_PROTO ((*GB_jit_dl_function)) ; +} + +GrB_Info GB_cuda_colscale_jit +( + // output: + GrB_Matrix C, + // input: + GrB_Matrix A, + GrB_Matrix D, + GrB_BinaryOp binaryop, + bool flipxy, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) +{ + + //-------------------------------------------------------------------------- + // encodify the problem + //-------------------------------------------------------------------------- + + GB_jit_encoding encoding ; + char *suffix ; + uint64_t hash = GB_encodify_ewise (&encoding, &suffix, + GB_JIT_CUDA_KERNEL_COLSCALE, false, + false, false, GB_sparsity (C), C->type, NULL, false, false, + binaryop, flipxy, A, D) ; + + //-------------------------------------------------------------------------- + // get the kernel function pointer, loading or compiling it if needed + //-------------------------------------------------------------------------- + + void *dl_function ; + GrB_Info info = GB_jitifyer_load (&dl_function, + GB_jit_ewise_family, "cuda_colscale", + hash, &encoding, suffix, NULL, NULL, + (GB_Operator) binaryop, C->type, A->type, D->type) ; + if (info != GrB_SUCCESS) return (info) ; + + //-------------------------------------------------------------------------- + // call the jit kernel and return result + //-------------------------------------------------------------------------- + + GB_jit_dl_function GB_jit_kernel = (GB_jit_dl_function) dl_function ; + return (GB_jit_kernel (C, A, D, stream, gridsz, blocksz)) ; +} diff --git a/GraphBLAS/CUDA/GB_cuda_ewise.hpp b/GraphBLAS/CUDA/GB_cuda_ewise.hpp new file mode 100644 index 0000000000..533fbfeca5 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_ewise.hpp @@ -0,0 +1,45 @@ +//------------------------------------------------------------------------------ +// GB_cuda_ewise.hpp: CPU definitions for CUDA ewise operations +//------------------------------------------------------------------------------ + +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#ifndef GB_CUDA_EWISE_H +#define GB_CUDA_EWISE_H + +#include "GB_cuda.hpp" + +GrB_Info GB_cuda_rowscale_jit +( + // output: + GrB_Matrix C, + // input: + GrB_Matrix D, + GrB_Matrix B, + GrB_BinaryOp binaryop, + bool flipxy, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) ; + +GrB_Info GB_cuda_colscale_jit +( + // output: + GrB_Matrix C, + // input: + GrB_Matrix A, + GrB_Matrix D, + GrB_BinaryOp binaryop, + bool flipxy, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) ; + +#endif + diff --git a/GraphBLAS/CUDA/GB_cuda_reduce_to_scalar.cpp b/GraphBLAS/CUDA/GB_cuda_reduce_to_scalar.cpp index e1da05383c..cbf7868a27 100644 --- a/GraphBLAS/CUDA/GB_cuda_reduce_to_scalar.cpp +++ b/GraphBLAS/CUDA/GB_cuda_reduce_to_scalar.cpp @@ -60,21 +60,20 @@ GrB_Info GB_cuda_reduce_to_scalar // determine problem characteristics and allocate worksbace //-------------------------------------------------------------------------- - int threads_per_block = 320 ; - int work_per_thread = 256; -// int number_of_sms = GB_Global_gpu_sm_get (0) ; + int blocksz = 320 ; // # threads in each block + int work_per_thread = 256 ; // work each thread does in a single block + int number_of_sms = GB_Global_gpu_sm_get (0) ; GrB_Type ztype = monoid->op->ztype ; size_t zsize = ztype->size ; // determine kernel launch geometry int64_t anvals = GB_nnz_held (A) ; - int blocksz = threads_per_block ; - int gridsz = - // FIXME: this is a lot of blocks. Use a smaller number (cap at, - // say, 64K), to simplify the non-atomic reductions - (anvals + work_per_thread*threads_per_block - 1) / - (work_per_thread*threads_per_block) ; + int64_t work_per_block = work_per_thread*blocksz ; + // gridsz = ceil (anvals / work_per_block) + int64_t raw_gridsz = GB_ICEIL (anvals, work_per_block) ; + raw_gridsz = std::min (raw_gridsz, (int64_t) (number_of_sms * 256)) ; + int gridsz = (int) raw_gridsz ; // FIXME: GB_enumify_reduce is called twice: here (to get has_cheeseburger) // and in GB_cuda_reduce_to_scalar_jit. Can we just call it once? One diff --git a/GraphBLAS/CUDA/GB_cuda_rowscale.cpp b/GraphBLAS/CUDA/GB_cuda_rowscale.cpp new file mode 100644 index 0000000000..3951bd1491 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_rowscale.cpp @@ -0,0 +1,40 @@ +#include "GB_cuda_ewise.hpp" + +#undef GB_FREE_WORKSPACE +#define GB_FREE_WORKSPACE ; + +#undef GB_FREE_ALL +#define GB_FREE_ALL ; + +#define BLOCK_SIZE 128 +#define LOG2_BLOCK_SIZE 7 + +GrB_Info GB_cuda_rowscale +( + GrB_Matrix C, + const GrB_Matrix D, + const GrB_Matrix B, + const GrB_Semiring semiring, + const bool flipxy +) +{ + // FIXME: use the stream pool + cudaStream_t stream ; + CUDA_OK (cudaStreamCreate (&stream)) ; + + // compute gridsz, blocksz, call GB_cuda_rowscale_jit + GrB_Index bnz = GB_nnz_held (B) ; + + int32_t gridsz = 1 + (bnz >> LOG2_BLOCK_SIZE) ; + + GrB_Info info = GB_cuda_rowscale_jit ( C, D, B, + semiring->multiply, flipxy, stream, gridsz, BLOCK_SIZE) ; + + if (info == GrB_NO_VALUE) info = GrB_PANIC ; + GB_OK (info) ; + + CUDA_OK (cudaStreamSynchronize (stream)) ; + CUDA_OK (cudaStreamDestroy (stream)) ; + return GrB_SUCCESS ; + +} diff --git a/GraphBLAS/CUDA/GB_cuda_rowscale_branch.cpp b/GraphBLAS/CUDA/GB_cuda_rowscale_branch.cpp new file mode 100644 index 0000000000..85aadc6c17 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_rowscale_branch.cpp @@ -0,0 +1,27 @@ +#include "GB_cuda.hpp" + +bool GB_cuda_rowscale_branch +( + const GrB_Matrix D, + const GrB_Matrix B, + const GrB_Semiring semiring, + const bool flipxy +) +{ + if (D->static_header) + { + return false ; + } + if (B->static_header) + { + return false ; + } + + if (!GB_cuda_type_branch (D->type) || + !GB_cuda_type_branch (B->type) || + !GB_cuda_type_branch (semiring->multiply->ztype)) + { + return false; + } + return true; +} diff --git a/GraphBLAS/CUDA/GB_cuda_rowscale_jit.cpp b/GraphBLAS/CUDA/GB_cuda_rowscale_jit.cpp new file mode 100644 index 0000000000..abb8fd9b3a --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_rowscale_jit.cpp @@ -0,0 +1,52 @@ +#include "GB_cuda_ewise.hpp" + +extern "C" +{ + typedef GB_JIT_CUDA_KERNEL_ROWSCALE_PROTO ((*GB_jit_dl_function)) ; +} + +GrB_Info GB_cuda_rowscale_jit +( + // output: + GrB_Matrix C, + // input: + GrB_Matrix D, + GrB_Matrix B, + GrB_BinaryOp binaryop, + bool flipxy, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) +{ + + //-------------------------------------------------------------------------- + // encodify the problem + //-------------------------------------------------------------------------- + + GB_jit_encoding encoding ; + char *suffix ; + uint64_t hash = GB_encodify_ewise (&encoding, &suffix, + GB_JIT_CUDA_KERNEL_ROWSCALE, false, + false, false, GB_sparsity (C), C->type, NULL, false, false, + binaryop, flipxy, D, B) ; + + //-------------------------------------------------------------------------- + // get the kernel function pointer, loading or compiling it if needed + //-------------------------------------------------------------------------- + + void *dl_function ; + GrB_Info info = GB_jitifyer_load (&dl_function, + GB_jit_ewise_family, "cuda_rowscale", + hash, &encoding, suffix, NULL, NULL, + (GB_Operator) binaryop, C->type, D->type, B->type) ; + if (info != GrB_SUCCESS) return (info) ; + + //-------------------------------------------------------------------------- + // call the jit kernel and return result + //-------------------------------------------------------------------------- + + GB_jit_dl_function GB_jit_kernel = (GB_jit_dl_function) dl_function ; + return (GB_jit_kernel (C, D, B, stream, gridsz, blocksz)) ; +} diff --git a/GraphBLAS/CUDA/GB_cuda_select.hpp b/GraphBLAS/CUDA/GB_cuda_select.hpp new file mode 100644 index 0000000000..0ab3229aff --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_select.hpp @@ -0,0 +1,41 @@ +//------------------------------------------------------------------------------ +// GB_cuda_select.hpp: CPU definitions for CUDA select operations +//------------------------------------------------------------------------------ + +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#ifndef GB_CUDA_SELECT_H +#define GB_CUDA_SELECT_H + +#include "GB_cuda.hpp" + +GrB_Info GB_cuda_select_bitmap_jit +( + // output: + int8_t *Cb, + uint64_t *cnvals, + // input: + const bool C_iso, + const GrB_Matrix A, + const bool flipij, + const GB_void *ythunk, + const GrB_IndexUnaryOp op, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) ; + +GrB_Info GB_cuda_select_sparse +( + GrB_Matrix C, + const bool C_iso, + const GrB_IndexUnaryOp op, + const bool flipij, + const GrB_Matrix A, + const GB_void *ythunk +) ; + +#endif diff --git a/GraphBLAS/CUDA/GB_cuda_select_bitmap.cpp b/GraphBLAS/CUDA/GB_cuda_select_bitmap.cpp new file mode 100644 index 0000000000..b1ab87751e --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_select_bitmap.cpp @@ -0,0 +1,78 @@ +#include "GB_cuda_select.hpp" + +#undef GB_FREE_WORKSPACE +#define GB_FREE_WORKSPACE \ +{ \ + GB_FREE_WORK (&ythunk_cuda, ythunk_cuda_size) ; \ + GB_FREE_WORK (&cnvals_cuda, cnvals_cuda_size) ; \ +} + +#undef GB_FREE_ALL +#define GB_FREE_ALL ; + +#define BLOCK_SIZE 512 +#define LOG2_BLOCK_SIZE 9 + +GrB_Info GB_cuda_select_bitmap +( + int8_t *Cb, + int64_t *cnvals, + const bool C_iso, + const GrB_Matrix A, + const bool flipij, + const GB_void *ythunk, + const GrB_IndexUnaryOp op +) +{ + ASSERT (cnvals != NULL) ; + ASSERT (Cb != NULL) ; + + GB_void *ythunk_cuda = NULL ; + size_t ythunk_cuda_size = 0 ; + if (ythunk != NULL && op != NULL && op->ytype != NULL) + { + // make a copy of ythunk, since ythunk might be allocated on + // the CPU stack and thus not accessible to the CUDA kernel. + ythunk_cuda = GB_MALLOC_WORK (op->ytype->size, GB_void, &ythunk_cuda_size) ; + if (ythunk_cuda == NULL) + { + return (GrB_OUT_OF_MEMORY) ; + } + memcpy (ythunk_cuda, ythunk, op->ytype->size) ; + } + // FIXME: use the stream pool + cudaStream_t stream ; + CUDA_OK (cudaStreamCreate (&stream)) ; + + GrB_Index anz = GB_nnz_held (A) ; + + int32_t number_of_sms = GB_Global_gpu_sm_get (0) ; + int64_t raw_gridsz = GB_ICEIL (anz, BLOCK_SIZE) ; + int32_t gridsz = std::min (raw_gridsz, (int64_t) (number_of_sms * 256)) ; + + // create a separate cnvals_result for CUDA since cnvals may be on the CPU stack + int64_t *cnvals_cuda ; + size_t cnvals_cuda_size ; + cnvals_cuda = GB_MALLOC_WORK (1, int64_t, &cnvals_cuda_size) ; + if (cnvals_cuda == NULL) + { + return (GrB_OUT_OF_MEMORY) ; + } + (*cnvals_cuda) = 0 ; + + GrB_Info info = GrB_NO_VALUE ; + info = GB_cuda_select_bitmap_jit (Cb, (uint64_t *) cnvals_cuda, C_iso, A, + flipij, ythunk_cuda, op, stream, gridsz, BLOCK_SIZE) ; + + if (info == GrB_NO_VALUE) info = GrB_PANIC ; + GB_OK (info) ; + + CUDA_OK (cudaStreamSynchronize (stream)) ; + CUDA_OK (cudaStreamDestroy (stream)) ; + + memcpy (cnvals, cnvals_cuda, sizeof(int64_t)) ; + + GB_FREE_WORKSPACE ; + return GrB_SUCCESS ; + +} diff --git a/GraphBLAS/CUDA/GB_cuda_select_bitmap_jit.cpp b/GraphBLAS/CUDA/GB_cuda_select_bitmap_jit.cpp new file mode 100644 index 0000000000..7d55d89061 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_select_bitmap_jit.cpp @@ -0,0 +1,52 @@ +#include "GB_cuda_select.hpp" + +extern "C" +{ + typedef GB_JIT_CUDA_KERNEL_SELECT_BITMAP_PROTO ((*GB_jit_dl_function)) ; +} + +GrB_Info GB_cuda_select_bitmap_jit +( + // output: + int8_t *Cb, + uint64_t *cnvals, + // input: + const bool C_iso, + const GrB_Matrix A, + const bool flipij, + const GB_void *ythunk, + const GrB_IndexUnaryOp op, + // CUDA stream and launch parameters: + cudaStream_t stream, + int32_t gridsz, + int32_t blocksz +) +{ + + //-------------------------------------------------------------------------- + // encodify the problem + //-------------------------------------------------------------------------- + + GB_jit_encoding encoding ; + char *suffix ; + uint64_t hash = GB_encodify_select (&encoding, &suffix, + GB_JIT_CUDA_KERNEL_SELECT_BITMAP, C_iso, false, op, flipij, A) ; + + //-------------------------------------------------------------------------- + // get the kernel function pointer, loading or compiling it if needed + //-------------------------------------------------------------------------- + + void *dl_function ; + GrB_Info info = GB_jitifyer_load (&dl_function, + GB_jit_select_family, "cuda_select_bitmap", + hash, &encoding, suffix, NULL, NULL, + (GB_Operator) op, A->type, NULL, NULL) ; + if (info != GrB_SUCCESS) return (info) ; + + //-------------------------------------------------------------------------- + // call the jit kernel and return result + //-------------------------------------------------------------------------- + + GB_jit_dl_function GB_jit_kernel = (GB_jit_dl_function) dl_function ; + return (GB_jit_kernel (Cb, cnvals, A, ythunk, stream, gridsz, blocksz)) ; +} diff --git a/GraphBLAS/CUDA/GB_cuda_select_branch.cpp b/GraphBLAS/CUDA/GB_cuda_select_branch.cpp new file mode 100644 index 0000000000..7e72529c77 --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_select_branch.cpp @@ -0,0 +1,39 @@ +#include "GB_cuda.hpp" + +bool GB_cuda_select_branch +( + const GrB_Matrix A, + const GrB_IndexUnaryOp op +) +{ + if (op == NULL) + { + return false ; + } + + if (A->static_header) + { + // FIXME: explain this + return false ; + } + + bool ok = (GB_cuda_type_branch (A->type)) ; + + if (op->xtype != NULL) + { + ok = ok && (GB_cuda_type_branch (op->xtype)) ; + } + if (op->ytype != NULL) + { + ok = ok && (GB_cuda_type_branch (op->ytype)) ; + } + if (op->ztype != NULL) + { + ok = ok && (GB_cuda_type_branch (op->ztype)) ; + } + + ok = ok && (op->hash != UINT64_MAX) ; + + return ok ; +} + diff --git a/GraphBLAS/CUDA/GB_cuda_select_sparse.cpp b/GraphBLAS/CUDA/GB_cuda_select_sparse.cpp new file mode 100644 index 0000000000..70261d2bcd --- /dev/null +++ b/GraphBLAS/CUDA/GB_cuda_select_sparse.cpp @@ -0,0 +1,66 @@ +#include "GB_cuda_select.hpp" + +#undef GB_FREE_WORKSPACE +#define GB_FREE_WORKSPACE \ +{ \ + GB_FREE_WORK (&ythunk_cuda, ythunk_cuda_size) ; \ +} + +#undef GB_FREE_ALL +#define GB_FREE_ALL ; + +#define BLOCK_SIZE 512 +#define LOG2_BLOCK_SIZE 9 + +GrB_Info GB_cuda_select_sparse +( + GrB_Matrix C, + const bool C_iso, + const GrB_IndexUnaryOp op, + const bool flipij, + const GrB_Matrix A, + const GB_void *ythunk +) +{ + + GB_void *ythunk_cuda = NULL ; + size_t ythunk_cuda_size = 0 ; + if (ythunk != NULL && op != NULL && op->ytype != NULL) + { + // make a copy of ythunk, since ythunk might be allocated on + // the CPU stack and thus not accessible to the CUDA kernel. + ythunk_cuda = GB_MALLOC_WORK (op->ytype->size, GB_void, &ythunk_cuda_size) ; + if (ythunk_cuda == NULL) + { + return (GrB_OUT_OF_MEMORY) ; + } + memcpy (ythunk_cuda, ythunk, op->ytype->size) ; + } + // FIXME: use the stream pool + cudaStream_t stream ; + CUDA_OK (cudaStreamCreate (&stream)) ; + + GrB_Index anz = GB_nnz_held (A) ; + + int32_t number_of_sms = GB_Global_gpu_sm_get (0) ; + int64_t raw_gridsz = GB_ICEIL (anz, BLOCK_SIZE) ; + int32_t gridsz = std::min (raw_gridsz, (int64_t) (number_of_sms * 256)) ; + + ASSERT (!(C->static_header)) ; + + GrB_Info info = GrB_NO_VALUE ; + +////////////////////////////////////////////////////////////// +// FIXME: add this: +// info = GB_cuda_select_sparse_jit (C, C_iso, A, +// flipij, ythunk_cuda, op, stream, gridsz, BLOCK_SIZE) ; +// if (info == GrB_NO_VALUE) info = GrB_PANIC ; +// GB_OK (info) ; +////////////////////////////////////////////////////////////// + + CUDA_OK (cudaStreamSynchronize (stream)) ; + CUDA_OK (cudaStreamDestroy (stream)) ; + + GB_FREE_WORKSPACE ; + return info ; +} diff --git a/GraphBLAS/CUDA/GB_cuda_type_branch.cpp b/GraphBLAS/CUDA/GB_cuda_type_branch.cpp index 1debd0eb4b..2bebebc800 100644 --- a/GraphBLAS/CUDA/GB_cuda_type_branch.cpp +++ b/GraphBLAS/CUDA/GB_cuda_type_branch.cpp @@ -8,13 +8,7 @@ //------------------------------------------------------------------------------ // The CUDA kernels require that the type sizes are 1, 2, or a multiple of 4 -// bytes. In addition, the shfl_down primitives require the type to be 32 -// bytes or less. If user-defined type has a different size, it cannot be done -// on the GPU. - -// FIXME: get the CUDA kernels to work on large types - -// All built-in types pass this rule. +// bytes. All built-in types pass this rule. #include "GB_cuda.hpp" @@ -30,6 +24,12 @@ bool GB_cuda_type_branch // return true if the type is OK on GPU return (true) ; } + if (type == GxB_FC32 || type == GxB_FC64) + { + // FIXME: complex types not yet supported in CUDA + return (false) ; + } + size_t size = type->size ; if (size == sizeof (uint8_t) || size == sizeof (uint16_t)) @@ -38,9 +38,12 @@ bool GB_cuda_type_branch // return true if the type is OK on GPU return (true) ; } - if (size % sizeof (uint32_t) == 0 && size <= 32) + if (size % sizeof (uint32_t) == 0) { - // size is 4, 16, 20, 24, 28, or 32 + // size is 4, 16, 20, 24, 28, or 32: small ztypes. + // If the size is larger than 32 bytes, it still must be a multiple of + // 4 bytes. The only difference will be warp-level reductions, which + // will use GB_cuda_shfl_down_large_ztype instead of tile.shfl_down. return (true) ; } diff --git a/GraphBLAS/CUDA/GB_cuda_upscale_identity.cpp b/GraphBLAS/CUDA/GB_cuda_upscale_identity.cpp index c034f4b4ad..df477444cb 100644 --- a/GraphBLAS/CUDA/GB_cuda_upscale_identity.cpp +++ b/GraphBLAS/CUDA/GB_cuda_upscale_identity.cpp @@ -12,10 +12,6 @@ // scaling up the 1-byte and 2-byte cases to 4-bytes. #include "GB_cuda.hpp" -extern "C" -{ - #include "GB_binop.h" -} void GB_cuda_upscale_identity ( diff --git a/GraphBLAS/CUDA/TODO.txt b/GraphBLAS/CUDA/TODO.txt index 1b4fa1620e..cfc5ea8ae8 100644 --- a/GraphBLAS/CUDA/TODO.txt +++ b/GraphBLAS/CUDA/TODO.txt @@ -1,18 +1,20 @@ TODO (Mar 2024): + GB_CUDA_FLAGS: get from GB_config.h, allow user to modify them, etc + and pass to nvcc. Also GB_CUDA_COMPILER (default to nvcc) + + complex data types set/get cuda archictures CUDA PreJIT kernels GB_cuda_matrix_advise: write it dot3: allow iso use a stream pool (from RMM) can rmm_wrap be thread safe? - # of threadblocks in reduce - reduce calls GB_enumify_reduce twice set/get which GPU(s) to use - data types > 32 bytes handling nvcc compiler errors - static device function for computing ks (acts like GB_ek_slice, - so call it GB_ek_slice_device + + Tim: + reduce calls GB_enumify_reduce twice -------------------------------------------------------------------------------- diff --git a/GraphBLAS/CUDA/Template/GB_cuda_ek_slice.cuh b/GraphBLAS/CUDA/Template/GB_cuda_ek_slice.cuh deleted file mode 100644 index 8b864a22fd..0000000000 --- a/GraphBLAS/CUDA/Template/GB_cuda_ek_slice.cuh +++ /dev/null @@ -1,192 +0,0 @@ -//------------------------------------------------------------------------------ -// GraphBLAS/CUDA/Template/GB_cuda_ek_slice.cuh -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. -// This file: Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ -// GB_cuda_ek_slice_setup -//------------------------------------------------------------------------------ - -static __device__ __inline__ int64_t GB_cuda_ek_slice_setup -( - // inputs, not modified: - const int64_t *Ap, // array of size anvec+1 - const int64_t anvec, // # of vectors in the matrix A - const int64_t anz, // # of entries in the sparse/hyper matrix A - const int64_t pfirst, // first entry in A to find k - const int64_t max_pchunk, // max # of entries in A to find k - // output: - int64_t *my_chunk_size, // size of the chunk for this threadblock - int64_t *anvec1, // anvec-1 - float *slope // slope of vectors from kfirst to klast -) -{ - - //-------------------------------------------------------------------------- - // determine the range of entryes pfirst:plast-1 for this chunk - //-------------------------------------------------------------------------- - - // The slice for each threadblock contains entries pfirst:plast-1 of A. - // The threadblock works on a chunk of entries in Ai/Ax [pfirst...plast-1]. - - ASSERT (pfirst < anz) ; - ASSERT (max_pchunk > 0) ; - int64_t plast = pfirst + max_pchunk ; - plast = GB_IMIN (plast, anz) ; - (*my_chunk_size) = plast - pfirst ; - ASSERT ((*my_chunk_size) > 0) ; - - //-------------------------------------------------------------------------- - // estimate the first and last vectors for this chunk - //-------------------------------------------------------------------------- - - // find kfirst, the first vector of the slice for this chunk. kfirst is - // the vector that owns the entry Ai [pfirst] and Ax [pfirst]. The search - // does not need to be exact, so kfirst is an estimate. - - int64_t kfirst = 0 ; - int64_t kright = anvec ; - GB_TRIM_BINARY_SEARCH (pfirst, Ap, kfirst, kright) ; - - // find klast, the last vector of the slice for this chunk. klast is the - // vector that owns the entry Ai [plast-1] and Ax [plast-1]. The search - // does not have to be exact, so klast is an estimate. - - int64_t klast = kfirst ; - kright = anvec ; - GB_TRIM_BINARY_SEARCH (plast, Ap, klast, kright) ; - - //-------------------------------------------------------------------------- - // find slope of vectors in this chunk, and return result - //-------------------------------------------------------------------------- - - // number of vectors in A for this chunk, where - // Ap [kfirst:klast-1] will be searched. - int64_t nk = klast - kfirst + 1 ; - - // slope is the estimated # of vectors in this chunk, divided by the - // chunk size. - (*slope) = ((float) nk) / ((float) (*my_chunk_size)) ; - - (*anvec1) = anvec - 1 ; - return (kfirst) ; -} - -//------------------------------------------------------------------------------ -// GB_cuda_ek_slice_entry -//------------------------------------------------------------------------------ - -// Let p = kk + pfirst, where kk ranges from 0:my_chunk_size-1, and so p ranges -// from kk:(kk+my_chunk_size-1), and where my_chunk_size is normally of size -// max_pchunk, unless this is the last chunk in the entire matrix. -// GB_cuda_ek_slice_entry computes k for this entry, so that the kth vector -// contains the entry aij with row index i = Ai [p] and value aij = Ax [p] -// (assuming that A is a sparse or hypersparse matrix held by column). That -// is, Ap [k] <= p < Ap [k+1] will hold. If A is sparse and held by column, -// then aij is in column j = k. If A is hypersparse, then aij is in column j = -// Ah [k]. - -// The method returns the index k of the vector in A that contains the pth -// entry in A, at position p = kk + pfirst. - -static __device__ __inline__ int64_t GB_cuda_ek_slice_entry -( - // inputs, not modified: - const int64_t kk, // find the k value of the kkth entry - const int64_t pfirst, // first entry in A to find k (for which kk=0) - const int64_t *Ap, // array of size anvec+1 - const int64_t anvec1, // anvec-1 - const int64_t kfirst, // estimate of first vector in the chunk - const float slope // estimate # vectors in chunk / my_chunk_size -) -{ - - // get a rough estimate of k for the kkth entry - int64_t k = kfirst + (int64_t) (slope * ((float) kk)) ; - - // The estimate of k cannot be smaller than kfirst, but it might be bigger - // than anvec-1, so ensure it is in the valid range, kfirst to anvec-1. - k = GB_IMIN (k, anvec1) ; - - // look for p in Ap, where p is in range pfirst:plast-1 - // where pfirst >= 0 and plast < anz - int64_t p = kk + pfirst ; - - // linear-time search for the k value of the pth entry - while (Ap [k+1] <= p) k++ ; - while (Ap [k ] > p) k-- ; - - // the pth entry of A is contained in the kth vector of A - ASSERT (Ap [k] <= p && p < Ap [k+1]) ; - - // return the result k - return (k) ; -} - -//------------------------------------------------------------------------------ -// GB_cuda_ek_slice -//------------------------------------------------------------------------------ - -// GB_cuda_ek_slice finds the vector k that owns each entry in the sparse or -// hypersparse matrix A, in Ai/Ax [pfirst:plast-1], where plast = min (anz, -// pfirst+max_pchunk). Returns my_chunk_size = plast - pfirst, which is the -// size of the chunk operated on by this threadblock. - -// The function GB_cuda_ek_slice behaves somewhat like GB_ek_slice used on the -// CPU. The latter is for OpenMP parallelism on the CPU only; it does not -// need to compute ks. - -static __device__ __inline__ int64_t GB_cuda_ek_slice // returns my_chunk_size -( - // inputs, not modified: - const int64_t *Ap, // array of size anvec+1 - const int64_t anvec, // # of vectors in the matrix A - const int64_t anz, // # of entries in the sparse/hyper matrix A - const int64_t pfirst, // first entry in A to find k - const int64_t max_pchunk, // max # of entries in A to find k - // output: - int64_t *ks // k value for each pfirst:plast-1 -) -{ - - //-------------------------------------------------------------------------- - // determine the chunk for this threadblock and its slope - //-------------------------------------------------------------------------- - - int64_t my_chunk_size, anvec1 ; - float slope ; - int64_t kfirst = GB_cuda_ek_slice_setup (Ap, anvec, anz, pfirst, - max_pchunk, &my_chunk_size, &anvec1, &slope) ; - - //-------------------------------------------------------------------------- - // find the kth vector that contains each entry p = pfirst:plast-1 - //-------------------------------------------------------------------------- - - for (int64_t kk = threadIdx.x ; kk < my_chunk_size ; kk += blockDim.x) - { - - //---------------------------------------------------------------------- - // determine the kth vector that contains the pth entry - //---------------------------------------------------------------------- - - int64_t k = GB_cuda_ek_slice_entry (kk, pfirst, Ap, anvec1, kfirst, - slope) ; - - //---------------------------------------------------------------------- - // save the result in ks - //---------------------------------------------------------------------- - - ks [kk] = k ; - } - - //-------------------------------------------------------------------------- - // sync all threads and return result - //-------------------------------------------------------------------------- - - this_thread_block().sync() ; - return (my_chunk_size) ; -} - diff --git a/GraphBLAS/CUDA/Template/GB_cuda_kernel.cuh b/GraphBLAS/CUDA/Template/GB_cuda_kernel.cuh deleted file mode 100644 index e37259530d..0000000000 --- a/GraphBLAS/CUDA/Template/GB_cuda_kernel.cuh +++ /dev/null @@ -1,79 +0,0 @@ -//------------------------------------------------------------------------------ -// GraphBLAS/CUDA/Template/GB_cuda_kernel.cuh: definitions for CUDA kernels -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. -// This file: Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// This file is #include'd into all device functions for CUDA JIT kernels for -// GraphBLAS. It provides a subset of GraphBLAS.h and GB.h, plus other -// definitions. It is not used on the host. - -#pragma once - -//------------------------------------------------------------------------------ -// C++ and CUDA #include files -//------------------------------------------------------------------------------ - -#include -#include -#include -#include -#include -#include -#include -using namespace cooperative_groups ; - -//------------------------------------------------------------------------------ -// CUDA kernel definitions -//------------------------------------------------------------------------------ - -#define GB_CUDA_KERNEL - -#undef ASSERT -#define ASSERT(x) - -//------------------------------------------------------------------------------ -// NVIDIA warp size -//------------------------------------------------------------------------------ - -#define WARPSIZE 32 -#define LOG2_WARPSIZE 5 - -//------------------------------------------------------------------------------ - -// for internal static inline functions -#undef GB_STATIC_INLINE -#define GB_STATIC_INLINE static __device__ __inline__ - -//------------------------------------------------------------------------------ -// subset of GraphBLAS.h -//------------------------------------------------------------------------------ - -#include "GraphBLAS_h_subset.cuh" - -//------------------------------------------------------------------------------ -// subset of GB.h -//------------------------------------------------------------------------------ - -#include "GB_h_subset.cuh" - -//------------------------------------------------------------------------------ -// final #include files -//------------------------------------------------------------------------------ - -#include "GB_cuda_error.hpp" -#include "GB_printf_kernels.h" -#include "GB_cuda_atomics.cuh" -#include "GB_hash.h" -#include "GB_hyper_hash_lookup.h" - -extern "C" -{ - #include "GB_werk.h" - #include "GB_callback.h" -} - diff --git a/GraphBLAS/CUDA/Template/GB_cuda_shfl_down.cuh b/GraphBLAS/CUDA/Template/GB_cuda_shfl_down.cuh deleted file mode 100644 index 13b5c505f0..0000000000 --- a/GraphBLAS/CUDA/Template/GB_cuda_shfl_down.cuh +++ /dev/null @@ -1,384 +0,0 @@ -//------------------------------------------------------------------------------ -// GraphBLAS/CUDA/Template/GB_cuda_shfl_down.cuh: warp-level reductions -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. -// This file: Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. -// SPDX-License-Identifier: BSD-3-Clause - -//------------------------------------------------------------------------------ - -// shfl_down is a method in the cooperative_groups namespace. It allows all -// threads in a warp (or other thread partition) to work together in a -// cooperative fashion. -// -// Suppose we have a tile that defines a single warp of 32 threads: -// -// #define tile_sz 32 -// thread_block_tile tile = -// tiled_partition (this_thread_block()) ; -// -// Suppose each thread has two scalars dest and src of type T. Then: -// -// T dest, src ; -// dest = tile.shfl_down (src, delta) ; -// -// performs the following computation for each thread i: -// -// if (i+delta < tile_sz) -// { -// dest = (the value of src on thread i+delta) -// } -// -// Where i ranges from 0 to the tile_size-1, which is the warp size of 32 (the -// size of the tile, given by tile.num_threads() and also the #define'd value -// tile_sz), minus one. If i+delta >= tile_sz for the ith thread, then nothing -// happens for that thread, and the thread is inactive. -// -// Restrictions: tile_sz must be a power of 2, and it must be 32 or less for -// tile.shfl_down(). The type T must be trivially-copyable (that is -// is_trivially_copyable::value must be true), and sizeof (T) <= 32 must -// hold (that is, the size of T must be 32 bytes or less). The 32-byte limit -// is handled by GB_cuda_shfl_down_large_ztype, which uses repeated calls to -// tile.shfl_down on 32-byte chunks. - -// FIXME for tile.shfl_down(...), delta is an int, so can it be negative? -// For the __shfl_down warp shuffle function, delta is an unsigned int. - -//------------------------------------------------------------------------------ -// GB_cuda_warp_sum_uint64: reduce a uint64_t value across a single warp -//------------------------------------------------------------------------------ - -// On input, each thread in the tile holds a single uint64_t value. On output, -// thread zero holds the sum of values from all the warps. - -__device__ __inline__ uint64_t GB_cuda_warp_sum_uint64 -( - thread_block_tile tile, - uint64_t value -) -{ - - //-------------------------------------------------------------------------- - // sum value on all threads to a single value - //-------------------------------------------------------------------------- - - #if (tile_sz == 32) - { - // this is the typical case - value += tile.shfl_down (value, 16) ; - value += tile.shfl_down (value, 8) ; - value += tile.shfl_down (value, 4) ; - value += tile.shfl_down (value, 2) ; - value += tile.shfl_down (value, 1) ; - } - #else - { - #pragma unroll - for (int i = tile_sz >> 1 ; i > 0 ; i >>= 1) - { - value += tile.shfl_down (value, i) ; - } - } - #endif - - //-------------------------------------------------------------------------- - // return result - //-------------------------------------------------------------------------- - - // Note that only thread 0 will have the full summation of all values in - // the tile. To broadcast it to all threads, use the following: - - // value = tile.shfl (value, 0) ; - - return (value) ; -} - -#if 0 - -//------------------------------------------------------------------------------ -// warp_ReduceSumPlus_uint64: for dot3_phase2 -//------------------------------------------------------------------------------ - -__inline__ __device__ uint64_t warp_ReduceSumPlus_uint64 -( - thread_block_tile tile, - uint64_t val -) -{ - // Each iteration halves the number of active threads - // Each thread adds its partial sum[i] to sum[lane+i] - for (int i = tile.num_threads() / 2; i > 0; i /= 2) - { - val += tile.shfl_down (val, i) ; - } - return val; // note: only thread 0 will return full sum -} - -//------------------------------------------------------------------------------ -// GB_warp_ReduceSumPlus_uint64_vsvs: for vsvs kernel -//------------------------------------------------------------------------------ - -__inline__ __device__ uint64_t GB_warp_ReduceSumPlus_uint64_vsvs -( - thread_block_tile g, - uint64_t val -) -{ - // Each iteration halves the number of active threads - // Each thread adds its partial sum[i] to sum[lane+i] - /* - #pragma unroll - for (int i = tile_sz >> 1; i > 0; i >>= 1) { - val += g.shfl_down( val, i); - } - */ - // assuming tile_sz is 32: - val += g.shfl_down( val, 16); - val += g.shfl_down( val, 8); - val += g.shfl_down( val, 4); - val += g.shfl_down( val, 2); - val += g.shfl_down( val, 1); - return val; // note: only thread 0 will return full sum -} - -//------------------------------------------------------------------------------ -// reduce_sum_int64: for vsdn -//------------------------------------------------------------------------------ - -// for counting zombies only (always int64_t) -__device__ int64_t reduce_sum_int64 -( - thread_block_tile g, - int64_t val -) -{ - // Each iteration halves the number of active threads - // Each thread adds its partial sum[i] to sum[lane+i] - for (int64_t i = g.num_threads() / 2; i > 0; i /= 2) - { - val += g.shfl_down(val,i) ; - } - return val; // note: only thread 0 will return full sum -} - -#endif - -//------------------------------------------------------------------------------ -// GB_cuda_shfl_down_large_ztype: shfl_down a type larger than 32 bytes -//------------------------------------------------------------------------------ - -// This returns result = tile.shfl_down (value, delta), where value has type -// GB_Z_TYPE, and sizeof (GB_Z_TYPE) > 32. - -#if ( GB_Z_SIZE > 32 ) - - // # of 32-byte chunks to hold a single GB_Z_TYPE, excluding leftover - // chunk; GB_Z_SIZE is sizeof (GB_Z_TYPE) as a hard-coded constant. - #define GB_Z_NCHUNKS ( GB_Z_SIZE / 32 ) - - // ztype_chunk is always 32 bytes in size - typedef struct { uint8_t bytes [32] ; } ztype_chunk ; - - // size of the single leftover chunk of size 0 to < 32 bytes - #define GB_Z_LEFTOVER ( GB_Z_SIZE - ( GB_Z_NCHUNKS * 32 ) ) - - #if ( GB_Z_LEFTOVER > 0 ) - // leftover chunk is not defined if GB_Z_SIZE is a multiple of 32 - typedef struct { uint8_t bytes [GB_Z_LEFTOVER] ; } ztype_leftover ; - #endif - - __device__ __inline__ void GB_cuda_shfl_down_large_ztype - ( - GB_Z_TYPE *result, - thread_block_tile tile, - GB_Z_TYPE *value, - int delta - ) - { - - // get pointers to value and result, as chunks of size 32 bytes - struct ztype_chunk *v = (struct ztype_chunk *) value ; - struct ztype_chunk *r = (struct ztype_chunk *) result ; - - // shfl_down value into result, one chunk at a time - #pragma unroll - for (int chunk = 0 ; chunk < GB_Z_NCHUNKS ; chunk++, r++, v++) - { - (*r) = tile.shfl_down (*v, delta) ; - } - - #if ( GB_Z_LEFTOVER > 0 ) - // handle the leftover chunk, if it has nonzero size - struct ztype_leftover *v_leftover = (struct ztype_leftover *) v ; - struct ztype_leftover *r_leftover = (struct ztype_leftover *) r ; - (*r_leftover) = tile.shfl_down (*v_leftover, delta) ; - #endif - } - -#endif - -//------------------------------------------------------------------------------ -// GB_cuda_warp_reduce_ztype: reduce a ztype to a scalar, on a single warp -//------------------------------------------------------------------------------ - -// FIXME: make value parameter *value, and return type void? - -__device__ __inline__ GB_Z_TYPE GB_cuda_warp_reduce_ztype -( - thread_block_tile tile, - GB_Z_TYPE value -) -{ - - #if ( GB_Z_SIZE <= 32 ) - { - - //---------------------------------------------------------------------- - // GB_Z_TYPE can done with a single shfl_down - //---------------------------------------------------------------------- - - #if ( tile_sz == 32 ) - { - // this is the typical case - GB_Z_TYPE next ; - next = tile.shfl_down (value, 16) ; - GB_ADD (value, value, next) ; - next = tile.shfl_down (value, 8) ; - GB_ADD (value, value, next) ; - next = tile.shfl_down (value, 4) ; - GB_ADD (value, value, next) ; - next = tile.shfl_down (value, 2) ; - GB_ADD (value, value, next) ; - next = tile.shfl_down (value, 1) ; - GB_ADD (value, value, next) ; - } - #else - { - - #pragma unroll - for (int i = tile_sz >> 1 ; i > 0 ; i >>= 1) - { - GB_Z_TYPE next = tile.shfl_down (value, i) ; - GB_ADD (value, value, next) ; - } - - } - #endif - } - #else - { - - //---------------------------------------------------------------------- - // sizeof (GB_Z_TYPE) is too large for a single shfl_down - //---------------------------------------------------------------------- - - #pragma unroll - for (int i = tile_sz >> 1 ; i > 0 ; i >>= 1) - { - GB_Z_TYPE next ; - GB_cuda_shfl_down_large_ztype (&next, tile, &value, i) ; - GB_ADD (value, value, next) ; - } - } - #endif - - //-------------------------------------------------------------------------- - // return result - //-------------------------------------------------------------------------- - - // Note that only thread 0 will have the full summation of all values in - // the tile. To broadcast it to all threads, use the following: - - // value = tile.shfl (value, 0) ; - - // or if the ztype is large: - // GB_cuda_shfl_down_large_ztype (&value, tile, &value, 0) ; - - return (value) ; -} - -#if 0 - -//------------------------------------------------------------------------------ -// warp_ReduceSum_dndn: for dndn kernel -//------------------------------------------------------------------------------ - -__inline__ __device__ GB_Z_TYPE warp_ReduceSum_dndn -( - thread_block_tile<32> g, - GB_Z_TYPE val -) -{ - // Each iteration halves the number of active threads - // Each thread adds its partial sum[i] to sum[lane+i] - // FIXME: only works if sizeof(GB_Z_TYPE) <= 32 bytes - // FIXME: the ANY monoid needs the cij_exists for each thread - for (int i = g.num_threads() / 2; i > 0; i /= 2) - { - GB_Z_TYPE next = g.shfl_down( val, i) ; - GB_ADD( val, val, next ); - } - return val; // note: only thread 0 will return full sum -} - -//------------------------------------------------------------------------------ -// GB_reduce_sum: for dot3 mp and spdn -//------------------------------------------------------------------------------ - -__device__ __inline__ GB_Z_TYPE GB_reduce_sum -( - thread_block_tile g, - GB_Z_TYPE val -) -{ - // Each iteration halves the number of active threads - // Each thread adds its partial sum[i] to sum[lane+i] - // Temporary GB_Z_TYPE is necessary to handle arbirary ops - // FIXME: only works if sizeof(GB_Z_TYPE) <= 32 bytes - // FIXME: the ANY monoid needs the cij_exists for each thread - #pragma unroll - for (int i = tile_sz >> 1 ; i > 0 ; i >>= 1) - { - GB_Z_TYPE next = g.shfl_down (val, i) ; - GB_ADD (val, val, next) ; - } - return val; -} - -//------------------------------------------------------------------------------ -// GB_warp_Reduce: for cuda_reduce -//------------------------------------------------------------------------------ - -__device__ __inline__ GB_Z_TYPE GB_warp_Reduce -( - thread_block_tile g, - GB_Z_TYPE val -) -{ - // Each iteration halves the number of active threads - // Each thread adds its partial val[k] to val[lane+k] - - // FIXME: doesn't work unless sizeof(GB_Z_TYPE) <= 32 bytes - -#if ( GB_Z_SIZE <= 32 ) - // assumes tile_sz is 32: - GB_Z_TYPE fold = g.shfl_down ( val, 16) ; - GB_ADD ( val, val, fold ) ; - fold = g.shfl_down ( val, 8) ; - GB_ADD ( val, val, fold ) ; - fold = g.shfl_down ( val, 4) ; - GB_ADD ( val, val, fold ) ; - fold = g.shfl_down ( val, 2) ; - GB_ADD ( val, val, fold ) ; - fold = g.shfl_down ( val, 1) ; - GB_ADD ( val, val, fold ) ; -#else - // use shared memory and do not use shfl_down? - // or use repeated calls to shfl_down, on chunks of 32 bytes each? - #error "not implemented yet" -#endif - - return (val) ; // note: only thread 0 will return full val -} -#endif diff --git a/GraphBLAS/CUDA/Template/GB_h_subset.cuh b/GraphBLAS/CUDA/Template/GB_h_subset.cuh deleted file mode 100644 index f371da6041..0000000000 --- a/GraphBLAS/CUDA/Template/GB_h_subset.cuh +++ /dev/null @@ -1,77 +0,0 @@ -//------------------------------------------------------------------------------ -// GraphBLAS/CUDA/Template/GB_h_subset.cuh: subset of GB.h -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// Note the header guard is the same as GB.h: -#ifndef GB_H -#define GB_H - -// from GB_iceil.h: -#define GB_ICEIL(a,b) (((a) + (b) - 1) / (b)) -// from GB_imin.h: -#define GB_IMAX(x,y) (((x) > (y)) ? (x) : (y)) -#define GB_IMIN(x,y) (((x) < (y)) ? (x) : (y)) -// from GB_zombie.h: -#define GB_FLIP(i) (-(i)-2) -#define GB_IS_FLIPPED(i) ((i) < 0) -#define GB_IS_ZOMBIE(i) ((i) < 0) -#define GB_IS_NOT_FLIPPED(i) ((i) >= 0) -#define GB_UNFLIP(i) (((i) < 0) ? GB_FLIP(i) : (i)) -#define GBI_UNFLIP(Ai,p,avlen) \ - ((Ai == NULL) ? ((p) % (avlen)) : GB_UNFLIP (Ai [p])) - -#include "GB_index.h" -#include "GB_partition.h" -#include "GB_pun.h" -#include "GB_opaque.h" -#include "GB_int64_mult.h" -#define GB_HAS_CMPLX_MACROS 1 -#include "GB_complex.h" -#include "GB_memory_macros.h" - -// version for the GPU, with fewer branches -#define GB_TRIM_BINARY_SEARCH(i,X,pleft,pright) \ -{ \ - /* binary search of X [pleft ... pright] for integer i */ \ - while (pleft < pright) \ - { \ - int64_t pmiddle = (pleft + pright) >> 1 ; \ - bool less = (X [pmiddle] < i) ; \ - pleft = less ? (pmiddle+1) : pleft ; \ - pright = less ? pright : pmiddle ; \ - } \ - /* binary search is narrowed down to a single item */ \ - /* or it has found the list is empty */ \ - ASSERT (pleft == pright || pleft == pright + 1) ; \ -} - -#define GB_BINARY_SEARCH(i,X,pleft,pright,found) \ -{ \ - GB_TRIM_BINARY_SEARCH (i, X, pleft, pright) ; \ - found = (pleft == pright && X [pleft] == i) ; \ -} - -#define GB_SPLIT_BINARY_SEARCH(i,X,pleft,pright,found) \ -{ \ - GB_BINARY_SEARCH (i, X, pleft, pright, found) \ - if (!found && (pleft == pright)) \ - { \ - if (i > X [pleft]) \ - { \ - pleft++ ; \ - } \ - else \ - { \ - pright++ ; \ - } \ - } \ -} - - -#endif - diff --git a/GraphBLAS/CUDA/Template/GraphBLAS_h_subset.cuh b/GraphBLAS/CUDA/Template/GraphBLAS_h_subset.cuh deleted file mode 100644 index 53085666b5..0000000000 --- a/GraphBLAS/CUDA/Template/GraphBLAS_h_subset.cuh +++ /dev/null @@ -1,135 +0,0 @@ -//------------------------------------------------------------------------------ -// GraphBLAS/CUDA/Template/GraphBLAS_h_subset.cuh: subset of GraphBLAS.h -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// Note the header gaurd is the same as GraphBLAS.h: -#ifndef GRAPHBLAS_H -#define GRAPHBLAS_H - -typedef enum -{ - - GrB_SUCCESS = 0, // all is well - - //-------------------------------------------------------------------------- - // informational codes, not an error: - //-------------------------------------------------------------------------- - - GrB_NO_VALUE = 1, // A(i,j) requested but not there - GxB_EXHAUSTED = 7089, // iterator is exhausted - - //-------------------------------------------------------------------------- - // errors: - //-------------------------------------------------------------------------- - - GrB_UNINITIALIZED_OBJECT = -1, // object has not been initialized - GrB_NULL_POINTER = -2, // input pointer is NULL - GrB_INVALID_VALUE = -3, // generic error; some value is bad - GrB_INVALID_INDEX = -4, // row or column index is out of bounds - GrB_DOMAIN_MISMATCH = -5, // object domains are not compatible - GrB_DIMENSION_MISMATCH = -6, // matrix dimensions do not match - GrB_OUTPUT_NOT_EMPTY = -7, // output matrix already has values - GrB_NOT_IMPLEMENTED = -8, // method not implemented - GrB_ALREADY_SET = -9, // field already written to - GrB_PANIC = -101, // unknown error - GrB_OUT_OF_MEMORY = -102, // out of memory - GrB_INSUFFICIENT_SPACE = -103, // output array not large enough - GrB_INVALID_OBJECT = -104, // object is corrupted - GrB_INDEX_OUT_OF_BOUNDS = -105, // row or col index out of bounds - GrB_EMPTY_OBJECT = -106 // an object does not contain a value - -} -GrB_Info ; - -#undef restrict -#undef GB_restrict -#define GB_restrict __restrict__ -#define restrict GB_restrict - -#include -#include -#include - -#undef GB_GLOBAL -#define GB_GLOBAL extern - -// GB_STR: convert the content of x into a string "x" -#define GB_XSTR(x) GB_STR(x) -#define GB_STR(x) #x - -#undef GxB_MAX_NAME_LEN -#define GxB_MAX_NAME_LEN 128 - -typedef uint64_t GrB_Index ; -typedef struct GB_Descriptor_opaque *GrB_Descriptor ; -typedef struct GB_Type_opaque *GrB_Type ; -typedef struct GB_UnaryOp_opaque *GrB_UnaryOp ; -typedef struct GB_BinaryOp_opaque *GrB_BinaryOp ; -typedef struct GB_IndexUnaryOp_opaque *GrB_IndexUnaryOp ; -typedef struct GB_Monoid_opaque *GrB_Monoid ; -typedef struct GB_Semiring_opaque *GrB_Semiring ; -typedef struct GB_Scalar_opaque *GrB_Scalar ; -typedef struct GB_Vector_opaque *GrB_Vector ; -typedef struct GB_Matrix_opaque *GrB_Matrix ; -typedef struct GB_Context_opaque *GxB_Context ; -typedef struct GB_Global_opaque *GrB_Global ; -typedef struct GB_Iterator_opaque *GxB_Iterator ; - -#define GxB_HYPERSPARSE 1 // store matrix in hypersparse form -#define GxB_SPARSE 2 // store matrix as sparse form (compressed vector) -#define GxB_BITMAP 4 // store matrix as a bitmap -#define GxB_FULL 8 // store matrix as full; all entries must be present - -typedef void (*GxB_unary_function) (void *, const void *) ; -typedef void (*GxB_binary_function) (void *, const void *, const void *) ; - -typedef bool (*GxB_select_function) // return true if A(i,j) is kept -( - GrB_Index i, // row index of A(i,j) - GrB_Index j, // column index of A(i,j) - const void *x, // value of A(i,j) - const void *thunk // optional input for select function -) ; - -typedef void (*GxB_index_unary_function) -( - void *z, // output value z, of type ztype - const void *x, // input value x of type xtype; value of v(i) or A(i,j) - GrB_Index i, // row index of A(i,j) - GrB_Index j, // column index of A(i,j), or zero for v(i) - const void *y // input scalar y -) ; - -#define GxB_GLOBAL_GPU_ID 26 - -typedef enum -{ - // for all GrB_Descriptor fields: - GxB_DEFAULT = 0, // default behavior of the method - - // for GrB_OUTP only: - GrB_REPLACE = 1, // clear the output before assigning new values to it - - // for GrB_MASK only: - GrB_COMP = 2, // use the structural complement of the input - GrB_SCMP = 2, // same as GrB_COMP (historical; use GrB_COMP instead) - GrB_STRUCTURE = 4, // use the only pattern of the mask, not its values - - // for GrB_INP0 and GrB_INP1 only: - GrB_TRAN = 3, // use the transpose of the input - - // for GxB_AxB_METHOD only: - GxB_AxB_GUSTAVSON = 1001, // gather-scatter saxpy method - GxB_AxB_DOT = 1003, // dot product - GxB_AxB_HASH = 1004, // hash-based saxpy method - GxB_AxB_SAXPY = 1005 // saxpy method (any kind) -} -GrB_Desc_Value ; - -#endif - diff --git a/GraphBLAS/CUDA/Template/GB_cuda_atomics.cuh b/GraphBLAS/CUDA/include/GB_cuda_atomics.cuh similarity index 99% rename from GraphBLAS/CUDA/Template/GB_cuda_atomics.cuh rename to GraphBLAS/CUDA/include/GB_cuda_atomics.cuh index 6152d003e9..c4655c885e 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_atomics.cuh +++ b/GraphBLAS/CUDA/include/GB_cuda_atomics.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/Template/GB_cuda_atomics.cuh: CUDA atomics for GraphBLAS +// GraphBLAS/CUDA/template/GB_cuda_atomics.cuh: CUDA atomics for GraphBLAS //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. diff --git a/GraphBLAS/CUDA/Template/GB_cuda_error.hpp b/GraphBLAS/CUDA/include/GB_cuda_error.hpp similarity index 100% rename from GraphBLAS/CUDA/Template/GB_cuda_error.hpp rename to GraphBLAS/CUDA/include/GB_cuda_error.hpp diff --git a/GraphBLAS/CUDA/include/GB_cuda_kernel.cuh b/GraphBLAS/CUDA/include/GB_cuda_kernel.cuh new file mode 100644 index 0000000000..1823a0bb6c --- /dev/null +++ b/GraphBLAS/CUDA/include/GB_cuda_kernel.cuh @@ -0,0 +1,77 @@ +//------------------------------------------------------------------------------ +// GraphBLAS/CUDA/template/GB_cuda_kernel.cuh: definitions for CUDA kernels +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// This file: Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// This file is #include'd into all device functions for CUDA JIT kernels for +// GraphBLAS. It provides a subset of GraphBLAS.h and GB.h, plus other +// definitions. It is not used on the host. + +#pragma once + +//------------------------------------------------------------------------------ +// C++ and CUDA #include files +//------------------------------------------------------------------------------ + +#include +#include +#include +#include +#include +#include +#include +using namespace cooperative_groups ; + +//------------------------------------------------------------------------------ +// CUDA kernel definitions +//------------------------------------------------------------------------------ + +#define GB_CUDA_KERNEL + +#undef ASSERT +#define ASSERT(x) + +// for internal static inline functions +#undef GB_STATIC_INLINE +#define GB_STATIC_INLINE static __device__ __inline__ + +//------------------------------------------------------------------------------ +// subset of GraphBLAS.h +//------------------------------------------------------------------------------ + +#include "GraphBLAS_cuda.hpp" + +//------------------------------------------------------------------------------ +// internal #include files +//------------------------------------------------------------------------------ + +extern "C" +{ + #include "include/GB_pun.h" + #include "include/GB_partition.h" + #include "include/GB_binary_search.h" + #include "include/GB_zombie.h" + #include "include/GB_int64_mult.h" + #include "include/GB_index.h" + #include "include/GB_hash.h" + #include "include/GB_complex.h" + #include "include/GB_iceil.h" + #include "include/GB_math_macros.h" + #include "include/GB_memory_macros.h" + #include "include/GB_printf_kernels.h" + #include "include/GB_opaque.h" + #include "include/GB_werk.h" + #include "include/GB_callback_proto.h" + #include "include/GB_saxpy3task_struct.h" + #include "include/GB_callback.h" + #include "include/GB_hyper_hash_lookup.h" +} + +#include "GB_cuda_error.hpp" +#include "GB_cuda_atomics.cuh" + diff --git a/GraphBLAS/CUDA/Template/GB_cuda_timer.hpp b/GraphBLAS/CUDA/include/GB_cuda_timer.hpp similarity index 100% rename from GraphBLAS/CUDA/Template/GB_cuda_timer.hpp rename to GraphBLAS/CUDA/include/GB_cuda_timer.hpp diff --git a/GraphBLAS/CUDA/GraphBLAS_cuda.hpp b/GraphBLAS/CUDA/include/GraphBLAS_cuda.hpp similarity index 81% rename from GraphBLAS/CUDA/GraphBLAS_cuda.hpp rename to GraphBLAS/CUDA/include/GraphBLAS_cuda.hpp index c3968e37a7..edd49b98f8 100644 --- a/GraphBLAS/CUDA/GraphBLAS_cuda.hpp +++ b/GraphBLAS/CUDA/include/GraphBLAS_cuda.hpp @@ -7,6 +7,13 @@ //------------------------------------------------------------------------------ +extern "C" +{ + #include "include/GB_dev.h" + #include "include/GB_compiler.h" + #include "include/GB_warnings.h" +} + #ifndef GXB_COMPLEX_H #define GXB_COMPLEX_H @@ -21,7 +28,9 @@ #endif -#define GB_LIBRARY +#define GB_CUDA_FOLDER #include "GraphBLAS.h" #undef I +#define restrict GB_restrict + diff --git a/GraphBLAS/CUDA/template/GB_cuda_ek_slice.cuh b/GraphBLAS/CUDA/template/GB_cuda_ek_slice.cuh new file mode 100644 index 0000000000..396f05f7ae --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_cuda_ek_slice.cuh @@ -0,0 +1,255 @@ +//------------------------------------------------------------------------------ +// GraphBLAS/CUDA/template/GB_cuda_ek_slice.cuh +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// This file: Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// The GB_cuda_ek_slice* methods provide an efficient method for the +// threadblocks to work in parallel on a single sparse or hypersparse matrix A. +// Let Ap = A->p be an array of "pointers" of size anvec+1. +// Let Ai = A->i be the array of row indices of the sparse/hypersparse matrix. +// Let Ax = A->x be the array of values of the sparse/hypersparse matrix. +// Let anz be the # of entries in the Ai and Ax arrays. +// +// Then matrix of A can be traversed as follows (suppose it is stored by col): +// +// for (k = 0 ; k < anvec ; k++) +// j = k if A is sparse, or j = Ah [k] if A is hypersparse +// for (p = Ap [k] ; p < Ap [k+1] ; p++) +// i = Ai [p] ; +// atype aij = Ax [p] ; +// the entry A(i,j) has value aij, row index i, column index j, and +// column j is the kth column in the data structure of A, +// ... +// +// However, parallelizing that loop across the GPU threadblocks is difficult. +// Instead, consider a single loop: +// +// for (p = 0 ; p < anz ; p++) +// find k so that Ap [k] <= p < Ap [k+1] +// j = k if A is sparse, or j = Ah [k] if A is hypersparse +// i = Ai [p] +// aij = Ax [p] +// ... +// +// The above loop can be easily parallelized on the GPU, and the +// GB_cuda_ek_slice* methods provide a way for each thread to find k for each +// entry at position p. The methods assume a single threadblock is given the +// task to compute iterations p = pfirst : plast=1 where plast = min (anz, +// pfirst + max_pchunk) for the loop above. +// +// First, all threads call GB_cuda_ek_slice_setup, and do two binary searches. +// This determines the slope, and gives a way to estimate the vector k that +// contains any entry p in the given range pfirst:plast-1. This estimate is +// then used in GB_cuda_ek_slice_entry to determine the k for any given p in +// that range. +// +// If the thread that computes k for a given p is also the thread that uses k, +// then there is no need for the threadblock to share that computation. +// Otherwise, the set of k values can be computed in a shared array ks, using +// the single method GB_cuda_ek_slice. + +// FIXME: discuss grid-stride loops, the pdelta loop, and the max chunk size +// here + +// question: why chunks are necessary? why not just do ek_slice_setup across all entries in one go? +// answer: the slope method is only useful for a small range of entries; non-uniform entry distributions +// can distort the usefulness of the slope (will require an exhaustive linear search) +// for a large range of entries + +//------------------------------------------------------------------------------ +// GB_cuda_ek_slice_setup +//------------------------------------------------------------------------------ + +static __device__ __inline__ int64_t GB_cuda_ek_slice_setup +( + // inputs, not modified: + const int64_t *Ap, // array of size anvec+1 + const int64_t anvec, // # of vectors in the matrix A + const int64_t anz, // # of entries in the sparse/hyper matrix A + const int64_t pfirst, // first entry in A to find k + const int64_t max_pchunk, // max # of entries in A to find k + // output: + int64_t *my_chunk_size, // size of the chunk for this threadblock + int64_t *anvec1, // anvec-1 + float *slope // slope of vectors from kfirst to klast +) +{ + + //-------------------------------------------------------------------------- + // determine the range of entries pfirst:plast-1 for this chunk + //-------------------------------------------------------------------------- + + // The slice for each threadblock contains entries pfirst:plast-1 of A. + // The threadblock works on a chunk of entries in Ai/Ax [pfirst...plast-1]. + + ASSERT (pfirst < anz) ; + ASSERT (max_pchunk > 0) ; + int64_t plast = pfirst + max_pchunk ; + plast = GB_IMIN (plast, anz) ; + (*my_chunk_size) = plast - pfirst ; + ASSERT ((*my_chunk_size) > 0) ; + + //-------------------------------------------------------------------------- + // estimate the first and last vectors for this chunk + //-------------------------------------------------------------------------- + + // find kfirst, the first vector of the slice for this chunk. kfirst is + // the vector that owns the entry Ai [pfirst] and Ax [pfirst]. The search + // does not need to be exact, so kfirst is an estimate. + + int64_t kfirst = 0 ; + int64_t kright = anvec ; + GB_TRIM_BINARY_SEARCH (pfirst, Ap, kfirst, kright) ; + + // find klast, the last vector of the slice for this chunk. klast is the + // vector that owns the entry Ai [plast-1] and Ax [plast-1]. The search + // does not have to be exact, so klast is an estimate. + + int64_t klast = kfirst ; + kright = anvec ; + GB_TRIM_BINARY_SEARCH (plast, Ap, klast, kright) ; + + //-------------------------------------------------------------------------- + // find slope of vectors in this chunk, and return result + //-------------------------------------------------------------------------- + + // number of vectors in A for this chunk, where + // Ap [kfirst:klast-1] will be searched. + int64_t nk = klast - kfirst + 1 ; + + // slope is the estimated # of vectors in this chunk, divided by the + // chunk size. + (*slope) = ((float) nk) / ((float) (*my_chunk_size)) ; + + (*anvec1) = anvec - 1 ; + return (kfirst) ; +} + +//------------------------------------------------------------------------------ +// GB_cuda_ek_slice_entry +//------------------------------------------------------------------------------ + +// Let p = pfirst + pdelta, where pdelta ranges from 0:my_chunk_size-1, and so +// p ranges from pdelta:(pdelta+my_chunk_size-1), and where my_chunk_size is +// normally of size max_pchunk, unless this is the last chunk in the entire +// matrix. GB_cuda_ek_slice_entry computes k for this entry, so that the kth +// vector contains the entry aij with row index i = Ai [p] and value aij = Ax +// [p] (assuming that A is a sparse or hypersparse matrix held by column). +// That is, Ap [k] <= p < Ap [k+1] will hold. If A is sparse and held by +// column, then aij is in column j = k. If A is hypersparse, then aij is in +// column j = Ah [k]. + +// The method returns the index k of the vector in A that contains the pth +// entry in A, at position p = pfirst + pdelta. + +static __device__ __inline__ int64_t GB_cuda_ek_slice_entry +( + // output: + int64_t *p_handle, // p = pfirst + pdelta + // inputs, not modified: + const int64_t pdelta, // find the k value of the pfirst+pdelta entry + const int64_t pfirst, // first entry in A to find k (for which + // pdelta=0) + const int64_t *Ap, // array of size anvec+1 + const int64_t anvec1, // anvec-1 + const int64_t kfirst, // estimate of first vector in the chunk + const float slope // estimate # vectors in chunk / my_chunk_size +) +{ + + // get a rough estimate of k for the pfirst + pdelta entry + int64_t k = kfirst + (int64_t) (slope * ((float) pdelta)) ; + + // The estimate of k cannot be smaller than kfirst, but it might be bigger + // than anvec-1, so ensure it is in the valid range, kfirst to anvec-1. + k = GB_IMIN (k, anvec1) ; + + // look for p in Ap, where p is in range pfirst:plast-1 + // where pfirst >= 0 and plast < anz + int64_t p = pfirst + pdelta ; + (*p_handle) = p ; + + // linear-time search for the k value of the pth entry + while (Ap [k+1] <= p) k++ ; + while (Ap [k ] > p) k-- ; + + // the pth entry of A is contained in the kth vector of A + ASSERT (Ap [k] <= p && p < Ap [k+1]) ; + + // return the result k + return (k) ; +} + +//------------------------------------------------------------------------------ +// GB_cuda_ek_slice +//------------------------------------------------------------------------------ + +// GB_cuda_ek_slice finds the vector k that owns each entry in the sparse or +// hypersparse matrix A, in Ai/Ax [pfirst:plast-1], where plast = min (anz, +// pfirst+max_pchunk). Returns my_chunk_size = plast - pfirst, which is the +// size of the chunk operated on by this threadblock. + +// The function GB_cuda_ek_slice behaves somewhat like GB_ek_slice used on the +// CPU. The latter is for OpenMP parallelism on the CPU only; it does not +// need to compute ks. + +static __device__ __inline__ int64_t GB_cuda_ek_slice // returns my_chunk_size +( + // inputs, not modified: + const int64_t *Ap, // array of size anvec+1 + const int64_t anvec, // # of vectors in the matrix A + const int64_t anz, // # of entries in the sparse/hyper matrix A + const int64_t pfirst, // first entry in A to find k + const int64_t max_pchunk, // max # of entries in A to find k + // output: + int64_t *ks // k value for each pfirst:plast-1 +) +{ + + //-------------------------------------------------------------------------- + // determine the chunk for this threadblock and its slope + //-------------------------------------------------------------------------- + + int64_t my_chunk_size, anvec1 ; + float slope ; + int64_t kfirst = GB_cuda_ek_slice_setup (Ap, anvec, anz, pfirst, + max_pchunk, &my_chunk_size, &anvec1, &slope) ; + + //-------------------------------------------------------------------------- + // find the kth vector that contains each entry p = pfirst:plast-1 + //-------------------------------------------------------------------------- + + for (int64_t pdelta = threadIdx.x ; + pdelta < my_chunk_size ; + pdelta += blockDim.x) + { + + //---------------------------------------------------------------------- + // determine the kth vector that contains the pth entry + //---------------------------------------------------------------------- + + int64_t p ; // unused, p = pfirst + pdelta + int64_t k = GB_cuda_ek_slice_entry (&p, pdelta, pfirst, Ap, anvec1, + kfirst, slope) ; + + //---------------------------------------------------------------------- + // save the result in ks + //---------------------------------------------------------------------- + + // the pth entry of the matrix is in vector k + ks [pdelta] = k ; + } + + //-------------------------------------------------------------------------- + // sync all threads and return result + //-------------------------------------------------------------------------- + + this_thread_block().sync() ; + return (my_chunk_size) ; +} + diff --git a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_dense_phase1.cuh b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_dense_phase1.cuh similarity index 81% rename from GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_dense_phase1.cuh rename to GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_dense_phase1.cuh index 4c202eeaf5..0239e706de 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_dense_phase1.cuh +++ b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_dense_phase1.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_cuda_jit_AxB_dot3_dense_phase1.cuh +// GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_dense_phase1.cuh //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -54,13 +54,7 @@ __global__ void GB_cuda_AxB_dot3_dense_phase1_kernel // determine the vector k of all entries in C(i,j), one chunk at a time //-------------------------------------------------------------------------- -#if 0 - __shared__ int64_t ks [chunk_size] ; -#endif - -// int64_t chunk_max = GB_ICEIL (mnz, chunk_size) ; -// for (int64_t chunk = blockIdx.x ; chunk < chunk_max ; chunk += gridDim.x ) - + // grid-stride loop for each threadblock: for (int64_t pfirst = blockIdx.x << log2_chunk_size ; pfirst < mnz ; pfirst += gridDim.x << log2_chunk_size) @@ -72,36 +66,24 @@ __global__ void GB_cuda_AxB_dot3_dense_phase1_kernel // This threadblock works on Mi/Mx and Ci/Cx, in positions pfirst to // pfirst + my_chunk_size - 1. - -#if 0 - int64_t my_chunk_size = GB_cuda_ek_slice (Mp, mnvec, mnz, pfirst, - chunk_size, /* output: */ ks) ; -#else int64_t my_chunk_size, mnvec1 ; float slope ; int64_t kfirst = GB_cuda_ek_slice_setup (Mp, mnvec, mnz, pfirst, chunk_size, &my_chunk_size, &mnvec1, &slope) ; -#endif //---------------------------------------------------------------------- // assign entries in C(i,j): either its vector k or its zombie status //---------------------------------------------------------------------- -// for (int64_t pM = pfirst + threadIdx.x ; -// pM < pfirst + my_chunk_size ; -// pM += blockDim.x) - - for (int64_t kk = threadIdx.x ; kk < my_chunk_size ; kk += blockDim.x) + for (int64_t pdelta = threadIdx.x ; + pdelta < my_chunk_size ; + pdelta += blockDim.x) { -#if 0 - int64_t k = ks [kk] ; // get the k value of Mi,Mx [pM]. -#else - int64_t k = GB_cuda_ek_slice_entry (kk, pfirst, Mp, mnvec1, kfirst, - slope) ; -#endif - - int64_t pM = kk + pfirst ; + // get the pM and k value of Mi,Mx [pM]: + int64_t pM ; // = pfirst + pdelta + int64_t k = GB_cuda_ek_slice_entry (&pM, pdelta, pfirst, Mp, mnvec1, + kfirst, slope) ; #if GB_MASK_STRUCT { diff --git a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase1.cuh b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase1.cuh similarity index 93% rename from GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase1.cuh rename to GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase1.cuh index 346b5de04a..b305d5ffbc 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase1.cuh +++ b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase1.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_cuda_jit_AxB_dot3_phase1.cuh +// GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase1.cuh //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -101,6 +101,8 @@ __global__ void GB_jit_AxB_dot3_phase1_kernel // int64_t *restrict Ch = C->h ; // copy of Mh int64_t *__restrict__ Ci = C->i ; // for zombies, or bucket assignment + // FIXME: use (k << 2) not (k << 4) + // Ci [p] for an entry C(i,j) contains either GB_FLIP(i) if C(i,j) is a // zombie, or (k << 4) + bucket otherwise, where C(:,j) is the kth vector // of C (j = Ch [k] if hypersparse or j = k if standard sparse), and @@ -123,12 +125,10 @@ __global__ void GB_jit_AxB_dot3_phase1_kernel // assign buckets to all entries in C(i,j), one chunk at a time //-------------------------------------------------------------------------- -#if 0 - // removing ks saves about 10% of the phase1 time - // (19.5 msec to 17.5 msec for the com-Orkut matrix) - __shared__ int64_t ks [chunk_size] ; -#endif + // FIXME: tune this loop (and all others) for GPU architectures, where # of + // threadblocks can differ on different GPUs. + // grid-stride loop for each threadblock: for (int64_t pfirst = blockIdx.x << log2_chunk_size ; pfirst < mnz ; pfirst += gridDim.x << log2_chunk_size) @@ -140,34 +140,30 @@ __global__ void GB_jit_AxB_dot3_phase1_kernel // This threadblock works on Mi/Mx and Ci/Mx, in positions pfirst to // pfirst + my_chunk_size - 1. - -#if 0 - int64_t my_chunk_size = GB_cuda_ek_slice (Mp, mnvec, mnz, pfirst, - chunk_size, /* output: */ ks) ; -#else int64_t my_chunk_size, mnvec1 ; float slope ; int64_t kfirst = GB_cuda_ek_slice_setup (Mp, mnvec, mnz, pfirst, chunk_size, &my_chunk_size, &mnvec1, &slope) ; -#endif //---------------------------------------------------------------------- // assign entries in C(i,j) to the buckets //---------------------------------------------------------------------- - for (int64_t kk = threadIdx.x ; kk < my_chunk_size ; kk += blockDim.x) + // block-stride loop for all threads in a threadblock, to do the whole + // chunk assigned to this threadblock. + for (int64_t pdelta = threadIdx.x ; + pdelta < my_chunk_size ; + pdelta += blockDim.x) { //------------------------------------------------------------------ // determine the kth vector that contains the pth entry //------------------------------------------------------------------ -#if 0 - int64_t k = ks [kk] ; // get the k value of Mi,Mx [pM] -#else - int64_t k = GB_cuda_ek_slice_entry (kk, pfirst, Mp, mnvec1, kfirst, - slope) ; -#endif + // get the pM and k value of Mi,Mx [pM] + int64_t pM ; // = pfirst + pdelta + int64_t k = GB_cuda_ek_slice_entry (&pM, pdelta, pfirst, Mp, mnvec1, + kfirst, slope) ; //------------------------------------------------------------------ // get C(i,j): zombie if A(:,i) and B(:,j) are empty or M(i,j) false @@ -177,7 +173,6 @@ __global__ void GB_jit_AxB_dot3_phase1_kernel // or j = Mh [k] if C is hypersparse GB_bucket_code bucket = GB_BUCKET_ZOMBIE ; - int64_t pM = kk + pfirst ; int64_t i = Mi [pM] ; if (GB_MCAST (Mx, pM, )) // if (M (i,j) is true): @@ -261,7 +256,7 @@ __global__ void GB_jit_AxB_dot3_phase1_kernel // encode the bucket or zombie status in the row index of C(i,j) Ci [pM] = (bucket == GB_BUCKET_ZOMBIE) * ( GB_FLIP(i) << 4) - + (bucket != GB_BUCKET_ZOMBIE) * ((k<<4) + bucket) ; + + (bucket != GB_BUCKET_ZOMBIE) * ((k << 4) + bucket) ; // each thread counts its own bucket sizes my_bucket [bucket]++ ; diff --git a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase2.cuh b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase2.cuh similarity index 97% rename from GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase2.cuh rename to GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase2.cuh index 171347573f..06eb999a86 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase2.cuh +++ b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase2.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_cuda_jit_GB_AxB_dot3_phase2.cuh +// GraphBLAS/CUDA/template/GB_cuda_jit_GB_AxB_dot3_phase2.cuh //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -140,7 +140,7 @@ __global__ void GB_cuda_AxB_dot3_phase2_kernel } this_thread_block().sync(); - s [b] = GB_cuda_warp_sum_uint64 (tile, s [b]) ; + s [b] = GB_cuda_tile_sum_uint64 (tile, s [b]) ; } if (threadIdx.x == 0) diff --git a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase2end.cuh b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase2end.cuh similarity index 98% rename from GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase2end.cuh rename to GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase2end.cuh index 6a64c7845c..cf4ea657da 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase2end.cuh +++ b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase2end.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_cuda_jit_AxB_dot3_phase2end.cuh +// GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase2end.cuh //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. diff --git a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_dndn.cuh b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_dndn.cuh similarity index 98% rename from GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_dndn.cuh rename to GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_dndn.cuh index c36f35d0cc..fe240b923f 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_dndn.cuh +++ b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_dndn.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_cuda_jit_AxB_dot3_phase3_dndn.cuh +// GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_dndn.cuh //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -185,7 +185,7 @@ __global__ void GB_cuda_AxB_dot3_phase3_dndn_kernel #if !GB_C_ISO // FIXME: the ANY monoid needs the cij_exists for each thread - cij = GB_cuda_warp_reduce_ztype (tile, cij) ; + cij = GB_cuda_tile_reduce_ztype (tile, cij) ; #endif // FIXME: if A and B are full, and GB_MASK_STRUCT is true, cij_exists diff --git a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_mp.cuh b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_mp.cuh similarity index 98% rename from GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_mp.cuh rename to GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_mp.cuh index 3fb4ead9e8..eeebf2e878 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_mp.cuh +++ b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_mp.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_cuda_jit_AxB_dot3_phase3_mp.cuh +// GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_mp.cuh //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -95,7 +95,7 @@ __global__ void GB_cuda_AxB_dot3_phase3_mp_kernel #endif // zombie count - int64_t zc = 0; + uint64_t zc = 0; // set thread ID // int tid_global = threadIdx.x+ blockDim.x* blockIdx.x; @@ -329,7 +329,7 @@ __global__ void GB_cuda_AxB_dot3_phase3_mp_kernel if (cij_exists) { // FIXME: the ANY monoid needs the cij_exists for each thread - cij = GB_cuda_warp_reduce_ztype (tile, cij) ; + cij = GB_cuda_tile_reduce_ztype (tile, cij) ; } #endif @@ -358,7 +358,7 @@ __global__ void GB_cuda_AxB_dot3_phase3_mp_kernel if( tid ==0 && zc > 0) { - GB_cuda_atomic_add ( &(C->nzombies), (uint64_t) zc) ; + GB_cuda_atomic_add ( &(C->nzombies), zc) ; } } diff --git a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_spdn.cuh b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_spdn.cuh similarity index 98% rename from GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_spdn.cuh rename to GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_spdn.cuh index c0e04e9361..0bc7092f6d 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_spdn.cuh +++ b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_spdn.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_cuda_jit_AxB_dot3_phase3_spdn.cuh +// GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_spdn.cuh //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -263,7 +263,7 @@ __global__ void GB_cuda_AxB_dot3_phase3_spdn_kernel if (cij_exists) { // FIXME: the ANY monoid needs cij_exists for each thread - cij = GB_cuda_warp_reduce_ztype (tile, cij) ; + cij = GB_cuda_tile_reduce_ztype (tile, cij) ; } #endif diff --git a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_vsdn.cuh b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_vsdn.cuh similarity index 98% rename from GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_vsdn.cuh rename to GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_vsdn.cuh index 018df8c1ae..1258e1894c 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_vsdn.cuh +++ b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_vsdn.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_cuda_jit_AxB_dot3_phase3_vsdn.cuh +// GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_vsdn.cuh //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -269,7 +269,7 @@ __global__ void GB_cuda_AxB_dot3_phase3_vsdn_kernel // sum up the zombie count: thread_block_tile tile = tiled_partition (this_thread_block ()) ; - zc += GB_cuda_warp_sum_uint64 (tile, my_nzombies) ; + zc += GB_cuda_tile_sum_uint64 (tile, my_nzombies) ; } if (threadIdx.x == 0 && zc > 0) diff --git a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_vsvs.cuh b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_vsvs.cuh similarity index 77% rename from GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_vsvs.cuh rename to GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_vsvs.cuh index edf539634d..756194c1b7 100644 --- a/GraphBLAS/CUDA/Template/GB_cuda_jit_AxB_dot3_phase3_vsvs.cuh +++ b/GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_vsvs.cuh @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_cuda_jit_AxB_dot3_phase3_vsvs.cuh +// GraphBLAS/CUDA/template/GB_cuda_jit_AxB_dot3_phase3_vsvs.cuh //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -25,50 +25,10 @@ // A <- input matrix A // B <- input matrix B -// Blocksize is 1024, uses warp and block reductions to count zombies produced. +// Blocksize is 1024, uses tile and block reductions to count zombies produced. //****************************************************************************** -//------------------------------------------------------------------------------ -// GB_block_ReduceSum_uint64 -//------------------------------------------------------------------------------ - -__inline__ __device__ uint64_t GB_block_ReduceSum_uint64 -( - thread_block g, // FIXME: g is used for thread_block_tile elsewhere; - // be consistent. - uint64_t val -) -{ - // Shared mem for 32 partial sums - static __shared__ uint64_t shared [tile_sz] ; - - // FIXME: assumes tile_sz is 32: (use an #if .. #else ... #endif) - int lane = threadIdx.x & 31 ; // % tile_sz; - int wid = threadIdx.x >> 5 ; // / tile_sz; - thread_block_tile tile = tiled_partition (g) ; - - // Each warp performs partial reduction - val = GB_cuda_warp_sum_uint64 (tile, val) ; - - // Wait for all partial reductions - if (lane == 0) - { - shared [wid] = val ; // Write reduced value to shared memory - } - - g.sync(); // Wait for all partial reductions - - // read from shared memory only if that warp existed - val = (threadIdx.x < (blockDim.x / tile_sz ) ) ? shared[lane] : 0; - - // Final reduce within first warp - if (wid == 0) - { - val = GB_cuda_warp_sum_uint64 (tile, val) ; - } - - return (val) ; -} +#include "template/GB_cuda_threadblock_sum_uint64.cuh" //------------------------------------------------------------------------------ // GB_cuda_AxB_dot3_phase3_vsvs_kernel @@ -203,11 +163,7 @@ __global__ void GB_cuda_AxB_dot3_phase3_vsvs_kernel } } - // FIXME: use this in spdn and vsdn: - this_thread_block().sync(); - - my_nzombies = GB_block_ReduceSum_uint64 (this_thread_block(), my_nzombies) ; - this_thread_block().sync(); + my_nzombies = GB_cuda_threadblock_sum_uint64 (my_nzombies) ; if( threadIdx.x == 0 && my_nzombies > 0) { diff --git a/GraphBLAS/CUDA/template/GB_cuda_threadblock_reduce_ztype.cuh b/GraphBLAS/CUDA/template/GB_cuda_threadblock_reduce_ztype.cuh new file mode 100644 index 0000000000..411929850e --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_cuda_threadblock_reduce_ztype.cuh @@ -0,0 +1,69 @@ +//------------------------------------------------------------------------------ +// GraphBLAS/CUDA/template/GB_cuda_threadblock_reduce_ztype.cuh +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// This file: Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// Reduce across an entire threadblock a single scalar of type ztype, +// using the given monoid (used in GB_cuda_tile_reduce_ztype). + +// Compare with template/GB_cuda_threadblock_sum_uint64. +// The #include'ing file must define tile_sz and log2_tile_sz. + +__inline__ __device__ GB_Z_TYPE GB_cuda_threadblock_reduce_ztype +( + GB_Z_TYPE val +) +{ + // The thread_block g that calls this method has a number of threads + // defined by the kernel launch geometry (dim3 block (blocksz)). + thread_block g = this_thread_block ( ) ; + // here, g.sync() is not needed + + // The threads in this thread block are partitioned into tiles, each with + // tile_sz threads. + thread_block_tile tile = tiled_partition (g) ; + // here, tile.sync() is implicit + + // lane: a local thread id, for all threads in a single tile, ranging from + // 0 to the size of the tile minus one. Normally the tile has size 32, but + // it could be a power of 2 less than or equal to 32. + int lane = threadIdx.x & (tile_sz-1) ; + // tile_id: is the id for a single tile, each with tile_sz threads in it. + int tile_id = threadIdx.x >> log2_tile_sz ; + + // Each tile performs partial reduction + val = GB_cuda_tile_reduce_ztype (tile, val) ; + + // shared result for partial sums of all threads in a tile: + static __shared__ GB_Z_TYPE shared [tile_sz] ; + + if (lane == 0) + { + shared [tile_id] = val ; // Write reduced value to shared memory + } + + // This g.sync() is required: + g.sync() ; // Wait for all partial reductions + + // This method requires blockDim.x <= tile_sz^2 = 1024, but this is always + // enforced in the CUDA standard since the our geometry is 1D. + + // Final reduce within first tile + if (tile_id == 0) + { + GB_DECLARE_IDENTITY_CONST (zid) ; // const GB_Z_TYPE zid = identity ; + // read from shared memory only if that tile existed + val = (threadIdx.x < (blockDim.x >> log2_tile_sz)) ? shared [lane] : zid ; + val = GB_cuda_tile_reduce_ztype (tile, val) ; + } + + // Not needed: + // g.sync() ; + return (val) ; +} + diff --git a/GraphBLAS/CUDA/template/GB_cuda_threadblock_sum_uint64.cuh b/GraphBLAS/CUDA/template/GB_cuda_threadblock_sum_uint64.cuh new file mode 100644 index 0000000000..dea65f9ac7 --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_cuda_threadblock_sum_uint64.cuh @@ -0,0 +1,75 @@ +//------------------------------------------------------------------------------ +// GraphBLAS/CUDA/template/GB_cuda_threadblock_sum_uint64.cuh +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// This file: Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// Sum across an entire threadblock a single uint64_t scalar. + +// Compare with template/GB_cuda_threadblock_reduce_ztype. +// The #include'ing file must define tile_sz and log2_tile_sz. + +// On input, there is no need for this_thread_block().sync(), because the +// first reduction is across a single tile. The creation of the tile with +// tiled_partition(g) ensures each tile is synchronized, which is +// sufficient for the following call to GB_cuda_tile_sum_uint64. + +__inline__ __device__ uint64_t GB_cuda_threadblock_sum_uint64 +( + uint64_t val +) +{ + // The thread_block g that calls this method has a number of threads + // defined by the kernel launch geometry (dim3 block (blocksz)). + thread_block g = this_thread_block ( ) ; + // here, g.sync() is not needed (see comments above). + + // The threads in this thread block are partitioned into tiles, each with + // tile_sz threads. + thread_block_tile tile = tiled_partition (g) ; + // here, tile.sync() is implicit (see comments above) + + // lane: a local thread id, for all threads in a single tile, ranging from + // 0 to the size of the tile minus one. Normally the tile has size 32, but + // it could be a power of 2 less than or equal to 32. + int lane = threadIdx.x & (tile_sz-1) ; + // tile_id: is the id for a single tile, each with tile_sz threads in it. + int tile_id = threadIdx.x >> log2_tile_sz ; + + // Each tile performs partial reduction + val = GB_cuda_tile_sum_uint64 (tile, val) ; + + // shared result for partial sums of all threads in a tile: + static __shared__ uint64_t shared [tile_sz] ; + + if (lane == 0) + { + shared [tile_id] = val ; // Write reduced value to shared memory + } + + // This g.sync() is essential: All tiles must finish their work so that + // the first tile can reduce the shared array down to the scalar val. + g.sync() ; // Wait for all partial reductions + + // This method requires blockDim.x <= tile_sz^2 = 1024, but this is always + // enforced in the CUDA standard since the our geometry is 1D. + + // Final reduce within first tile + if (tile_id == 0) + { + // read from shared memory only if that tile existed + val = (threadIdx.x < (blockDim.x >> log2_tile_sz)) ? shared [lane] : 0 ; + val = GB_cuda_tile_sum_uint64 (tile, val) ; + } + + // The following sync is not necessary because only tile zero will have the + // final result in val anyway. Other tiles (aka warps) will have garbage + // in val, even with the g.sync(). + // g.sync() ; + return (val) ; +} + diff --git a/GraphBLAS/CUDA/template/GB_cuda_tile_reduce_ztype.cuh b/GraphBLAS/CUDA/template/GB_cuda_tile_reduce_ztype.cuh new file mode 100644 index 0000000000..e3f08d35fd --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_cuda_tile_reduce_ztype.cuh @@ -0,0 +1,171 @@ +//------------------------------------------------------------------------------ +// GraphBLAS/CUDA/template/GB_cuda_tile_reduce_ztype.cuh: warp-level reductions +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// This file: Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause + +//------------------------------------------------------------------------------ + +// shfl_down is a method in the cooperative_groups namespace. It allows all +// threads in a warp (or other thread partition) to work together in a +// cooperative fashion. +// +// Suppose we have a tile that defines a single warp of 32 threads: +// +// #define tile_sz 32 +// thread_block_tile tile = +// tiled_partition (this_thread_block()) ; +// +// Suppose each thread has two scalars dest and src of type T. Then: +// +// T dest, src ; +// dest = tile.shfl_down (src, offset) ; +// +// performs the following computation for each thread tid: +// +// if (tid+offset < tile_sz) +// { +// dest = (the value of src on thread tid+offset) +// } +// +// Where tid ranges from 0 to the tile_sz-1, which is the warp size of 32 +// (the size of the tile, given by tile.num_threads() and also the #define'd +// value tile_sz), minus one. If tid+offset >= tile_sz for the ith thread, +// then nothing happens for that thread, and the thread is inactive. +// +// Restrictions: tile_sz must be a power of 2, and it must be 32 or less for +// tile.shfl_down(). The type T must be trivially-copyable (that is +// is_trivially_copyable::value must be true), and sizeof (T) <= 32 must +// hold (that is, the size of T must be 32 bytes or less). The 32-byte limit +// is handled by GB_cuda_shfl_down_large_ztype, which uses repeated calls to +// tile.shfl_down on 32-byte chunks. + +//------------------------------------------------------------------------------ +// GB_cuda_shfl_down_large_ztype: shfl_down a type larger than 32 bytes +//------------------------------------------------------------------------------ + +// This returns result = tile.shfl_down (value, offset), where value has type +// GB_Z_TYPE, and sizeof (GB_Z_TYPE) > 32. + +#if ( GB_Z_SIZE > 32 ) + + // # of 32-byte chunks to hold a single GB_Z_TYPE, excluding leftover + // chunk; GB_Z_SIZE is sizeof (GB_Z_TYPE) as a hard-coded constant. + #define GB_Z_NCHUNKS ( GB_Z_SIZE / 32 ) + + // ztype_chunk is always 32 bytes in size + typedef struct { uint8_t bytes [32] ; } ztype_chunk ; + + // size of the single leftover chunk of size 0 to < 32 bytes + #define GB_Z_LEFTOVER ( GB_Z_SIZE - ( GB_Z_NCHUNKS * 32 ) ) + + #if ( GB_Z_LEFTOVER > 0 ) + // leftover chunk is not defined if GB_Z_SIZE is a multiple of 32 + typedef struct { uint8_t bytes [GB_Z_LEFTOVER] ; } ztype_leftover ; + #endif + + __device__ __inline__ void GB_cuda_shfl_down_large_ztype + ( + GB_Z_TYPE *result, + thread_block_tile tile, + GB_Z_TYPE *value, + int offset + ) + { + + // get pointers to value and result, as chunks of size 32 bytes + ztype_chunk *v = (ztype_chunk *) value ; + ztype_chunk *r = (ztype_chunk *) result ; + + // shfl_down value into result, one chunk at a time + #pragma unroll + for (int chunk = 0 ; chunk < GB_Z_NCHUNKS ; chunk++, r++, v++) + { + (*r) = tile.shfl_down (*v, offset) ; + } + + #if ( GB_Z_LEFTOVER > 0 ) + // handle the leftover chunk, if it has nonzero size + ztype_leftover *v_leftover = (ztype_leftover *) v ; + ztype_leftover *r_leftover = (ztype_leftover *) r ; + (*r_leftover) = tile.shfl_down (*v_leftover, offset) ; + #endif + } + +#endif + +//------------------------------------------------------------------------------ +// GB_cuda_tile_reduce_ztype: reduce a ztype to a scalar, on a single warp +//------------------------------------------------------------------------------ + +__device__ __inline__ GB_Z_TYPE GB_cuda_tile_reduce_ztype +( + thread_block_tile tile, + GB_Z_TYPE value +) +{ + + #if ( GB_Z_SIZE <= 32 ) + { + + //---------------------------------------------------------------------- + // GB_Z_TYPE can done with a single shfl_down + //---------------------------------------------------------------------- + + #if ( tile_sz == 32 ) + { + // this is the typical case + GB_Z_TYPE next ; + next = tile.shfl_down (value, 16) ; GB_ADD (value, value, next) ; + next = tile.shfl_down (value, 8) ; GB_ADD (value, value, next) ; + next = tile.shfl_down (value, 4) ; GB_ADD (value, value, next) ; + next = tile.shfl_down (value, 2) ; GB_ADD (value, value, next) ; + next = tile.shfl_down (value, 1) ; GB_ADD (value, value, next) ; + } + #else + { + + #pragma unroll + for (int offset = tile_sz >> 1 ; offset > 0 ; offset >>= 1) + { + GB_Z_TYPE next = tile.shfl_down (value, offset) ; + GB_ADD (value, value, next) ; + } + + } + #endif + } + #else + { + + //---------------------------------------------------------------------- + // sizeof (GB_Z_TYPE) is too large for a single shfl_down + //---------------------------------------------------------------------- + + #pragma unroll + for (int offset = tile_sz >> 1 ; offset > 0 ; offset >>= 1) + { + GB_Z_TYPE next ; + GB_cuda_shfl_down_large_ztype (&next, tile, &value, offset) ; + GB_ADD (value, value, next) ; + } + } + #endif + + //-------------------------------------------------------------------------- + // return result + //-------------------------------------------------------------------------- + + // Note that only thread 0 will have the full summation of all values in + // the tile. To broadcast it to all threads, use the following: + + // value = tile.shfl (value, 0) ; + + // or if the ztype is large: + // GB_cuda_shfl_down_large_ztype (&value, tile, &value, 0) ; + + return (value) ; +} + diff --git a/GraphBLAS/CUDA/template/GB_cuda_tile_sum_uint64.cuh b/GraphBLAS/CUDA/template/GB_cuda_tile_sum_uint64.cuh new file mode 100644 index 0000000000..e3139d848a --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_cuda_tile_sum_uint64.cuh @@ -0,0 +1,63 @@ +//------------------------------------------------------------------------------ +// GraphBLAS/CUDA/template/GB_cuda_tile_sum_uint64.cuh: warp-level reductions +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// This file: Copyright (c) 2024, NVIDIA CORPORATION. All rights reserved. +// SPDX-License-Identifier: BSD-3-Clause + +//------------------------------------------------------------------------------ + +// See template/GB_cuda_tile_reduce_ztype.cuh for a description of +// tile.shfl_down. + +//------------------------------------------------------------------------------ +// GB_cuda_tile_sum_uint64: reduce a uint64_t value across a single warp +//------------------------------------------------------------------------------ + +// On input, each thread in the tile holds a single uint64_t value. On output, +// thread zero holds the sum of values from all the warps. + +__device__ __inline__ uint64_t GB_cuda_tile_sum_uint64 +( + thread_block_tile tile, + uint64_t value +) +{ + + //-------------------------------------------------------------------------- + // sum value on all threads to a single value + //-------------------------------------------------------------------------- + + #if (tile_sz == 32) + { + // this is the typical case + value += tile.shfl_down (value, 16) ; + value += tile.shfl_down (value, 8) ; + value += tile.shfl_down (value, 4) ; + value += tile.shfl_down (value, 2) ; + value += tile.shfl_down (value, 1) ; + } + #else + { + // tile_sz is less than 32 (either 1, 2, 4, 8, or 16) + #pragma unroll + for (int offset = tile_sz >> 1 ; offset > 0 ; offset >>= 1) + { + value += tile.shfl_down (value, offset) ; + } + } + #endif + + //-------------------------------------------------------------------------- + // return result + //-------------------------------------------------------------------------- + + // Note that only thread 0 will have the full summation of all values in + // the tile. To broadcast it to all threads, use the following: + + // value = tile.shfl (value, 0) ; + + return (value) ; +} + diff --git a/GraphBLAS/CUDA/JitKernels/GB_jit_kernel_cuda_AxB_dot3.cu b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_AxB_dot3.cu similarity index 98% rename from GraphBLAS/CUDA/JitKernels/GB_jit_kernel_cuda_AxB_dot3.cu rename to GraphBLAS/CUDA/template/GB_jit_kernel_cuda_AxB_dot3.cu index f515ef2177..1355014403 100644 --- a/GraphBLAS/CUDA/JitKernels/GB_jit_kernel_cuda_AxB_dot3.cu +++ b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_AxB_dot3.cu @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_jit_kernel_cuda_AxB_dot3.cu +// GraphBLAS/CUDA/jit_kernels/GB_jit_kernel_cuda_AxB_dot3.cu //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -23,13 +23,16 @@ #endif //------------------------------------------------------------------------------ -// kernel launch geometry +// dot3 kernel launch geometry //------------------------------------------------------------------------------ // FIXME: some duplicates here +// FIXME: tune these values. Bigger chunk_size leads to fewer binary searches +// with GB_cuda_ek_slice_setup, for example. #define chunk_size 128 #define log2_chunk_size 7 #define tile_sz 32 +#define log2_tile_sz 5 #define shared_vector_size 128 #define blocksize 32 #define threads_per_block 32 @@ -131,7 +134,8 @@ GB_bucket_code ; // FIXME: rename GB_dot3_bucket_code // a bitmap/sparse kernel // ... -#include "GB_cuda_shfl_down.cuh" +#include "GB_cuda_tile_sum_uint64.cuh" +#include "GB_cuda_tile_reduce_ztype.cuh" //------------------------------------------------------------------------------ // CUDA device kernels for each case diff --git a/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_apply_bind1st.cu b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_apply_bind1st.cu new file mode 100644 index 0000000000..e3b9474809 --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_apply_bind1st.cu @@ -0,0 +1,46 @@ +using namespace cooperative_groups ; + +__global__ void GB_cuda_apply_bind1st_kernel +( + GB_void *Cx_out, + const GB_void *scalarx, + GrB_Matrix B +) +{ + const GB_X_TYPE x = * ((GB_X_TYPE *) scalarx) ; // gets scalarx [0] + const GB_B_TYPE *__restrict__ Bx = (GB_B_TYPE *) B->x ; + GB_C_TYPE *__restrict__ Cx = (GB_C_TYPE *) Cx_out ; + + #if ( GB_B_IS_BITMAP ) + const int8_t *__restrict__ Bb = B->b ; + #endif + + GB_B_NHELD (nvals) ; + + int tid = blockDim.x * blockIdx.x + threadIdx.x; + int nthreads = blockDim.x * gridDim.x ; + + for (int64_t p = tid ; p < nvals ; p += nthreads) + { + if (!GBB_B (Bb, p)) { continue ; } + GB_DECLAREB (bij) ; + GB_GETB (bij, Bx, p, false) ; + GB_EWISEOP (Cx, p, x, bij, /* i */, /* j */) ; + } +} + +extern "C" { + GB_JIT_CUDA_KERNEL_APPLY_BIND1ST_PROTO (GB_jit_kernel) ; +} + +GB_JIT_CUDA_KERNEL_APPLY_BIND1ST_PROTO (GB_jit_kernel) +{ + ASSERT (Cx != NULL) ; + + dim3 grid (gridsz) ; + dim3 block (blocksz) ; + + GB_cuda_apply_bind1st_kernel <<>> (Cx, scalarx, B) ; + + return (GrB_SUCCESS) ; +} diff --git a/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_apply_bind2nd.cu b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_apply_bind2nd.cu new file mode 100644 index 0000000000..8681d1e0ad --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_apply_bind2nd.cu @@ -0,0 +1,46 @@ +using namespace cooperative_groups ; + +__global__ void GB_cuda_apply_bind2nd_kernel +( + GB_void *Cx_out, + GrB_Matrix A, + const GB_void *scalarx +) +{ + const GB_Y_TYPE x = * ((GB_Y_TYPE *) scalarx) ; // gets scalarx [0] + const GB_A_TYPE *__restrict__ Ax = (GB_A_TYPE *) A->x ; + GB_C_TYPE *__restrict__ Cx = (GB_C_TYPE *) Cx_out ; + + #if ( GB_A_IS_BITMAP ) + const int8_t *__restrict__ Ab = A->b ; + #endif + + GB_A_NHELD (nvals) ; + + int tid = blockDim.x * blockIdx.x + threadIdx.x; + int nthreads = blockDim.x * gridDim.x ; + + for (int64_t p = tid ; p < nvals ; p += nthreads) + { + if (!GBB_A (Ab, p)) { continue ; } + GB_DECLAREA (aij) ; + GB_GETA (aij, Ax, p, false) ; + GB_EWISEOP (Cx, p, aij, x, /* i */, /* j */) ; + } +} + +extern "C" { + GB_JIT_CUDA_KERNEL_APPLY_BIND2ND_PROTO (GB_jit_kernel) ; +} + +GB_JIT_CUDA_KERNEL_APPLY_BIND2ND_PROTO (GB_jit_kernel) +{ + ASSERT (Cx != NULL) ; + + dim3 grid (gridsz) ; + dim3 block (blocksz) ; + + GB_cuda_apply_bind2nd_kernel <<>> (Cx, A, scalarx) ; + + return (GrB_SUCCESS) ; +} diff --git a/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_apply_unop.cu b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_apply_unop.cu new file mode 100644 index 0000000000..7a42df06bd --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_apply_unop.cu @@ -0,0 +1,121 @@ +using namespace cooperative_groups ; + +#include "GB_cuda_ek_slice.cuh" + +#define log2_chunk_size 10 +#define chunk_size 1024 + +__global__ void GB_cuda_apply_unop_kernel +( + GB_void *Cx_out, + const GB_void *thunk, + GrB_Matrix A +) +{ + GB_A_NHELD (anz) ; + + #if ( GB_DEPENDS_ON_X ) + const GB_A_TYPE *__restrict__ Ax = (GB_A_TYPE *) A->x ; + #endif + + #if ( GB_A_IS_SPARSE || GB_A_IS_HYPER ) + #if ( GB_DEPENDS_ON_I ) + const int64_t *__restrict__ Ai = (int64_t *) A->i ; + #endif + + #if ( GB_DEPENDS_ON_J ) + #if ( GB_A_IS_HYPER ) + const int64_t *__restrict__ Ah = (int64_t *) A->h ; + #endif + const int64_t *__restrict__ Ap = (int64_t *) A->p ; + #endif + #endif + + #if ( GB_A_IS_BITMAP ) + const int8_t *__restrict__ Ab = (int8_t *) A->b ; + #endif + + GB_C_TYPE *__restrict__ Cx = (GB_C_TYPE *) Cx_out; + + #define A_iso GB_A_ISO + + int tid = blockDim.x * blockIdx.x + threadIdx.x ; + int nthreads = blockDim.x * gridDim.x ; + + #if ( GB_DEPENDS_ON_Y ) + // get thunk value (of type GB_Y_TYPE) + GB_Y_TYPE thunk_value = * ((GB_Y_TYPE *) thunk) ; + #endif + + #if ( GB_A_IS_BITMAP || GB_A_IS_FULL ) + // bitmap/full case + for (int64_t p = tid ; p < anz ; p += nthreads) + { + if (!GBB_A (Ab, p)) { continue ; } + + #if ( GB_DEPENDS_ON_I ) + int64_t row_idx = p % A->vlen ; + #endif + + #if ( GB_DEPENDS_ON_J ) + int64_t col_idx = p / A->vlen ; + #endif + + GB_UNOP (Cx, p, Ax, p, A_iso, row_idx, col_idx, thunk_value) ; + } + #else + // sparse/hypersparse case + #if ( GB_DEPENDS_ON_J ) + const int64_t anvec = A->nvec ; + // need to do ek_slice method + for (int64_t pfirst = blockIdx.x << log2_chunk_size ; + pfirst < anz ; + pfirst += gridDim.x << log2_chunk_size ) + { + int64_t my_chunk_size, anvec_sub1 ; + float slope ; + int64_t kfirst = GB_cuda_ek_slice_setup (Ap, anvec, anz, pfirst, + chunk_size, &my_chunk_size, &anvec_sub1, &slope) ; + + for (int64_t pdelta = threadIdx.x ; pdelta < my_chunk_size ; pdelta += blockDim.x) + { + int64_t p_final ; + int64_t k = GB_cuda_ek_slice_entry (&p_final, pdelta, pfirst, Ap, anvec_sub1, kfirst, slope) ; + int64_t col_idx = GBH_A (Ah, k) ; + + #if ( GB_DEPENDS_ON_I ) + int64_t row_idx = GBI_A (Ai, p_final, A->vlen) ; + #endif + + GB_UNOP (Cx, p_final, Ax, p_final, + A_iso, row_idx, col_idx, thunk_value) ; + } + } + #else + const int64_t avlen = A->vlen ; + // can do normal method + for (int64_t p = tid ; p < anz ; p += nthreads) + { + #if ( GB_DEPENDS_ON_I ) + int64_t row_idx = GBI_A (Ai, p, avlen) ; + #endif + + GB_UNOP (Cx, p, Ax, p, A_iso, row_idx, /* col_idx */, thunk_value) ; + } + #endif + #endif +} + +extern "C" { + GB_JIT_CUDA_KERNEL_APPLY_UNOP_PROTO (GB_jit_kernel) ; +} + +GB_JIT_CUDA_KERNEL_APPLY_UNOP_PROTO (GB_jit_kernel) +{ + dim3 grid (gridsz) ; + dim3 block (blocksz) ; + + GB_cuda_apply_unop_kernel <<>> (Cx, ythunk, A) ; + + return (GrB_SUCCESS) ; +} \ No newline at end of file diff --git a/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_colscale.cu b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_colscale.cu new file mode 100644 index 0000000000..fdc891edd8 --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_colscale.cu @@ -0,0 +1,103 @@ +using namespace cooperative_groups ; + +// do not #include functions inside of other functions! +#include "GB_cuda_ek_slice.cuh" + +#define log2_chunk_size 10 +#define chunk_size 1024 + +__global__ void GB_cuda_colscale_kernel +( + GrB_Matrix C, + GrB_Matrix A, + GrB_Matrix D +) +{ + + const GB_A_TYPE *__restrict__ Ax = (GB_A_TYPE *) A->x ; + const GB_B_TYPE *__restrict__ Dx = (GB_B_TYPE *) D->x ; + GB_C_TYPE *__restrict__ Cx = (GB_C_TYPE *) C->x ; + + #if ( GB_A_IS_SPARSE || GB_A_IS_HYPER ) + const int64_t *__restrict__ Ap = A->p ; + #if ( GB_A_IS_HYPER ) + const int64_t *__restrict__ Ah = A->h ; + #endif + #endif + + #if ( GB_A_IS_BITMAP ) + const int8_t *__restrict__ Ab = A->b ; + #endif + + GB_A_NHELD (anz) ; + + #if (GB_A_IS_BITMAP || GB_A_IS_FULL) + const int64_t avlen = A->vlen ; + // bitmap/full case + int nthreads_in_entire_grid = blockDim.x * gridDim.x ; + int tid = blockIdx.x * blockDim.x + threadIdx.x ; + for (int64_t p = tid ; p < anz ; p += nthreads_in_entire_grid) + { + if (!GBB_A (Ab, p)) continue ; + // the pth entry in A is A(i,j) where i = p%avlen and j = p/avlen + int64_t col_idx = p / avlen ; + // int64_t row_idx = p % avlen ; + GB_DECLAREB (djj) ; + GB_GETB (djj, Dx, col_idx, ) ; + GB_DECLAREA (aij) ; + GB_GETA (aij, Ax, p, ) ; + // C has same sparsity as A; ewise op code does not change + GB_EWISEOP (Cx, p, aij, djj, 0, 0) ; + } + + #else + const int64_t anvec = A->nvec ; + // sparse/hypersparse case (cuda_ek_slice only works for sparse/hypersparse) + for (int64_t pfirst = blockIdx.x << log2_chunk_size ; + pfirst < anz ; + pfirst += gridDim.x << log2_chunk_size ) + { + int64_t my_chunk_size, anvec_sub1 ; + float slope ; + int64_t kfirst = GB_cuda_ek_slice_setup (Ap, anvec, anz, pfirst, + chunk_size, &my_chunk_size, &anvec_sub1, &slope) ; + + for (int64_t pdelta = threadIdx.x ; pdelta < my_chunk_size ; pdelta += blockDim.x) + { + int64_t p_final ; + int64_t k = GB_cuda_ek_slice_entry (&p_final, pdelta, pfirst, Ap, anvec_sub1, kfirst, slope) ; + int64_t j = GBH_A (Ah, k) ; + + GB_DECLAREB (djj) ; + GB_GETB (djj, Dx, j, ) ; + GB_DECLAREA (aij) ; + GB_GETA (aij, Ax, p_final, ) ; + GB_EWISEOP (Cx, p_final, aij, djj, 0, 0) ; + } + } + #endif + + // not needed because threads do entirely independent work: + // this_thread_block ( ).sync( ) ; +} + +extern "C" { + GB_JIT_CUDA_KERNEL_COLSCALE_PROTO (GB_jit_kernel) ; +} + +GB_JIT_CUDA_KERNEL_COLSCALE_PROTO (GB_jit_kernel) +{ + ASSERT (GB_JUMBLED_OK (C)) ; + ASSERT (GB_JUMBLED_OK (A)) ; + ASSERT (!GB_JUMBLED (D)) ; + ASSERT (!GB_IS_BITMAP (D)) ; + ASSERT (!GB_IS_FULL (D)) ; + ASSERT (!C->iso) ; + + dim3 grid (gridsz) ; + dim3 block (blocksz) ; + + GB_cuda_colscale_kernel <<>> (C, A, D) ; + + return (GrB_SUCCESS) ; +} diff --git a/GraphBLAS/CUDA/JitKernels/GB_jit_kernel_cuda_reduce.cu b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_reduce.cu similarity index 77% rename from GraphBLAS/CUDA/JitKernels/GB_jit_kernel_cuda_reduce.cu rename to GraphBLAS/CUDA/template/GB_jit_kernel_cuda_reduce.cu index 94de78d706..bc6388bee9 100644 --- a/GraphBLAS/CUDA/JitKernels/GB_jit_kernel_cuda_reduce.cu +++ b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_reduce.cu @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GraphBLAS/CUDA/JitKernels/GB_jit_cuda_reduce.cu +// GraphBLAS/CUDA/jit_kernels/GB_jit_cuda_reduce.cu //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. @@ -24,49 +24,18 @@ // If the reduction is done on the GPU, A will never be iso-valued. -#if GB_C_ISO -#error "kernel undefined for C iso" +#if GB_C_ISO || GB_A_ISO +#error "kernel undefined for C or A iso" #endif -// FIXME: put these definitions in GB_cuda_kernel.h: +// tile_sz can vary per algorithm. It must a power of 2, and because we +// use tile.shfl_down(), it must also be <= 32. #define tile_sz 32 #define log2_tile_sz 5 -#include "GB_cuda_shfl_down.cuh" - -//------------------------------------------------------------------------------ -// GB_block_Reduce: reduce across all warps into a single scalar -//------------------------------------------------------------------------------ - -__inline__ __device__ GB_Z_TYPE GB_block_Reduce -( - thread_block g, - GB_Z_TYPE val -) -{ - static __shared__ GB_Z_TYPE shared [tile_sz] ; - int lane = threadIdx.x & (tile_sz-1) ; - int wid = threadIdx.x >> log2_tile_sz ; - thread_block_tile tile = tiled_partition( g ) ; - - // Each warp performs partial reduction - val = GB_cuda_warp_reduce_ztype (tile, val) ; - - // Wait for all partial reductions - if (lane == 0) - { - shared [wid] = val ; // Write reduced value to shared memory - } - this_thread_block().sync() ; // Wait for all partial reductions - - GB_DECLARE_IDENTITY_CONST (zid) ; // const GB_Z_TYPE zid = identity ; - - val = (threadIdx.x < (blockDim.x >> LOG2_WARPSIZE)) ? shared [lane] : zid ; - - // Final reduce within first warp - val = GB_cuda_warp_reduce_ztype (tile, val) ; - return (val) ; -} +#include "GB_cuda_tile_sum_uint64.cuh" +#include "GB_cuda_tile_reduce_ztype.cuh" +#include "GB_cuda_threadblock_reduce_ztype.cuh" //------------------------------------------------------------------------------ // GB_cuda_reduce_kernel: reduce all entries in a matrix to a single scalar @@ -111,9 +80,10 @@ __global__ void GB_cuda_reduce_kernel { // check for zombies during the reduction const int64_t *__restrict__ Ai = A->i ; + // grid-stride loop: for (int64_t p = blockIdx.x * blockDim.x + threadIdx.x ; - p < anz ; - p += blockDim.x * gridDim.x) + p < anz ; + p += blockDim.x * gridDim.x) { if (Ai [p] < 0) continue ; // skip zombies GB_GETA_AND_UPDATE (zmine, Ax, p) ; // zmine += (ztype) Ax [p] @@ -171,8 +141,7 @@ __global__ void GB_cuda_reduce_kernel // phase 2: each threadblock reduces all threads into a scalar //-------------------------------------------------------------------------- - zmine = GB_block_Reduce( this_thread_block(), zmine) ; - this_thread_block().sync() ; + zmine = GB_cuda_threadblock_reduce_ztype (zmine) ; //-------------------------------------------------------------------------- // phase 3: reduce across threadblocks @@ -182,22 +151,24 @@ __global__ void GB_cuda_reduce_kernel { #if GB_Z_HAS_CUDA_ATOMIC_USER - // user-defined monoid can be done automically + // user-defined monoid can be done automically: + // zscalar "+=" zmine using a CUDA atomic directly GB_cuda_atomic_user (zscalar, zmine) ; #elif GB_Z_HAS_CUDA_ATOMIC_BUILTIN - // cast the result to the CUDA atomic type, and reduce + // cast the zmine result to the CUDA atomic type, and reduce // atomically to the global zscalar + // zscalar "+=" zmine using a CUDA atomic pun GB_Z_CUDA_ATOMIC_TYPE *z = (GB_Z_CUDA_ATOMIC_TYPE *) zscalar ; GB_Z_CUDA_ATOMIC_TYPE zsum = (GB_Z_CUDA_ATOMIC_TYPE) zmine ; GB_Z_CUDA_ATOMIC (z, zsum) ; #else - // save my result in V - GB_Z_TYPE *Vx = (GB_Z_TYPE) V->x ; - Vx [blockIdx.x] = zscalar ; + // save my zmine result in V + GB_Z_TYPE *Vx = (GB_Z_TYPE *) V->x ; + Vx [blockIdx.x] = zmine ; #endif } @@ -214,8 +185,8 @@ extern "C" GB_JIT_CUDA_KERNEL_REDUCE_PROTO (GB_jit_kernel) { - dim3 grid (gridsz) ; - dim3 block (blocksz) ; + dim3 grid (gridsz) ; // gridsz: # of threadblocks + dim3 block (blocksz) ; // blocksz: # of threads in each threadblock GB_A_NHELD (anz) ; // anz = # of entries held in A GB_cuda_reduce_kernel <<>> (zscalar, V, A, anz) ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_rowscale.cu b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_rowscale.cu new file mode 100644 index 0000000000..8d3d9ee363 --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_rowscale.cu @@ -0,0 +1,67 @@ +using namespace cooperative_groups ; + +__global__ void GB_cuda_rowscale_kernel +( + GrB_Matrix C, + GrB_Matrix D, + GrB_Matrix B +) +{ + const GB_A_TYPE *__restrict__ Dx = (GB_A_TYPE *) D->x ; + const GB_B_TYPE *__restrict__ Bx = (GB_B_TYPE *) B->x ; + + GB_C_TYPE *__restrict__ Cx = (GB_C_TYPE *) C->x ; + + #define D_iso GB_A_ISO + #define B_iso GB_B_ISO + + #if ( GB_B_IS_SPARSE || GB_B_IS_HYPER ) + const int64_t *__restrict__ Bi = B->i ; + #endif + + #if ( GB_B_IS_BITMAP ) + const int8_t *__restrict__ Bb = B->b ; + #endif + + GB_B_NHELD (bnz) ; + + #if ( GB_A_IS_BITMAP || GB_A_IS_FULL ) + const int64_t bvlen = B->vlen ; + #endif + + int ntasks = gridDim.x * blockDim.x; + int tid = blockIdx.x * blockDim.x + threadIdx.x; + + for (int64_t p = tid ; p < bnz ; p += ntasks) + { + if (!GBB_B (Bb, p)) { continue ; } + + int64_t i = GBI_B (Bi, p, bvlen) ; // get row index of B(i,j) + GB_DECLAREA (dii) ; + GB_GETA (dii, Dx, i, D_iso) ; // dii = D(i,i) + GB_DECLAREB (bij) ; + GB_GETB (bij, Bx, p, B_iso) ; // bij = B(i,j) + GB_EWISEOP (Cx, p, dii, bij, 0, 0) ; // C(i,j) = dii*bij + } +} + +extern "C" { + GB_JIT_CUDA_KERNEL_ROWSCALE_PROTO (GB_jit_kernel) ; +} + +GB_JIT_CUDA_KERNEL_ROWSCALE_PROTO (GB_jit_kernel) +{ + ASSERT (GB_JUMBLED_OK (C)) ; + ASSERT (!GB_JUMBLED (D)) ; + ASSERT (!GB_IS_BITMAP (D)) ; + ASSERT (!GB_IS_FULL (D)) ; + ASSERT (GB_JUMBLED_OK (B)) ; + ASSERT (!C->iso) ; + + dim3 grid (gridsz) ; + dim3 block (blocksz) ; + + GB_cuda_rowscale_kernel <<>> (C, D, B) ; + + return (GrB_SUCCESS) ; +} diff --git a/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_select_bitmap.cu b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_select_bitmap.cu new file mode 100644 index 0000000000..59b8ba944b --- /dev/null +++ b/GraphBLAS/CUDA/template/GB_jit_kernel_cuda_select_bitmap.cu @@ -0,0 +1,84 @@ +using namespace cooperative_groups ; + +#define tile_sz 32 +#define log2_tile_sz 5 + +#include "GB_cuda_atomics.cuh" + +#include "GB_cuda_tile_sum_uint64.cuh" + + +#include "GB_cuda_threadblock_sum_uint64.cuh" + +__global__ void GB_cuda_select_bitmap_kernel +( + int8_t *Cb_out, + uint64_t *cnvals_out, + GrB_Matrix A, + const GB_void *thunk +) +{ + #if ( GB_DEPENDS_ON_X ) + const GB_A_TYPE *__restrict__ Ax = (GB_A_TYPE *) A->x ; + #endif + + #if ( GB_A_IS_BITMAP ) + const int8_t *__restrict__ Ab = A->b ; + #endif + + GB_A_NHELD (anz) ; + int64_t nrows = A->vlen ; + + uint64_t my_keep = 0 ; + int tid = blockIdx.x * blockDim.x + threadIdx.x ; + int nthreads = blockDim.x * gridDim.x ; + for (int64_t p = tid ; p < anz ; p += nthreads) + { + Cb_out [p] = 0 ; + if (!GBB_A (Ab, p)) { continue; } + + #if ( GB_DEPENDS_ON_I ) + int64_t i = (p % nrows) ; + #endif + + #if ( GB_DEPENDS_ON_J ) + int64_t j = (p / nrows) ; + #endif + + #if ( GB_DEPENDS_ON_Y ) + GB_Y_TYPE y = * ((GB_Y_TYPE *) thunk) ; + #endif + + GB_TEST_VALUE_OF_ENTRY (keep, p) ; + if (keep) + { + my_keep++ ; + Cb_out [p] = 1 ; + } + } + + // compute cnvals for this block + // IMPORTANT: every thread in the threadblock must participate in the warp reduction + // for thread 0 to obtain the right result + uint64_t block_keep = GB_cuda_threadblock_sum_uint64 (my_keep) ; + + if (threadIdx.x == 0) + { + // thread 0 updates global cnvals with atomics + GB_cuda_atomic_add (cnvals_out, block_keep) ; + } +} + + +extern "C" +{ + GB_JIT_CUDA_KERNEL_SELECT_BITMAP_PROTO (GB_jit_kernel) ; +} + +GB_JIT_CUDA_KERNEL_SELECT_BITMAP_PROTO (GB_jit_kernel) +{ + dim3 grid (gridsz) ; + dim3 block (blocksz) ; + GB_cuda_select_bitmap_kernel <<>> (Cb, cnvals, A, ythunk) ; + return (GrB_SUCCESS) ; +} diff --git a/GraphBLAS/CUDA/unused/GB_search_for_vector_device.cuh b/GraphBLAS/CUDA/unused/GB_search_for_vector_device.cuh deleted file mode 100644 index 6384c1c840..0000000000 --- a/GraphBLAS/CUDA/unused/GB_search_for_vector_device.cuh +++ /dev/null @@ -1,69 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_search_for_vector_device -//------------------------------------------------------------------------------ - -static __device__ __inline__ int64_t GB_search_for_vector_device -( - const int64_t p, // search for vector k that contains p - const int64_t *restrict Ap, // vector pointers to search - int64_t kleft, // left-most k to search - int64_t anvec, // Ap is of size anvec+1 - int64_t avlen // A->vlen -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - if (Ap == NULL) - { - // A is full or bitmap - ASSERT (p >= 0 && p < avlen * anvec) ; - return ((avlen == 0) ? 0 : (p / avlen)) ; - } - - // A is sparse or hypersparse - ASSERT (p >= 0 && p < Ap [anvec]) ; - - //-------------------------------------------------------------------------- - // search for k - //-------------------------------------------------------------------------- - - int64_t k = kleft ; - int64_t kright = anvec ; - bool found ; - GB_SPLIT_BINARY_SEARCH (p, Ap, k, kright, found) ; - - // FIXME: this is not needed if the search is approximate: - if (found) - { - // Ap [k] == p has been found, but if k is an empty vector, then the - // next vector will also contain the entry p. In that case, k needs to - // be incremented until finding the first non-empty vector for which - // Ap [k] == p. - ASSERT (Ap [k] == p) ; - while (k < anvec-1 && Ap [k+1] == p) - { - k++ ; - } - } - else - { - // p has not been found in Ap, so it appears in the middle of Ap [k-1] - // ... Ap [k], as computed by the binary search. This is the range of - // entries for the vector k-1, so k must be decremented. - k-- ; - } - - //-------------------------------------------------------------------------- - // return result - //-------------------------------------------------------------------------- - - // The entry p must reside in a non-empty vector. - ASSERT (k >= 0 && k < anvec) ; - ASSERT (Ap [k] <= p && p < Ap [k+1]) ; - - return (k) ; -} - diff --git a/GraphBLAS/Config/GB_JITpackage_NJIT.c.in b/GraphBLAS/Config/GB_JITpackage_NJIT.c.in new file mode 100644 index 0000000000..fd409bdd9b --- /dev/null +++ b/GraphBLAS/Config/GB_JITpackage_NJIT.c.in @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// GB_JITpackage.c: packaged GraphBLAS source code for the JIT (empty case) +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB_JITpackage.h" + +// The JIT is disabled; GraphBLAS was compiled with GRAPHBLAS_USE_JIT=OFF. +// PreJIT kernels may still be used, but no JIT kernels can be compiled or +// loaded at run time. In this case, GrB_init will not copy the GraphBLAS +// source files from this set of files into the ~/.SuiteSparse/GrBX.Y.Z/src +// folder anyway, so there is no need to build the JITpackage. + +int GB_JIT_package_nfiles_get (void) +{ + return (0) ; +} + +static GB_JITpackage_index_struct GB_JITpackage_index [1] = + {{0, 0, NULL, NULL}} ; + +void * GB_JITpackage_index_get (void) +{ + return ((void *) GB_JITpackage_index) ; +} diff --git a/GraphBLAS/Config/GB_prejit.c b/GraphBLAS/Config/GB_prejit.c index d2ed98f28e..fb96f15970 100644 --- a/GraphBLAS/Config/GB_prejit.c +++ b/GraphBLAS/Config/GB_prejit.c @@ -11,8 +11,8 @@ // indexed the following 0 kernels in GraphBLAS/PreJIT: #include "GB.h" -#include "GB_jit_kernel_proto.h" -#include "GB_jitifyer.h" +#include "jitifyer/GB_jitifyer.h" +#include "jit_kernels/include/GB_jit_kernel_proto.h" //------------------------------------------------------------------------------ // prototypes for all PreJIT kernels diff --git a/GraphBLAS/Config/GB_prejit.c.in b/GraphBLAS/Config/GB_prejit.c.in index 0955d97234..b186005008 100644 --- a/GraphBLAS/Config/GB_prejit.c.in +++ b/GraphBLAS/Config/GB_prejit.c.in @@ -11,8 +11,8 @@ // indexed the following @GB_PREJIT_LEN@ kernels in GraphBLAS/PreJIT: #include "GB.h" -#include "GB_jit_kernel_proto.h" -#include "GB_jitifyer.h" +#include "jitifyer/GB_jitifyer.h" +#include "jit_kernels/include/GB_jit_kernel_proto.h" //------------------------------------------------------------------------------ // prototypes for all PreJIT kernels diff --git a/GraphBLAS/Config/GraphBLAS.h.in b/GraphBLAS/Config/GraphBLAS.h.in index 0dbdd56fe8..1c1374a9e8 100644 --- a/GraphBLAS/Config/GraphBLAS.h.in +++ b/GraphBLAS/Config/GraphBLAS.h.in @@ -41,9 +41,18 @@ #define GRAPHBLAS_H //============================================================================== -// include files required by GraphBLAS +//=== GraphBLAS macros, typedefs, enums, and global variables ================= //============================================================================== +// This GraphBLAS.h header file is split into two parts. The first part +// defines macros, typedefs, enums, global variables, and pulls in standard C +// #include files. The second part defines all of the user-callable GrB_*, +// with access controlled by the internal definition, GB_CUDA_FOLDER. + +//------------------------------------------------------------------------------ +// include files required by GraphBLAS +//------------------------------------------------------------------------------ + #include #include #include @@ -56,13 +65,24 @@ #include #include -//============================================================================== -// renaming for use in MATLAB R2021a or later -//============================================================================== +//------------------------------------------------------------------------------ +// helper macros +//------------------------------------------------------------------------------ + +// These are required for internal use in GraphBLAS.h, but should not be used +// by the end user application. #define GB_CAT2(x,y) x ## y #define GB_EVAL2(x,y) GB_CAT2 (x,y) +// GB_STR: convert the content of x into a string "x" +#define GB_XSTR(x) GB_STR(x) +#define GB_STR(x) #x + +//------------------------------------------------------------------------------ +// renaming for use in MATLAB R2021a or later +//------------------------------------------------------------------------------ + #if defined ( GBMATLAB ) && !defined ( GB_JIT_RUNTIME ) // All symbols must be renamed for the @GrB interface when using MATLAB // R2021a and following, since those versions include an earlier version of @@ -143,11 +163,32 @@ #ifndef GXB_COMPLEX_H #define GXB_COMPLEX_H -// Compiler has support for C99 floating point number arithmetic -#cmakedefine GxB_HAVE_COMPLEX_C99 - -// Compiler has support for MSVC-style complex numbers -#cmakedefine GxB_HAVE_COMPLEX_MSVC + #if defined ( GxB_HAVE_COMPLEX_C99 ) || defined ( GxB_HAVE_COMPLEX_MSVC ) + // Bypass the cmake configuration and let the user application decide + // itself which complex type to use. This may differ from the compiled + // GraphBLAS library so this approach may not work in all cases. + // To use C99 complex types, use: + // + // -DGxB_HAVE_COMPLEX_C99 + // + // To use MS complex types for C: + // + // -DGxB_HAVE_COMPLEX_MSVC + // + // One of the above options is required. To use the JIT, these two + // options must also be added at run time via + // GrB_set (GrB_Global, GxB_JIT_C_COMPILER_FLAGS, "...") + // where "..." would be all the flags required to compile a JIT kernel, + // including "-O3 -fopenmp" and so on, as well as one of the above two + // options. + #else + // Let the cmake configuration script determine the complex type + // that is available: + // Compiler has support for C99 floating point number arithmetic + #cmakedefine GxB_HAVE_COMPLEX_C99 + // Compiler has support for MSVC-style complex numbers + #cmakedefine GxB_HAVE_COMPLEX_MSVC + #endif #if defined (GxB_HAVE_COMPLEX_MSVC) @@ -311,10 +352,6 @@ typedef uint64_t GrB_Index ; // called, which returns a string that provides more information on the last // return value from GraphBLAS. -// The v1.3 C API did not specify the enum values, but they appear in v2.0. -// Changing them will require SuiteSparse:GraphBLAS to bump to v6.x. -// Error codes GrB_NOT_IMPLEMENTED and GrB_EMPTY_OBJECT are new to v2.0. - typedef enum { @@ -350,6 +387,10 @@ typedef enum } GrB_Info ; +// for null and invalid objects +#define GrB_NULL NULL +#define GrB_INVALID_HANDLE NULL + //============================================================================== // GrB_init / GrB_finalize //============================================================================== @@ -375,45 +416,6 @@ typedef enum } GrB_Mode ; -#if defined ( __cplusplus ) -extern "C" -{ -#endif - -GrB_Info GrB_init // start up GraphBLAS -( - GrB_Mode mode // blocking or non-blocking mode, no GPU -) ; - -GrB_Info GxB_init // start up GraphBLAS and also define malloc, etc -( - GrB_Mode mode, // blocking or non-blocking mode, - // with or without GPU - // pointers to memory management functions - void * (* user_malloc_function ) (size_t), - void * (* user_calloc_function ) (size_t, size_t), - void * (* user_realloc_function ) (void *, size_t), - void (* user_free_function ) (void *) -) ; - -GrB_Info GrB_finalize (void) ; // finish GraphBLAS - -//============================================================================== -// GrB_getVersion: GraphBLAS C API version -//============================================================================== - -// GrB_getVersion provides a runtime access of the C API Version. Can also be -// done with two calls to GrB_Global_get_INT32 with the v2.1 C API: -// -// GrB_get (GrB_GLOBAL, &version, GrB_API_VER_MAJOR) ; -// GrB_get (GrB_GLOBAL, &subversion, GrB_API_VER_MINOR) ; - -GrB_Info GrB_getVersion // runtime access to C API version number -( - unsigned int *version, // returns GRB_VERSION - unsigned int *subversion // returns GRB_SUBVERSION -) ; - //============================================================================== // GrB_Descriptor: the GraphBLAS descriptor //============================================================================== @@ -542,26 +544,6 @@ GrB_Desc_Value ; typedef struct GB_Descriptor_opaque *GrB_Descriptor ; -GrB_Info GrB_Descriptor_new // create a new descriptor -( - GrB_Descriptor *descriptor // handle of descriptor to create -) ; - -// historical methods; use GrB_set and GrB_get instead: -GrB_Info GrB_Descriptor_set (GrB_Descriptor, GrB_Desc_Field, GrB_Desc_Value) ; -GrB_Info GxB_Descriptor_get (GrB_Desc_Value *, GrB_Descriptor, GrB_Desc_Field) ; -GrB_Info GxB_Desc_set (GrB_Descriptor, GrB_Desc_Field, ...) ; -GrB_Info GxB_Desc_set_INT32 (GrB_Descriptor, GrB_Desc_Field, int32_t) ; -GrB_Info GxB_Desc_set_FP64 (GrB_Descriptor, GrB_Desc_Field, double) ; -GrB_Info GxB_Desc_get (GrB_Descriptor, GrB_Desc_Field, ...) ; -GrB_Info GxB_Desc_get_INT32 (GrB_Descriptor, GrB_Desc_Field, int32_t *) ; -GrB_Info GxB_Desc_get_FP64 (GrB_Descriptor, GrB_Desc_Field, double *) ; - -GrB_Info GrB_Descriptor_free // free a descriptor -( - GrB_Descriptor *descriptor // handle of descriptor to free -) ; - // Predefined descriptors and their values: GB_GLOBAL GrB_Descriptor @@ -642,119 +624,8 @@ GB_GLOBAL GrB_Type GxB_FC32 , // in C: float complex GxB_FC64 ; // in C: double complex -//------------------------------------------------------------------------------ -// helper macros for polymorphic functions -//------------------------------------------------------------------------------ - -#define GB_CAT(w,x,y,z) w ## x ## y ## z -#define GB_CONCAT(w,x,y,z) GB_CAT (w, x, y, z) - -// methods for C scalars of various types -#define GB_CASES(prefix,func) \ - bool : GB_CONCAT ( prefix, _, func, _BOOL ), \ - int8_t : GB_CONCAT ( prefix, _, func, _INT8 ), \ - int16_t : GB_CONCAT ( prefix, _, func, _INT16 ), \ - int32_t : GB_CONCAT ( prefix, _, func, _INT32 ), \ - int64_t : GB_CONCAT ( prefix, _, func, _INT64 ), \ - uint8_t : GB_CONCAT ( prefix, _, func, _UINT8 ), \ - uint16_t : GB_CONCAT ( prefix, _, func, _UINT16 ), \ - uint32_t : GB_CONCAT ( prefix, _, func, _UINT32 ), \ - uint64_t : GB_CONCAT ( prefix, _, func, _UINT64 ), \ - float : GB_CONCAT ( prefix, _, func, _FP32 ), \ - double : GB_CONCAT ( prefix, _, func, _FP64 ), \ - GxB_FC32_t : GB_CONCAT ( GxB , _, func, _FC32 ), \ - GxB_FC64_t : GB_CONCAT ( GxB , _, func, _FC64 ), \ - const void * : GB_CONCAT ( prefix, _, func, _UDT ), \ - void * : GB_CONCAT ( prefix, _, func, _UDT ) - -// methods for C arrays of various types -#define GB_PCASES(prefix,func) \ - const bool * : GB_CONCAT ( prefix, _, func, _BOOL ), \ - bool * : GB_CONCAT ( prefix, _, func, _BOOL ), \ - const int8_t * : GB_CONCAT ( prefix, _, func, _INT8 ), \ - int8_t * : GB_CONCAT ( prefix, _, func, _INT8 ), \ - const int16_t * : GB_CONCAT ( prefix, _, func, _INT16 ), \ - int16_t * : GB_CONCAT ( prefix, _, func, _INT16 ), \ - const int32_t * : GB_CONCAT ( prefix, _, func, _INT32 ), \ - int32_t * : GB_CONCAT ( prefix, _, func, _INT32 ), \ - const int64_t * : GB_CONCAT ( prefix, _, func, _INT64 ), \ - int64_t * : GB_CONCAT ( prefix, _, func, _INT64 ), \ - const uint8_t * : GB_CONCAT ( prefix, _, func, _UINT8 ), \ - uint8_t * : GB_CONCAT ( prefix, _, func, _UINT8 ), \ - const uint16_t * : GB_CONCAT ( prefix, _, func, _UINT16 ), \ - uint16_t * : GB_CONCAT ( prefix, _, func, _UINT16 ), \ - const uint32_t * : GB_CONCAT ( prefix, _, func, _UINT32 ), \ - uint32_t * : GB_CONCAT ( prefix, _, func, _UINT32 ), \ - const uint64_t * : GB_CONCAT ( prefix, _, func, _UINT64 ), \ - uint64_t * : GB_CONCAT ( prefix, _, func, _UINT64 ), \ - const float * : GB_CONCAT ( prefix, _, func, _FP32 ), \ - float * : GB_CONCAT ( prefix, _, func, _FP32 ), \ - const double * : GB_CONCAT ( prefix, _, func, _FP64 ), \ - double * : GB_CONCAT ( prefix, _, func, _FP64 ), \ - const GxB_FC32_t * : GB_CONCAT ( GxB , _, func, _FC32 ), \ - GxB_FC32_t * : GB_CONCAT ( GxB , _, func, _FC32 ), \ - const GxB_FC64_t * : GB_CONCAT ( GxB , _, func, _FC64 ), \ - GxB_FC64_t * : GB_CONCAT ( GxB , _, func, _FC64 ), \ - const void * : GB_CONCAT ( prefix, _, func, _UDT ), \ - void * : GB_CONCAT ( prefix, _, func, _UDT ) - -//------------------------------------------------------------------------------ -// GrB_Type_new: create a new type -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_new // create a new GraphBLAS type -( - GrB_Type *type, // handle of user type to create - size_t sizeof_ctype // size = sizeof (ctype) of the C type -) ; - -// GxB_Type_new creates a type with a name and definition that are known to -// GraphBLAS, as strings. The type_name is any valid string (max length of 128 -// characters, including the required null-terminating character) that may -// appear as the name of a C type created by a C "typedef" statement. It must -// not contain any white-space characters. Example, creating a type of size -// 16*4+4 = 68 bytes, with a 4-by-4 dense float array and a 32-bit integer: -// -// typedef struct { float x [4][4] ; int color ; } myquaternion ; -// GrB_Type MyQtype ; -// GxB_Type_new (&MyQtype, sizeof (myquaternion), "myquaternion", -// "typedef struct { float x [4][4] ; int color ; } myquaternion ;") ; -// -// The type_name and type_defn are both null-terminated strings. The two -// strings are required for best performance in the JIT (both on the CPU and -// GPU). User defined types created by GrB_Type_new will not work with a JIT. -// -// At most GxB_MAX_NAME_LEN characters are accessed in type_name; characters -// beyond that limit are silently ignored. - #define GxB_MAX_NAME_LEN 128 -GrB_Info GxB_Type_new // create a new named GraphBLAS type -( - GrB_Type *type, // handle of user type to create - size_t sizeof_ctype, // size = sizeof (ctype) of the C type - const char *type_name, // name of the type (max 128 characters) - const char *type_defn // typedef for the type (no max length) -) ; - -// historical; use GrB_get instead: -GrB_Info GxB_Type_name (char *type_name, const GrB_Type type) ; -GrB_Info GxB_Type_size (size_t *size, const GrB_Type type) ; - -GrB_Info GxB_Type_from_name // return the built-in GrB_Type from a name -( - GrB_Type *type, // built-in type, or NULL if user-defined. - // The name can be the underlying C type - // ("int8_t") or the GraphBLAS name - // ("GrB_INT8"). - const char *type_name // array of size at least GxB_MAX_NAME_LEN -) ; - -GrB_Info GrB_Type_free // free a user-defined type -( - GrB_Type *type // handle of user-defined type to free -) ; - //============================================================================== // GrB_UnaryOp: unary operators //============================================================================== @@ -945,43 +816,8 @@ GB_GLOBAL GrB_UnaryOp GxB_ISFINITE_FC32, // isfinite (real (x)) && isfinite (cimag (x)) GxB_ISFINITE_FC64 ; // isfinite (real (x)) && isfinite (cimag (x)) -//------------------------------------------------------------------------------ -// methods for unary operators -//------------------------------------------------------------------------------ - typedef void (*GxB_unary_function) (void *, const void *) ; -// GrB_UnaryOp_new creates a user-defined unary op (with no name or defn) -GrB_Info GrB_UnaryOp_new // create a new user-defined unary operator -( - GrB_UnaryOp *unaryop, // handle for the new unary operator - GxB_unary_function function, // pointer to the unary function - GrB_Type ztype, // type of output z - GrB_Type xtype // type of input x -) ; - -// GxB_UnaryOp_new creates a named and defined user-defined unary op. -GrB_Info GxB_UnaryOp_new // create a new user-defined unary operator -( - GrB_UnaryOp *unaryop, // handle for the new unary operator - GxB_unary_function function, // pointer to the unary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x - const char *unop_name, // name of the user function - const char *unop_defn // definition of the user function -) ; - -// historical; use GrB_get instead: -GrB_Info GxB_UnaryOp_ztype (GrB_Type *ztype, GrB_UnaryOp unaryop) ; -GrB_Info GxB_UnaryOp_ztype_name (char *type_name, const GrB_UnaryOp unaryop) ; -GrB_Info GxB_UnaryOp_xtype (GrB_Type *xtype, GrB_UnaryOp unaryop) ; -GrB_Info GxB_UnaryOp_xtype_name (char *type_name, const GrB_UnaryOp unaryop) ; - -GrB_Info GrB_UnaryOp_free // free a user-created unary operator -( - GrB_UnaryOp *unaryop // handle of unary operator to free -) ; - //============================================================================== // GrB_BinaryOp: binary operators //============================================================================== @@ -1381,58 +1217,18 @@ GB_GLOBAL GrB_BinaryOp GxB_IGNORE_DUP ; // BXOR, and BXNOR. This assumes that the computations for each bit are // entirely independent (so BSHIFT would not fit in the table above). -//------------------------------------------------------------------------------ -// methods for binary operators -//------------------------------------------------------------------------------ - typedef void (*GxB_binary_function) (void *, const void *, const void *) ; -// GrB_BinaryOp_new creates a user-defined binary op (no name or defn) -GrB_Info GrB_BinaryOp_new -( - GrB_BinaryOp *binaryop, // handle for the new binary operator - GxB_binary_function function, // pointer to the binary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x - GrB_Type ytype // type of input y -) ; - -// GxB_BinaryOp_new creates a named and defined user-defined binary op. -GrB_Info GxB_BinaryOp_new -( - GrB_BinaryOp *op, // handle for the new binary operator - GxB_binary_function function, // pointer to the binary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x - GrB_Type ytype, // type of input y - const char *binop_name, // name of the user function - const char *binop_defn // definition of the user function -) ; - -// historical; use GrB_get instead: -GrB_Info GxB_BinaryOp_ztype (GrB_Type *ztype, GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_ztype_name (char *type_name, const GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_xtype (GrB_Type *xtype, GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_xtype_name (char *type_name, const GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_ytype (GrB_Type *ytype, GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_ytype_name (char *type_name, const GrB_BinaryOp op) ; - -GrB_Info GrB_BinaryOp_free // free a user-created binary operator -( - GrB_BinaryOp *binaryop // handle of binary operator to free -) ; - -//============================================================================== -// GxB_SelectOp: select operators (DEPRECATED: do not use) -//============================================================================== +//============================================================================== +// GxB_SelectOp: select operators (DEPRECATED: do not use) +//============================================================================== // historical; use GrB_select and GrB_IndexUnaryOp instead: typedef struct GB_SelectOp_opaque *GxB_SelectOp ; GB_GLOBAL GxB_SelectOp GxB_TRIL, GxB_TRIU, GxB_DIAG, GxB_OFFDIAG, GxB_NONZERO, -GxB_EQ_ZERO, GxB_GT_ZERO, GxB_GE_ZERO, GxB_LT_ZERO, GxB_LE_ZERO, GxB_NE_THUNK, -GxB_EQ_THUNK, GxB_GT_THUNK, GxB_GE_THUNK, GxB_LT_THUNK, GxB_LE_THUNK ; -GrB_Info GxB_SelectOp_xtype (GrB_Type *xtype, GxB_SelectOp selectop) ; -GrB_Info GxB_SelectOp_ttype (GrB_Type *ttype, GxB_SelectOp selectop) ; + GxB_EQ_ZERO, GxB_GT_ZERO, GxB_GE_ZERO, GxB_LT_ZERO, GxB_LE_ZERO, + GxB_NE_THUNK, GxB_EQ_THUNK, GxB_GT_THUNK, GxB_GE_THUNK, GxB_LT_THUNK, + GxB_LE_THUNK ; //============================================================================== // GrB_IndexUnaryOp: a unary operator that depends on the row/col indices @@ -1453,41 +1249,9 @@ typedef void (*GxB_index_unary_function) const void *y // input scalar y ) ; -// GrB_IndexUnaryOp_new creates a user-defined unary op (no name or defn) - -GrB_Info GrB_IndexUnaryOp_new // create a new user-defined IndexUnary op -( - GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator - GxB_index_unary_function function, // pointer to IndexUnary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x (the A(i,j) entry) - GrB_Type ytype // type of input y (the scalar) -) ; - -GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp -( - GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator - GxB_index_unary_function function, // pointer to index_unary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x (the A(i,j) entry) - GrB_Type ytype, // type of input y (the scalar) - const char *idxop_name, // name of the user function - const char *idxop_defn // definition of the user function -) ; - -// historical; use GrB_get instead: -GrB_Info GxB_IndexUnaryOp_ztype_name (char *, const GrB_IndexUnaryOp op) ; -GrB_Info GxB_IndexUnaryOp_xtype_name (char *, const GrB_IndexUnaryOp op) ; -GrB_Info GxB_IndexUnaryOp_ytype_name (char *, const GrB_IndexUnaryOp op) ; - -GrB_Info GrB_IndexUnaryOp_free // free a user-created IndexUnaryOp -( - GrB_IndexUnaryOp *op // handle of IndexUnary to free -) ; - -//------------------------------------------------------------------------------ -// built-in IndexUnaryOps -//------------------------------------------------------------------------------ +//============================================================================== +// GrB_IndexUnaryOp: a unary operator that depends on the row/col indices +//============================================================================== // To facilitate computations with negative integers, the indices i and j are // of type int64_t. The scalar y has the type corresponding to the suffix @@ -1579,5646 +1343,6166 @@ GB_GLOBAL GrB_IndexUnaryOp typedef struct GB_Monoid_opaque *GrB_Monoid ; -GrB_Info GrB_Monoid_new_BOOL // create a new boolean monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - bool identity // identity value of the monoid -) ; +//============================================================================== +// GrB_Semiring +//============================================================================== -GrB_Info GrB_Monoid_new_INT8 // create a new int8 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int8_t identity // identity value of the monoid -) ; +typedef struct GB_Semiring_opaque *GrB_Semiring ; -GrB_Info GrB_Monoid_new_UINT8 // create a new uint8 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint8_t identity // identity value of the monoid -) ; +//============================================================================== +// GrB_Scalar: a GraphBLAS scalar +//============================================================================== -GrB_Info GrB_Monoid_new_INT16 // create a new int16 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int16_t identity // identity value of the monoid -) ; +typedef struct GB_Scalar_opaque *GxB_Scalar ; // historical: use GrB_Scalar +typedef struct GB_Scalar_opaque *GrB_Scalar ; // use this instead -GrB_Info GrB_Monoid_new_UINT16 // create a new uint16 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint16_t identity // identity value of the monoid -) ; +//============================================================================== +// GrB_Vector: a GraphBLAS vector +//============================================================================== -GrB_Info GrB_Monoid_new_INT32 // create a new int32 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int32_t identity // identity value of the monoid -) ; +typedef struct GB_Vector_opaque *GrB_Vector ; -GrB_Info GrB_Monoid_new_UINT32 // create a new uint32 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint32_t identity // identity value of the monoid -) ; +//============================================================================== +// GrB_Matrix: a GraphBLAS matrix +//============================================================================== -GrB_Info GrB_Monoid_new_INT64 // create a new int64 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int64_t identity // identity value of the monoid -) ; +typedef struct GB_Matrix_opaque *GrB_Matrix ; -GrB_Info GrB_Monoid_new_UINT64 // create a new uint64 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint64_t identity // identity value of the monoid -) ; +//============================================================================== +// SuiteSparse:GraphBLAS options +//============================================================================== -GrB_Info GrB_Monoid_new_FP32 // create a new float monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - float identity // identity value of the monoid -) ; +// The following options modify how SuiteSparse:GraphBLAS stores and operates +// on its matrices. The GrB_get/set methods allow the user to suggest how the +// internal representation of a matrix, or all matrices, should be held. These +// options have no effect on the result (except for minor roundoff differences +// for floating-point types). They only affect the time and memory usage of the +// computations. -GrB_Info GrB_Monoid_new_FP64 // create a new double monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - double identity // identity value of the monoid -) ; +typedef enum // for global options or matrix options +{ -GrB_Info GxB_Monoid_new_FC32 // create a new float complex monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - GxB_FC32_t identity // identity value of the monoid -) ; + //------------------------------------------------------------ + // GrB_get / GrB_set for GrB_Matrix and GrB_GLOBAL: + //------------------------------------------------------------ -GrB_Info GxB_Monoid_new_FC64 // create a new double complex monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - GxB_FC64_t identity // identity value of the monoid -) ; + GxB_HYPER_SWITCH = 7000, // switch to hypersparse (double value) + GxB_HYPER_HASH = 7048, // hyper_hash control (global int64 value, + // or bool per matrix) + GxB_BITMAP_SWITCH = 7001, // switch to bitmap (double value) + GxB_FORMAT = 7002, // historical; use GrB_STORAGE_ORIENTATION_HINT -GrB_Info GrB_Monoid_new_UDT // create a monoid with a user-defined type -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - void *identity // identity value of the monoid -) ; + //------------------------------------------------------------ + // GrB_get for GrB_GLOBAL: + //------------------------------------------------------------ -// Type-generic method for creating a new monoid: + GxB_MODE = 7003, // historical; use GrB_BLOCKING_MODE + GxB_LIBRARY_NAME = 7004, // historical; use GrB_NAME + GxB_LIBRARY_VERSION = 7005, // historical; use GrB_LIBRARY_VER_* + GxB_LIBRARY_DATE = 7006, // date of the library (char *) + GxB_LIBRARY_ABOUT = 7007, // about the library (char *) + GxB_LIBRARY_URL = 7008, // URL for the library (char *) + GxB_LIBRARY_LICENSE = 7009, // license of the library (char *) + GxB_LIBRARY_COMPILE_DATE = 7010, // date library was compiled (char *) + GxB_LIBRARY_COMPILE_TIME = 7011, // time library was compiled (char *) + GxB_API_VERSION = 7012, // historical; use GrB_API_VER_* + GxB_API_DATE = 7013, // date of the API (char *) + GxB_API_ABOUT = 7014, // about the API (char *) + GxB_API_URL = 7015, // URL for the API (char *) + GxB_COMPILER_VERSION = 7016, // compiler version (3 int's) + GxB_COMPILER_NAME = 7017, // compiler name (char *) + GxB_LIBRARY_OPENMP = 7018, // library compiled with OpenMP + GxB_MALLOC_FUNCTION = 7037, // malloc function pointer + GxB_CALLOC_FUNCTION = 7038, // calloc function pointer + GxB_REALLOC_FUNCTION = 7039, // realloc function pointer + GxB_FREE_FUNCTION = 7040, // free function pointer -/* -GrB_Info GrB_Monoid_new // create a monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - identity // identity value of the monoid -) ; -*/ + //------------------------------------------------------------ + // GrB_get / GrB_set for GrB_GLOBAL: + //------------------------------------------------------------ -#if GxB_STDC_VERSION >= 201112L -#define GrB_Monoid_new(monoid,op,identity) \ - _Generic \ - ( \ - (identity), \ - GB_CASES (GrB, Monoid_new) \ - ) \ - (monoid, op, identity) -#endif + GxB_GLOBAL_NTHREADS = GxB_NTHREADS, // max number of threads to use + GxB_GLOBAL_CHUNK = GxB_CHUNK, // chunk size for small problems. + GxB_GLOBAL_GPU_ID = GxB_GPU_ID, // which GPU to use (DRAFT) -// GxB_Monoid_terminal_new is identical to GrB_Monoid_new, except that a -// terminal value can be specified. The terminal may be NULL, which indicates -// no terminal value (and in this case, it is identical to GrB_Monoid_new). -// The terminal value, if not NULL, must have the same type as the identity. + GxB_BURBLE = 7019, // diagnostic output + GxB_PRINTF = 7020, // printf function diagnostic output + GxB_FLUSH = 7021, // flush function diagnostic output + GxB_MEMORY_POOL = 7022, // no longer used + GxB_PRINT_1BASED = 7023, // print matrices as 0-based or 1-based -GrB_Info GxB_Monoid_terminal_new_BOOL // create a new boolean monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - bool identity, // identity value of the monoid - bool terminal // terminal value of the monoid -) ; + GxB_JIT_C_COMPILER_NAME = 7024, // CPU JIT C compiler name + GxB_JIT_C_COMPILER_FLAGS = 7025, // CPU JIT C compiler flags + GxB_JIT_C_LINKER_FLAGS = 7026, // CPU JIT C linker flags + GxB_JIT_C_LIBRARIES = 7027, // CPU JIT C libraries + GxB_JIT_C_PREFACE = 7028, // CPU JIT C preface + GxB_JIT_C_CONTROL = 7029, // CPU JIT C control + GxB_JIT_CACHE_PATH = 7030, // CPU/CUDA JIT path for compiled kernels + GxB_JIT_C_CMAKE_LIBS = 7031, // CPU JIT C libraries when using cmake + GxB_JIT_USE_CMAKE = 7032, // CPU JIT: use cmake or direct compile + GxB_JIT_ERROR_LOG = 7033, // CPU JIT: error log file -GrB_Info GxB_Monoid_terminal_new_INT8 // create a new int8 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int8_t identity, // identity value of the monoid - int8_t terminal // terminal value of the monoid -) ; - -GrB_Info GxB_Monoid_terminal_new_UINT8 // create a new uint8 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint8_t identity, // identity value of the monoid - uint8_t terminal // terminal value of the monoid -) ; + GxB_JIT_CUDA_PREFACE = 7100, // CUDA JIT C++ preface -GrB_Info GxB_Monoid_terminal_new_INT16 // create a new int16 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int16_t identity, // identity value of the monoid - int16_t terminal // terminal value of the monoid -) ; + //------------------------------------------------------------ + // GrB_get for GrB_Matrix: + //------------------------------------------------------------ -GrB_Info GxB_Monoid_terminal_new_UINT16 // create a new uint16 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint16_t identity, // identity value of the monoid - uint16_t terminal // terminal value of the monoid -) ; + GxB_SPARSITY_STATUS = 7034, // hyper, sparse, bitmap or full (1,2,4,8) + GxB_IS_HYPER = 7035, // historical; use GxB_SPARSITY_STATUS -GrB_Info GxB_Monoid_terminal_new_INT32 // create a new int32 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int32_t identity, // identity value of the monoid - int32_t terminal // terminal value of the monoid -) ; + //------------------------------------------------------------ + // GrB_get/GrB_set for GrB_Matrix: + //------------------------------------------------------------ -GrB_Info GxB_Monoid_terminal_new_UINT32 // create a new uint32 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint32_t identity, // identity value of the monoid - uint32_t terminal // terminal value of the monoid -) ; + GxB_SPARSITY_CONTROL = 7036, // sparsity control: 0 to 15; see below -GrB_Info GxB_Monoid_terminal_new_INT64 // create a new int64 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int64_t identity, // identity value of the monoid - int64_t terminal // terminal value of the monoid -) ; +} GxB_Option_Field ; -GrB_Info GxB_Monoid_terminal_new_UINT64 // create a new uint64 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint64_t identity, // identity value of the monoid - uint64_t terminal // terminal value of the monoid -) ; +// for GxB_JIT_C_CONTROL: +typedef enum +{ + GxB_JIT_OFF = 0, // do not use the JIT: free all JIT kernels if loaded + GxB_JIT_PAUSE = 1, // do not run JIT kernels but keep any loaded + GxB_JIT_RUN = 2, // run JIT kernels if already loaded; no load/compile + GxB_JIT_LOAD = 3, // able to load and run JIT kernels; may not compile + GxB_JIT_ON = 4, // full JIT: able to compile, load, and run +} +GxB_JIT_Control ; -GrB_Info GxB_Monoid_terminal_new_FP32 // create a new float monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - float identity, // identity value of the monoid - float terminal // terminal value of the monoid -) ; +// GxB_FORMAT is historical, but it can be by row or by column: +typedef enum +{ + GxB_BY_ROW = 0, // CSR: compressed sparse row format + GxB_BY_COL = 1, // CSC: compressed sparse column format + GxB_NO_FORMAT = -1 // format not defined +} +GxB_Format_Value ; -GrB_Info GxB_Monoid_terminal_new_FP64 // create a new double monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - double identity, // identity value of the monoid - double terminal // terminal value of the monoid -) ; +// The default format is by row. These constants are defined as GB_GLOBAL +// const, so that if SuiteSparse:GraphBLAS is recompiled with a different +// default format, and the application is relinked but not recompiled, it will +// acquire the new default values. +GB_GLOBAL const GxB_Format_Value GxB_FORMAT_DEFAULT ; -GrB_Info GxB_Monoid_terminal_new_FC32 // create a new float complex monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - GxB_FC32_t identity, // identity value of the monoid - GxB_FC32_t terminal // terminal value of the monoid -) ; +// the default hyper_switch parameter +GB_GLOBAL const double GxB_HYPER_DEFAULT ; -GrB_Info GxB_Monoid_terminal_new_FC64 // create a new double complex monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - GxB_FC64_t identity, // identity value of the monoid - GxB_FC64_t terminal // terminal value of the monoid -) ; +// GxB_SPARSITY_CONTROL can be any sum or bitwise OR of these 4 values: +#define GxB_HYPERSPARSE 1 // store matrix in hypersparse form +#define GxB_SPARSE 2 // store matrix as sparse form (compressed vector) +#define GxB_BITMAP 4 // store matrix as a bitmap +#define GxB_FULL 8 // store matrix as full; all entries must be present -GrB_Info GxB_Monoid_terminal_new_UDT // create a monoid with a user type -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - void *identity, // identity value of the monoid - void *terminal // terminal value of the monoid -) ; +// size of b array for GxB_set/get (GxB_BITMAP_SWITCH, b) +#define GxB_NBITMAP_SWITCH 8 // size of bitmap_switch parameter array -// Type-generic method for creating a new monoid with a terminal value: +// any sparsity value: +#define GxB_ANY_SPARSITY (GxB_HYPERSPARSE + GxB_SPARSE + GxB_BITMAP + GxB_FULL) -/* -GrB_Info GxB_Monoid_terminal_new // create a monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - identity, // identity value of the monoid - terminal // terminal value of the monoid -) ; -*/ +// the default sparsity control is any format: +#define GxB_AUTO_SPARSITY GxB_ANY_SPARSITY -#if GxB_STDC_VERSION >= 201112L -#define GxB_Monoid_terminal_new(monoid,op,identity,terminal) \ - _Generic \ - ( \ - (identity), \ - GB_CASES (GxB, Monoid_terminal_new) \ - ) \ - (monoid, op, identity, terminal) -#endif +// GrB_set (A, scontrol, GxB_SPARSITY_CONTROL) provides hints +// about which data structure GraphBLAS should use for the matrix A: +// +// GxB_AUTO_SPARSITY: GraphBLAS selects automatically. +// GxB_HYPERSPARSE: always hypersparse, taking O(nvals(A)) space. +// GxB_SPARSE: always in a sparse struture: compressed-sparse row/column, +// taking O(nrows+nvals(A)) space if stored by row, or +// O(ncols+nvals(A)) if stored by column. +// GxB_BITMAP: always in a bitmap struture, taking O(nrows*ncols) space. +// GxB_FULL: always in a full structure, taking O(nrows*ncols) space, +// unless not all entries are present, in which case the bitmap +// storage is used. +// +// These options can be summed. For example, to allow a matrix to be sparse +// or hypersparse, but not bitmap or full, use GxB_SPARSE + GxB_HYPERSPARSE. +// Since GxB_FULL can only be used when all entries are present, matrices with +// the just GxB_FULL control setting are stored in bitmap form if any entries +// are not present. +// +// Only the least 4 bits of the sparsity control are considered, so the +// formats can be bitwise negated. For example, to allow for any format +// except full, use ~GxB_FULL. +// +// GrB_get (A, &sparsity, GxB_SPARSITY_STATUS) returns the +// current data structure currently used for the matrix A (either hypersparse, +// sparse, bitmap, or full). +// +// GrB_get (A, &scontrol, GxB_SPARSITY_CONTROL) returns the hint +// for how A should be stored (hypersparse, sparse, bitmap, or full, or any +// combination). -// historical; use GrB_get instead: -GrB_Info GxB_Monoid_operator (GrB_BinaryOp *op, GrB_Monoid monoid) ; -GrB_Info GxB_Monoid_identity (void *identity, GrB_Monoid monoid) ; -GrB_Info GxB_Monoid_terminal (bool *, void *terminal, GrB_Monoid monoid) ; +// GxB_HYPER_SWITCH: +// If the matrix or vector structure can be sparse or hypersparse, the +// GxB_HYPER_SWITCH parameter controls when each of these structures are +// used. The parameter is not used if the matrix or vector is full or +// bitmap. +// +// Let k be the actual number of non-empty vectors (with at least one +// entry). This value k is not dependent on whether or not the matrix is +// stored in hypersparse structure. Let n be the number of vectors (the # +// of columns if CSC, or rows if CSR). Let h be the value of the +// GxB_HYPER_SWITCH setting of the matrix. +// +// If a matrix is currently hypersparse, it can be converted to +// non-hypersparse if (n <= 1 || k > 2*n*h). Otherwise it stays +// hypersparse. If (n <= 1) the matrix is always stored as +// non-hypersparse. +// +// If currently non-hypersparse, it can be converted to hypersparse if (n +// > 1 && k <= n*h). Otherwise, it stays non-hypersparse. If (n <= 1) +// the matrix always remains non-hypersparse. +// +// Setting GxB_HYPER_SWITCH to GxB_ALWAYS_HYPER or GxB_NEVER_HYPER ensures +// a matrix always stays hypersparse, or always stays non-hypersparse, +// respectively. -GrB_Info GrB_Monoid_free // free a user-created monoid -( - GrB_Monoid *monoid // handle of monoid to free -) ; +GB_GLOBAL const double GxB_ALWAYS_HYPER, GxB_NEVER_HYPER ; //============================================================================== -// GrB_Semiring +// GxB_Context: for managing computational resources //============================================================================== -typedef struct GB_Semiring_opaque *GrB_Semiring ; +typedef struct GB_Context_opaque *GxB_Context ; -GrB_Info GrB_Semiring_new // create a semiring -( - GrB_Semiring *semiring, // handle of semiring to create - GrB_Monoid add, // add monoid of the semiring - GrB_BinaryOp multiply // multiply operator of the semiring -) ; +// GxB_CONTEXT_WORLD is the default Context for all user threads. +GB_GLOBAL GxB_Context GxB_CONTEXT_WORLD ; -// historical; use GrB_get instead: -GrB_Info GxB_Semiring_add (GrB_Monoid *add, GrB_Semiring semiring) ; -GrB_Info GxB_Semiring_multiply (GrB_BinaryOp *multiply, GrB_Semiring semiring) ; +typedef enum +{ + GxB_CONTEXT_NTHREADS = GxB_NTHREADS, // max number of threads to use. + // If <= 0, then one thread is used. -GrB_Info GrB_Semiring_free // free a user-created semiring -( - GrB_Semiring *semiring // handle of semiring to free -) ; + GxB_CONTEXT_CHUNK = GxB_CHUNK, // chunk size for small problems. + // If < 1, then the default is used. + + // GPU control (DRAFT: in progress, do not use) + GxB_CONTEXT_GPU_ID = GxB_GPU_ID, +} +GxB_Context_Field ; //============================================================================== -// GrB_Scalar: a GraphBLAS scalar +// GrB_set and GrB_get //============================================================================== -typedef struct GB_Scalar_opaque *GxB_Scalar ; // historical: use GrB_Scalar -typedef struct GB_Scalar_opaque *GrB_Scalar ; // use this instead +typedef struct GB_Global_opaque *GrB_Global ; +GB_GLOBAL const GrB_Global GrB_GLOBAL ; -// These methods create, free, copy, and clear a GrB_Scalar. The nvals, -// and type methods return basic information about a GrB_Scalar. +typedef enum +{ -GrB_Info GrB_Scalar_new // create a new GrB_Scalar with no entry -( - GrB_Scalar *s, // handle of GrB_Scalar to create - GrB_Type type // type of GrB_Scalar to create -) ; + //-------------------------------------------------------------------------- + // GrB enums in the C API + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_dup // make an exact copy of a GrB_Scalar -( - GrB_Scalar *s, // handle of output GrB_Scalar to create - const GrB_Scalar t // input GrB_Scalar to copy -) ; + // GrB_Descriptor only: + GrB_OUTP_FIELD = 0, // descriptor for output of a method + GrB_MASK_FIELD = 1, // descriptor for the mask input of a method + GrB_INP0_FIELD = 2, // descriptor for the first input of a method + GrB_INP1_FIELD = 3, // descriptor for the second input of a method -GrB_Info GrB_Scalar_clear // clear a GrB_Scalar of its entry -( // type remains unchanged. - GrB_Scalar s // GrB_Scalar to clear -) ; + // all objects, including GrB_GLOBAL: + GrB_NAME = 10, // name of the object, as a string -GrB_Info GrB_Scalar_nvals // get the number of entries in a GrB_Scalar -( - GrB_Index *nvals, // GrB_Scalar has nvals entries (0 or 1) - const GrB_Scalar s // GrB_Scalar to query -) ; + // GrB_GLOBAL only: + GrB_LIBRARY_VER_MAJOR = 11, // SuiteSparse:GraphBLAS version + GrB_LIBRARY_VER_MINOR = 12, + GrB_LIBRARY_VER_PATCH = 13, + GrB_API_VER_MAJOR = 14, // C API version + GrB_API_VER_MINOR = 15, + GrB_API_VER_PATCH = 16, + GrB_BLOCKING_MODE = 17, // GrB_Mode -// historical; use GrB_get instead: -GrB_Info GxB_Scalar_type (GrB_Type *type, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_type_name (char *type_name, const GrB_Scalar s) ; + // GrB_GLOBAL, GrB_Matrix, GrB_Vector, GrB_Scalar: + GrB_STORAGE_ORIENTATION_HINT = 100, // GrB_Orientation -GrB_Info GxB_Scalar_memoryUsage // return # of bytes used for a scalar -( - size_t *size, // # of bytes used by the scalar s - const GrB_Scalar s // GrB_Scalar to query -) ; + // GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize): + GrB_EL_TYPE_CODE = 102, // a GrB_Type_Code (see below) + GrB_EL_TYPE_STRING = 106, // name of the type -GrB_Info GrB_Scalar_free // free a GrB_Scalar -( - GrB_Scalar *s // handle of GrB_Scalar to free -) ; + // GrB_*Op, GrB_Monoid, and GrB_Semiring: + GrB_INP0_TYPE_CODE = 103, // GrB_Type_Code + GrB_INP1_TYPE_CODE = 104, + GrB_OUTP_TYPE_CODE = 105, + GrB_INP0_TYPE_STRING = 107, // name of the type, as a string + GrB_INP1_TYPE_STRING = 108, + GrB_OUTP_TYPE_STRING = 109, -// historical names identical to GrB_Scalar_methods above: -GrB_Info GxB_Scalar_new (GrB_Scalar *s, GrB_Type type) ; -GrB_Info GxB_Scalar_dup (GrB_Scalar *s, const GrB_Scalar t) ; -GrB_Info GxB_Scalar_clear (GrB_Scalar s) ; -GrB_Info GxB_Scalar_nvals (GrB_Index *nvals, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_free (GrB_Scalar *s) ; + // GrB_Type (readable only): + GrB_SIZE = 110, // size of the type -//------------------------------------------------------------------------------ -// GrB_Scalar_setElement -//------------------------------------------------------------------------------ + //-------------------------------------------------------------------------- + // SuiteSparse extensions: + //-------------------------------------------------------------------------- -// Set a single GrB_Scalar s, from a user scalar x: s = x, typecasting from the -// type of x to the type of w as needed. + // GrB_Type, GrB_UnaryOp, GrB_BinaryOp, and GrB_IndexUnaryOp: + GxB_JIT_C_NAME = 7041, // C type or function name + GxB_JIT_C_DEFINITION = 7042, // C typedef or function definition -GrB_Info GrB_Scalar_setElement_BOOL // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - bool x // user scalar to assign to s -) ; + // GrB_Monoid and GrB_Semiring: + GxB_MONOID_IDENTITY = 7043, // monoid identity value + GxB_MONOID_TERMINAL = 7044, // monoid terminal value + GxB_MONOID_OPERATOR = 7045, // monoid binary operator -GrB_Info GrB_Scalar_setElement_INT8 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - int8_t x // user scalar to assign to s -) ; + // GrB_Semiring only: + GxB_SEMIRING_MONOID = 7046, // semiring monoid + GxB_SEMIRING_MULTIPLY = 7047, // semiring multiplicative op +} +GrB_Field ; -GrB_Info GrB_Scalar_setElement_UINT8 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - uint8_t x // user scalar to assign to s -) ; +typedef enum +{ + GrB_ROWMAJOR = 0, + GrB_COLMAJOR = 1, + GrB_BOTH = 2, + GrB_UNKNOWN = 3, +} +GrB_Orientation ; -GrB_Info GrB_Scalar_setElement_INT16 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - int16_t x // user scalar to assign to s -) ; +typedef enum +{ + GrB_UDT_CODE = 0, // user-defined type + GrB_BOOL_CODE = 1, // GraphBLAS: GrB_BOOL C: bool + GrB_INT8_CODE = 2, // GraphBLAS: GrB_INT8 C: int8_t + GrB_UINT8_CODE = 3, // GraphBLAS: GrB_UINT8 C: uint8_t + GrB_INT16_CODE = 4, // GraphBLAS: GrB_INT16 C: int16_t + GrB_UINT16_CODE = 5, // GraphBLAS: GrB_UINT16 C: uint16_t + GrB_INT32_CODE = 6, // GraphBLAS: GrB_INT32 C: int32_t + GrB_UINT32_CODE = 7, // GraphBLAS: GrB_UINT32 C: uint32_t + GrB_INT64_CODE = 8, // GraphBLAS: GrB_INT64 C: int64_t + GrB_UINT64_CODE = 9, // GraphBLAS: GrB_UINT64 C: uint64_t + GrB_FP32_CODE = 10, // GraphBLAS: GrB_FP32 C: float + GrB_FP64_CODE = 11, // GraphBLAS: GrB_FP64 C: double + GxB_FC32_CODE = 7070, // GraphBLAS: GxB_FC32 C: float complex + GxB_FC64_CODE = 7071, // GraphBLAS: GxB_FC64 C: double complex +} +GrB_Type_Code ; -GrB_Info GrB_Scalar_setElement_UINT16 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - uint16_t x // user scalar to assign to s -) ; +//============================================================================== +// GrB_wait: finish computations +//============================================================================== -GrB_Info GrB_Scalar_setElement_INT32 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - int32_t x // user scalar to assign to s -) ; +typedef enum +{ + GrB_COMPLETE = 0, // establishes a happens-before relation; work may + // remain to compute the object but this can now + // be done safely by any user thread. + GrB_MATERIALIZE = 1 // all work on the object is finished (also + // establishes a happens-before relation). The + // object can be safely be used as an input to a + // GraphBLAS method by multiple user threads at + // the same time. For example, the A or B matrices + // of GrB_mxm can be shared by 2 user threads, but + // their output matrices C must be different. +} +GrB_WaitMode ; -GrB_Info GrB_Scalar_setElement_UINT32 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - uint32_t x // user scalar to assign to s -) ; +//============================================================================== +// GrB_extract: extract a submatrix or subvector +//============================================================================== -GrB_Info GrB_Scalar_setElement_INT64 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - int64_t x // user scalar to assign to s -) ; +GB_GLOBAL const uint64_t *GrB_ALL ; -GrB_Info GrB_Scalar_setElement_UINT64 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - uint64_t x // user scalar to assign to s -) ; +// These special values of ni and nj can be used for GrB_assign, +// GrB_extract, and GxB_subassign. +#define GxB_RANGE (INT64_MAX) +#define GxB_STRIDE (INT64_MAX-1) +#define GxB_BACKWARDS (INT64_MAX-2) -GrB_Info GrB_Scalar_setElement_FP32 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - float x // user scalar to assign to s -) ; +// for the strided range begin:inc:end, I [GxB_BEGIN] is the value of begin, I +// [GxB_END] is the value end, I [GxB_INC] is the magnitude of the stride. If +// the stride is negative, use ni = GxB_BACKWARDS. +#define GxB_BEGIN (0) +#define GxB_END (1) +#define GxB_INC (2) -GrB_Info GrB_Scalar_setElement_FP64 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - double x // user scalar to assign to s -) ; +//============================================================================== +// GrB_Monoid: built-in monoids +//============================================================================== -GrB_Info GxB_Scalar_setElement_FC32 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - GxB_FC32_t x // user scalar to assign to s -) ; +GB_GLOBAL GrB_Monoid -GrB_Info GxB_Scalar_setElement_FC64 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - GxB_FC64_t x // user scalar to assign to s -) ; + //-------------------------------------------------------------------------- + // 10 MIN monoids: (not for complex types) + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_setElement_UDT // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - void *x // user scalar to assign to s -) ; + // GxB_MIN monoids, historical, use GrB_MIN_MONOID_* instead: + GxB_MIN_INT8_MONOID, // identity: INT8_MAX terminal: INT8_MIN + GxB_MIN_INT16_MONOID, // identity: INT16_MAX terminal: INT16_MIN + GxB_MIN_INT32_MONOID, // identity: INT32_MAX terminal: INT32_MIN + GxB_MIN_INT64_MONOID, // identity: INT64_MAX terminal: INT32_MIN + GxB_MIN_UINT8_MONOID, // identity: UINT8_MAX terminal: 0 + GxB_MIN_UINT16_MONOID, // identity: UINT16_MAX terminal: 0 + GxB_MIN_UINT32_MONOID, // identity: UINT32_MAX terminal: 0 + GxB_MIN_UINT64_MONOID, // identity: UINT64_MAX terminal: 0 + GxB_MIN_FP32_MONOID, // identity: INFINITY terminal: -INFINITY + GxB_MIN_FP64_MONOID, // identity: INFINITY terminal: -INFINITY -// historical names identical to GrB_Scalar_methods above: -GrB_Info GxB_Scalar_setElement_BOOL (GrB_Scalar s, bool x) ; -GrB_Info GxB_Scalar_setElement_INT8 (GrB_Scalar s, int8_t x) ; -GrB_Info GxB_Scalar_setElement_INT16 (GrB_Scalar s, int16_t x) ; -GrB_Info GxB_Scalar_setElement_INT32 (GrB_Scalar s, int32_t x) ; -GrB_Info GxB_Scalar_setElement_INT64 (GrB_Scalar s, int64_t x) ; -GrB_Info GxB_Scalar_setElement_UINT8 (GrB_Scalar s, uint8_t x) ; -GrB_Info GxB_Scalar_setElement_UINT16 (GrB_Scalar s, uint16_t x) ; -GrB_Info GxB_Scalar_setElement_UINT32 (GrB_Scalar s, uint32_t x) ; -GrB_Info GxB_Scalar_setElement_UINT64 (GrB_Scalar s, uint64_t x) ; -GrB_Info GxB_Scalar_setElement_FP32 (GrB_Scalar s, float x) ; -GrB_Info GxB_Scalar_setElement_FP64 (GrB_Scalar s, double x) ; -GrB_Info GxB_Scalar_setElement_UDT (GrB_Scalar s, void *x) ; + // preferred names from the v1.3 spec: + GrB_MIN_MONOID_INT8, // identity: INT8_MAX terminal: INT8_MIN + GrB_MIN_MONOID_INT16, // identity: INT16_MAX terminal: INT16_MIN + GrB_MIN_MONOID_INT32, // identity: INT32_MAX terminal: INT32_MIN + GrB_MIN_MONOID_INT64, // identity: INT64_MAX terminal: INT32_MIN + GrB_MIN_MONOID_UINT8, // identity: UINT8_MAX terminal: 0 + GrB_MIN_MONOID_UINT16, // identity: UINT16_MAX terminal: 0 + GrB_MIN_MONOID_UINT32, // identity: UINT32_MAX terminal: 0 + GrB_MIN_MONOID_UINT64, // identity: UINT64_MAX terminal: 0 + GrB_MIN_MONOID_FP32, // identity: INFINITY terminal: -INFINITY + GrB_MIN_MONOID_FP64, // identity: INFINITY terminal: -INFINITY -// Type-generic version: x can be any supported C type or void * for a -// user-defined type. + //-------------------------------------------------------------------------- + // 10 MAX monoids: + //-------------------------------------------------------------------------- -/* -GrB_Info GrB_Scalar_setElement // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - x // user scalar to assign to s -) ; -*/ - -#if GxB_STDC_VERSION >= 201112L -#define GrB_Scalar_setElement(s,x) \ - _Generic \ - ( \ - (x), \ - GB_CASES (GrB, Scalar_setElement) \ - ) \ - (s, x) + // GxB_MAX monoids, historical, use GrB_MAX_MONOID_* instead: + GxB_MAX_INT8_MONOID, // identity: INT8_MIN terminal: INT8_MAX + GxB_MAX_INT16_MONOID, // identity: INT16_MIN terminal: INT16_MAX + GxB_MAX_INT32_MONOID, // identity: INT32_MIN terminal: INT32_MAX + GxB_MAX_INT64_MONOID, // identity: INT64_MIN terminal: INT64_MAX + GxB_MAX_UINT8_MONOID, // identity: 0 terminal: UINT8_MAX + GxB_MAX_UINT16_MONOID, // identity: 0 terminal: UINT16_MAX + GxB_MAX_UINT32_MONOID, // identity: 0 terminal: UINT32_MAX + GxB_MAX_UINT64_MONOID, // identity: 0 terminal: UINT64_MAX + GxB_MAX_FP32_MONOID, // identity: -INFINITY terminal: INFINITY + GxB_MAX_FP64_MONOID, // identity: -INFINITY terminal: INFINITY -// historical; use GrB_Scalar_setElement instead: -#define GxB_Scalar_setElement(s,x) GrB_Scalar_setElement (s, x) -#endif + // preferred names from the v1.3 spec: + GrB_MAX_MONOID_INT8, // identity: INT8_MIN terminal: INT8_MAX + GrB_MAX_MONOID_INT16, // identity: INT16_MIN terminal: INT16_MAX + GrB_MAX_MONOID_INT32, // identity: INT32_MIN terminal: INT32_MAX + GrB_MAX_MONOID_INT64, // identity: INT64_MIN terminal: INT64_MAX + GrB_MAX_MONOID_UINT8, // identity: 0 terminal: UINT8_MAX + GrB_MAX_MONOID_UINT16, // identity: 0 terminal: UINT16_MAX + GrB_MAX_MONOID_UINT32, // identity: 0 terminal: UINT32_MAX + GrB_MAX_MONOID_UINT64, // identity: 0 terminal: UINT64_MAX + GrB_MAX_MONOID_FP32, // identity: -INFINITY terminal: INFINITY + GrB_MAX_MONOID_FP64, // identity: -INFINITY terminal: INFINITY -//------------------------------------------------------------------------------ -// GrB_Scalar_extractElement -//------------------------------------------------------------------------------ + //-------------------------------------------------------------------------- + // 12 PLUS monoids: + //-------------------------------------------------------------------------- -// Extract a single entry from a GrB_Scalar, x = s, typecasting from the type -// of s to the type of x as needed. + // GxB_PLUS monoids, historical, use GrB_PLUS_MONOID_* instead: + GxB_PLUS_INT8_MONOID, // identity: 0 + GxB_PLUS_INT16_MONOID, // identity: 0 + GxB_PLUS_INT32_MONOID, // identity: 0 + GxB_PLUS_INT64_MONOID, // identity: 0 + GxB_PLUS_UINT8_MONOID, // identity: 0 + GxB_PLUS_UINT16_MONOID, // identity: 0 + GxB_PLUS_UINT32_MONOID, // identity: 0 + GxB_PLUS_UINT64_MONOID, // identity: 0 + GxB_PLUS_FP32_MONOID, // identity: 0 + GxB_PLUS_FP64_MONOID, // identity: 0 -GrB_Info GrB_Scalar_extractElement_BOOL // x = s -( - bool *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // preferred names from the v1.3 spec: + GrB_PLUS_MONOID_INT8, // identity: 0 + GrB_PLUS_MONOID_INT16, // identity: 0 + GrB_PLUS_MONOID_INT32, // identity: 0 + GrB_PLUS_MONOID_INT64, // identity: 0 + GrB_PLUS_MONOID_UINT8, // identity: 0 + GrB_PLUS_MONOID_UINT16, // identity: 0 + GrB_PLUS_MONOID_UINT32, // identity: 0 + GrB_PLUS_MONOID_UINT64, // identity: 0 + GrB_PLUS_MONOID_FP32, // identity: 0 + GrB_PLUS_MONOID_FP64, // identity: 0 -GrB_Info GrB_Scalar_extractElement_INT8 // x = s -( - int8_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // complex monoids: + GxB_PLUS_FC32_MONOID, // identity: 0 + GxB_PLUS_FC64_MONOID, // identity: 0 -GrB_Info GrB_Scalar_extractElement_UINT8 // x = s -( - uint8_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + //-------------------------------------------------------------------------- + // 12 TIMES monoids: identity value is 1, int* and uint* are terminal + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_extractElement_INT16 // x = s -( - int16_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // GxB_TIMES monoids, historical, use GrB_TIMES_MONOID_* instead: + GxB_TIMES_INT8_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_INT16_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_INT32_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_INT64_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_UINT8_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_UINT16_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_UINT32_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_UINT64_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_FP32_MONOID, // identity: 1 + GxB_TIMES_FP64_MONOID, // identity: 1 -GrB_Info GrB_Scalar_extractElement_UINT16 // x = s -( - uint16_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // preferred names from the v1.3 spec: + GrB_TIMES_MONOID_INT8, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_INT16, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_INT32, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_INT64, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_UINT8, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_UINT16, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_UINT32, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_UINT64, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_FP32, // identity: 1 + GrB_TIMES_MONOID_FP64, // identity: 1 -GrB_Info GrB_Scalar_extractElement_INT32 // x = s -( - int32_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // complex monoids: + GxB_TIMES_FC32_MONOID, // identity: 1 + GxB_TIMES_FC64_MONOID, // identity: 1 -GrB_Info GrB_Scalar_extractElement_UINT32 // x = s -( - uint32_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + //-------------------------------------------------------------------------- + // 13 ANY monoids: + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_extractElement_INT64 // x = s -( - int64_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + GxB_ANY_BOOL_MONOID, // identity: any value terminal: any value + GxB_ANY_INT8_MONOID, // identity: any value terminal: any value + GxB_ANY_INT16_MONOID, // identity: any value terminal: any value + GxB_ANY_INT32_MONOID, // identity: any value terminal: any value + GxB_ANY_INT64_MONOID, // identity: any value terminal: any value + GxB_ANY_UINT8_MONOID, // identity: any value terminal: any value + GxB_ANY_UINT16_MONOID, // identity: any value terminal: any value + GxB_ANY_UINT32_MONOID, // identity: any value terminal: any value + GxB_ANY_UINT64_MONOID, // identity: any value terminal: any value + GxB_ANY_FP32_MONOID, // identity: any value terminal: any value + GxB_ANY_FP64_MONOID, // identity: any value terminal: any value + GxB_ANY_FC32_MONOID, // identity: any value terminal: any value + GxB_ANY_FC64_MONOID, // identity: any value terminal: any value -GrB_Info GrB_Scalar_extractElement_UINT64 // x = s -( - uint64_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + //-------------------------------------------------------------------------- + // 4 Boolean monoids: (see also the GxB_ANY_BOOL_MONOID above) + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_extractElement_FP32 // x = s -( - float *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // GxB_* boolean monoids, historical, use GrB_* instead: + GxB_LOR_BOOL_MONOID, // identity: false terminal: true + GxB_LAND_BOOL_MONOID, // identity: true terminal: false + GxB_LXOR_BOOL_MONOID, // identity: false + GxB_LXNOR_BOOL_MONOID, // identity: true + GxB_EQ_BOOL_MONOID, // (another name for GrB_LXNOR_MONOID_BOOL) -GrB_Info GrB_Scalar_extractElement_FP64 // x = s -( - double *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // preferred names from the v1.3 spec: + GrB_LOR_MONOID_BOOL, // identity: false terminal: true + GrB_LAND_MONOID_BOOL, // identity: true terminal: false + GrB_LXOR_MONOID_BOOL, // identity: false + GrB_LXNOR_MONOID_BOOL, // identity: true -GrB_Info GxB_Scalar_extractElement_FC32 // x = s -( - GxB_FC32_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + //-------------------------------------------------------------------------- + // 16 Bitwise-or monoids: + //-------------------------------------------------------------------------- -GrB_Info GxB_Scalar_extractElement_FC64 // x = s -( - GxB_FC64_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // BOR monoids (bitwise or): + GxB_BOR_UINT8_MONOID, // identity: 0 terminal: 0xFF + GxB_BOR_UINT16_MONOID, // identity: 0 terminal: 0xFFFF + GxB_BOR_UINT32_MONOID, // identity: 0 terminal: 0xFFFFFFFF + GxB_BOR_UINT64_MONOID, // identity: 0 terminal: 0xFFFFFFFFFFFFFFFF -GrB_Info GrB_Scalar_extractElement_UDT // x = s -( - void *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // BAND monoids (bitwise and): + GxB_BAND_UINT8_MONOID, // identity: 0xFF terminal: 0 + GxB_BAND_UINT16_MONOID, // identity: 0xFFFF terminal: 0 + GxB_BAND_UINT32_MONOID, // identity: 0xFFFFFFFF terminal: 0 + GxB_BAND_UINT64_MONOID, // identity: 0xFFFFFFFFFFFFFFFF terminal: 0 -// historical names identical to GrB_Scalar_methods above: -GrB_Info GxB_Scalar_extractElement_BOOL (bool *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_INT8 (int8_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_INT16 (int16_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_INT32 (int32_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_INT64 (int64_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UINT8 (uint8_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UINT16 (uint16_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UINT32 (uint32_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UINT64 (uint64_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_FP32 (float *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_FP64 (double *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UDT (void *x, const GrB_Scalar s) ; + // BXOR monoids (bitwise xor): + GxB_BXOR_UINT8_MONOID, // identity: 0 + GxB_BXOR_UINT16_MONOID, // identity: 0 + GxB_BXOR_UINT32_MONOID, // identity: 0 + GxB_BXOR_UINT64_MONOID, // identity: 0 -// Type-generic version: x can be a pointer to any supported C type or void * -// for a user-defined type. + // BXNOR monoids (bitwise xnor): + GxB_BXNOR_UINT8_MONOID, // identity: 0xFF + GxB_BXNOR_UINT16_MONOID, // identity: 0xFFFF + GxB_BXNOR_UINT32_MONOID, // identity: 0xFFFFFFFF + GxB_BXNOR_UINT64_MONOID ; // identity: 0xFFFFFFFFFFFFFFFF -/* +//============================================================================== +// GrB_Semiring: built-in semirings +//============================================================================== -GrB_Info GrB_Scalar_extractElement // x = s -( - *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; +// Using built-in types and operators, SuiteSparse:GraphBLAS provides +// 1553 pre-defined, built-in semirings: -*/ +// 1000 semirings with a multiply operator TxT -> T where T is non-Boolean, +// from the complete cross product of: -#if GxB_STDC_VERSION >= 201112L -#define GrB_Scalar_extractElement(x,s) \ - _Generic \ - ( \ - (x), \ - GB_PCASES (GrB, Scalar_extractElement) \ - ) \ - (x, s) +// 5 monoids: MIN, MAX, PLUS, TIMES, ANY +// 20 multiply operators: +// FIRST, SECOND, PAIR (=ONEB), MIN, MAX, PLUS, MINUS, TIMES, DIV, +// RDIV, RMINUS +// ISEQ, ISNE, ISGT, ISLT, ISGE, ISLE, +// LOR, LAND, LXOR +// 10 non-Boolean real types, T +// +// Note that min_pair, max_pair, times_pair are all identical to any_pair. +// These 30 semirings are named below, but are internally remapped to +// their corresponding any_pair semiring. -// historical; use GrB_Scalar_extractElement instead: -#define GxB_Scalar_extractElement(x,s) GrB_Scalar_extractElement (x, s) -#endif +// 300 semirings with a comparator TxT -> bool, where T is +// non-Boolean, from the complete cross product of: -//============================================================================== -// GrB_Vector: a GraphBLAS vector -//============================================================================== +// 5 Boolean monoids: LAND, LOR, LXOR, EQ (=LXNOR), ANY +// 6 multiply operators: EQ, NE, GT, LT, GE, LE +// 10 non-Boolean real types, T -typedef struct GB_Vector_opaque *GrB_Vector ; +// 55 semirings with purely Boolean types, bool x bool -> bool, from the +// complete cross product of: -// These methods create, free, copy, and clear a vector. The size, nvals, -// and type methods return basic information about a vector. +// 5 Boolean monoids LAND, LOR, LXOR, EQ (=LXNOR), ANY +// 11 multiply operators: +// FIRST, SECOND, LOR, LAND, LXOR, EQ (=LXNOR), GT, LT, GE, LE, +// PAIR (=ONEB) +// +// Note that lor_pair, land_pair, and eq_pair are all identical to +// any_pair. These 3 semirings are named below, but are internally +// remapped to any_pair_bool semiring. -GrB_Info GrB_Vector_new // create a new vector with no entries -( - GrB_Vector *v, // handle of vector to create - GrB_Type type, // type of vector to create - GrB_Index n // vector dimension is n-by-1 - // (n must be <= GrB_INDEX_MAX+1) -) ; +// 54 complex semirings: TxT -> T where T is float complex or double complex: -GrB_Info GrB_Vector_dup // make an exact copy of a vector -( - GrB_Vector *w, // handle of output vector to create - const GrB_Vector u // input vector to copy -) ; +// 3 complex monoids: PLUS, TIMES, ANY +// 9 complex multiply operators: +// FIRST, SECOND, PAIR (=ONEB), PLUS, MINUS, TIMES, DIV, RDIV, RMINUS +// 2 complex types +// +// Note that times_pair is identical to any_pair. +// These 2 semirings are named below, but are internally remapped to +// their corresponding any_pair semiring. -GrB_Info GrB_Vector_clear // clear a vector of all entries; -( // type and dimension remain unchanged. - GrB_Vector v // vector to clear -) ; +// 64 bitwise semirings: TxT -> T where T is an unsigned integer: -GrB_Info GrB_Vector_size // get the dimension of a vector -( - GrB_Index *n, // vector dimension is n-by-1 - const GrB_Vector v // vector to query -) ; +// 4 bitwise monoids: BOR, BAND, BXOR, BXNOR +// 4 bitwise multiply operators: BOR, BAND, BXOR, BXNOR +// 4 unsigned integer types: UINT8, UINT16, UINT32, UINT64 -GrB_Info GrB_Vector_nvals // get the number of entries in a vector -( - GrB_Index *nvals, // vector has nvals entries - const GrB_Vector v // vector to query -) ; +// 80 positional semirings: XxX -> T where T is int64 or int32, and the type of +// X is ignored: -// historical; use GrB_get instead: -GrB_Info GxB_Vector_type (GrB_Type *type, const GrB_Vector v) ; -GrB_Info GxB_Vector_type_name (char *type_name, const GrB_Vector v) ; +// 5 monoids: MIN, MAX, PLUS, TIMES, ANY +// 8 multiply operators: +// FIRSTI, FIRSTI1, FIRSTJ, FIRSTJ1, +// SECONDI, SECONDI1, SECONDJ, SECONDJ1 +// 2 types: int32, int64 -GrB_Info GxB_Vector_memoryUsage // return # of bytes used for a vector -( - size_t *size, // # of bytes used by the vector v - const GrB_Vector v // vector to query -) ; +// The ANY operator is also valid to use as a multiplicative operator in a +// semiring, but serves no purpose in that case. The ANY operator is meant as +// a fast additive operator for a monoid, that terminates, or short-circuits, +// as soon as any value is found. A valid user semiring can be constructed +// with ANY as the multiply operator, but they are not predefined below. -GrB_Info GxB_Vector_iso // return iso status of a vector -( - bool *iso, // true if the vector is iso-valued - const GrB_Vector v // vector to query -) ; +// Likewise, additional built-in operators can be used as multiplicative +// operators for floating-point semirings (POW, ATAN2, HYPOT, ...) and many +// more semirings can be constructed from bitwise monoids and many integer +// binary (non-bitwise) multiplicative operators, but these are not +// pre-defined. -GrB_Info GrB_Vector_free // free a vector -( - GrB_Vector *v // handle of vector to free -) ; +// In the names below, each semiring has a name of the form GxB_add_mult_T +// where add is the additive monoid, mult is the multiply operator, and T is +// the type. The type T is always the type of x and y for the z=mult(x,y) +// operator. The monoid's three types and the ztype of the mult operator are +// always the same. This is the type T for the first set, and Boolean for +// the second and third sets of semirngs. + +// 1553 = 1000 + 300 + 55 + 54 + 64 + 80 semirings are named below, but 35 = 30 +// + 3 + 2 are identical to the corresponding any_pair semirings of the same +// type. For positional semirings, the mulitiply ops FIRSTJ and SECONDI are +// identical, as are FIRSTJ1 and SECONDI1. These semirings still appear as +// predefined, for convenience. + +GB_GLOBAL GrB_Semiring //------------------------------------------------------------------------------ -// GrB_Vector_build +// 1000 non-Boolean semirings where all types are the same, given by suffix _T //------------------------------------------------------------------------------ -// GrB_Vector_build: w = sparse (I,1,X), but using any -// associative operator to assemble duplicate entries. + // semirings with multiply op: z = FIRST (x,y), all types x,y,z the same: + GxB_MIN_FIRST_INT8 , GxB_MAX_FIRST_INT8 , GxB_PLUS_FIRST_INT8 , GxB_TIMES_FIRST_INT8 , GxB_ANY_FIRST_INT8 , + GxB_MIN_FIRST_INT16 , GxB_MAX_FIRST_INT16 , GxB_PLUS_FIRST_INT16 , GxB_TIMES_FIRST_INT16 , GxB_ANY_FIRST_INT16 , + GxB_MIN_FIRST_INT32 , GxB_MAX_FIRST_INT32 , GxB_PLUS_FIRST_INT32 , GxB_TIMES_FIRST_INT32 , GxB_ANY_FIRST_INT32 , + GxB_MIN_FIRST_INT64 , GxB_MAX_FIRST_INT64 , GxB_PLUS_FIRST_INT64 , GxB_TIMES_FIRST_INT64 , GxB_ANY_FIRST_INT64 , + GxB_MIN_FIRST_UINT8 , GxB_MAX_FIRST_UINT8 , GxB_PLUS_FIRST_UINT8 , GxB_TIMES_FIRST_UINT8 , GxB_ANY_FIRST_UINT8 , + GxB_MIN_FIRST_UINT16 , GxB_MAX_FIRST_UINT16 , GxB_PLUS_FIRST_UINT16 , GxB_TIMES_FIRST_UINT16 , GxB_ANY_FIRST_UINT16 , + GxB_MIN_FIRST_UINT32 , GxB_MAX_FIRST_UINT32 , GxB_PLUS_FIRST_UINT32 , GxB_TIMES_FIRST_UINT32 , GxB_ANY_FIRST_UINT32 , + GxB_MIN_FIRST_UINT64 , GxB_MAX_FIRST_UINT64 , GxB_PLUS_FIRST_UINT64 , GxB_TIMES_FIRST_UINT64 , GxB_ANY_FIRST_UINT64 , + GxB_MIN_FIRST_FP32 , GxB_MAX_FIRST_FP32 , GxB_PLUS_FIRST_FP32 , GxB_TIMES_FIRST_FP32 , GxB_ANY_FIRST_FP32 , + GxB_MIN_FIRST_FP64 , GxB_MAX_FIRST_FP64 , GxB_PLUS_FIRST_FP64 , GxB_TIMES_FIRST_FP64 , GxB_ANY_FIRST_FP64 , -GrB_Info GrB_Vector_build_BOOL // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const bool *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = SECOND (x,y), all types x,y,z the same: + GxB_MIN_SECOND_INT8 , GxB_MAX_SECOND_INT8 , GxB_PLUS_SECOND_INT8 , GxB_TIMES_SECOND_INT8 , GxB_ANY_SECOND_INT8 , + GxB_MIN_SECOND_INT16 , GxB_MAX_SECOND_INT16 , GxB_PLUS_SECOND_INT16 , GxB_TIMES_SECOND_INT16 , GxB_ANY_SECOND_INT16 , + GxB_MIN_SECOND_INT32 , GxB_MAX_SECOND_INT32 , GxB_PLUS_SECOND_INT32 , GxB_TIMES_SECOND_INT32 , GxB_ANY_SECOND_INT32 , + GxB_MIN_SECOND_INT64 , GxB_MAX_SECOND_INT64 , GxB_PLUS_SECOND_INT64 , GxB_TIMES_SECOND_INT64 , GxB_ANY_SECOND_INT64 , + GxB_MIN_SECOND_UINT8 , GxB_MAX_SECOND_UINT8 , GxB_PLUS_SECOND_UINT8 , GxB_TIMES_SECOND_UINT8 , GxB_ANY_SECOND_UINT8 , + GxB_MIN_SECOND_UINT16 , GxB_MAX_SECOND_UINT16 , GxB_PLUS_SECOND_UINT16 , GxB_TIMES_SECOND_UINT16, GxB_ANY_SECOND_UINT16 , + GxB_MIN_SECOND_UINT32 , GxB_MAX_SECOND_UINT32 , GxB_PLUS_SECOND_UINT32 , GxB_TIMES_SECOND_UINT32, GxB_ANY_SECOND_UINT32 , + GxB_MIN_SECOND_UINT64 , GxB_MAX_SECOND_UINT64 , GxB_PLUS_SECOND_UINT64 , GxB_TIMES_SECOND_UINT64, GxB_ANY_SECOND_UINT64 , + GxB_MIN_SECOND_FP32 , GxB_MAX_SECOND_FP32 , GxB_PLUS_SECOND_FP32 , GxB_TIMES_SECOND_FP32 , GxB_ANY_SECOND_FP32 , + GxB_MIN_SECOND_FP64 , GxB_MAX_SECOND_FP64 , GxB_PLUS_SECOND_FP64 , GxB_TIMES_SECOND_FP64 , GxB_ANY_SECOND_FP64 , -GrB_Info GrB_Vector_build_INT8 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const int8_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = PAIR (x,y), all types x,y,z the same: + // (note that min_pair, max_pair, times_pair are all identical to any_pair, and are marked below) + GxB_MIN_PAIR_INT8 /**/, GxB_MAX_PAIR_INT8 /**/, GxB_PLUS_PAIR_INT8 , GxB_TIMES_PAIR_INT8 /**/, GxB_ANY_PAIR_INT8 , + GxB_MIN_PAIR_INT16 /**/, GxB_MAX_PAIR_INT16 /**/, GxB_PLUS_PAIR_INT16 , GxB_TIMES_PAIR_INT16 /**/, GxB_ANY_PAIR_INT16 , + GxB_MIN_PAIR_INT32 /**/, GxB_MAX_PAIR_INT32 /**/, GxB_PLUS_PAIR_INT32 , GxB_TIMES_PAIR_INT32 /**/, GxB_ANY_PAIR_INT32 , + GxB_MIN_PAIR_INT64 /**/, GxB_MAX_PAIR_INT64 /**/, GxB_PLUS_PAIR_INT64 , GxB_TIMES_PAIR_INT64 /**/, GxB_ANY_PAIR_INT64 , + GxB_MIN_PAIR_UINT8 /**/, GxB_MAX_PAIR_UINT8 /**/, GxB_PLUS_PAIR_UINT8 , GxB_TIMES_PAIR_UINT8 /**/, GxB_ANY_PAIR_UINT8 , + GxB_MIN_PAIR_UINT16/**/, GxB_MAX_PAIR_UINT16/**/, GxB_PLUS_PAIR_UINT16 , GxB_TIMES_PAIR_UINT16/**/, GxB_ANY_PAIR_UINT16 , + GxB_MIN_PAIR_UINT32/**/, GxB_MAX_PAIR_UINT32/**/, GxB_PLUS_PAIR_UINT32 , GxB_TIMES_PAIR_UINT32/**/, GxB_ANY_PAIR_UINT32 , + GxB_MIN_PAIR_UINT64/**/, GxB_MAX_PAIR_UINT64/**/, GxB_PLUS_PAIR_UINT64 , GxB_TIMES_PAIR_UINT64/**/, GxB_ANY_PAIR_UINT64 , + GxB_MIN_PAIR_FP32 /**/, GxB_MAX_PAIR_FP32 /**/, GxB_PLUS_PAIR_FP32 , GxB_TIMES_PAIR_FP32 /**/, GxB_ANY_PAIR_FP32 , + GxB_MIN_PAIR_FP64 /**/, GxB_MAX_PAIR_FP64 /**/, GxB_PLUS_PAIR_FP64 , GxB_TIMES_PAIR_FP64 /**/, GxB_ANY_PAIR_FP64 , -GrB_Info GrB_Vector_build_UINT8 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const uint8_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = MIN (x,y), all types x,y,z the same: + GxB_MIN_MIN_INT8 , GxB_MAX_MIN_INT8 , GxB_PLUS_MIN_INT8 , GxB_TIMES_MIN_INT8 , GxB_ANY_MIN_INT8 , + GxB_MIN_MIN_INT16 , GxB_MAX_MIN_INT16 , GxB_PLUS_MIN_INT16 , GxB_TIMES_MIN_INT16 , GxB_ANY_MIN_INT16 , + GxB_MIN_MIN_INT32 , GxB_MAX_MIN_INT32 , GxB_PLUS_MIN_INT32 , GxB_TIMES_MIN_INT32 , GxB_ANY_MIN_INT32 , + GxB_MIN_MIN_INT64 , GxB_MAX_MIN_INT64 , GxB_PLUS_MIN_INT64 , GxB_TIMES_MIN_INT64 , GxB_ANY_MIN_INT64 , + GxB_MIN_MIN_UINT8 , GxB_MAX_MIN_UINT8 , GxB_PLUS_MIN_UINT8 , GxB_TIMES_MIN_UINT8 , GxB_ANY_MIN_UINT8 , + GxB_MIN_MIN_UINT16 , GxB_MAX_MIN_UINT16 , GxB_PLUS_MIN_UINT16 , GxB_TIMES_MIN_UINT16 , GxB_ANY_MIN_UINT16 , + GxB_MIN_MIN_UINT32 , GxB_MAX_MIN_UINT32 , GxB_PLUS_MIN_UINT32 , GxB_TIMES_MIN_UINT32 , GxB_ANY_MIN_UINT32 , + GxB_MIN_MIN_UINT64 , GxB_MAX_MIN_UINT64 , GxB_PLUS_MIN_UINT64 , GxB_TIMES_MIN_UINT64 , GxB_ANY_MIN_UINT64 , + GxB_MIN_MIN_FP32 , GxB_MAX_MIN_FP32 , GxB_PLUS_MIN_FP32 , GxB_TIMES_MIN_FP32 , GxB_ANY_MIN_FP32 , + GxB_MIN_MIN_FP64 , GxB_MAX_MIN_FP64 , GxB_PLUS_MIN_FP64 , GxB_TIMES_MIN_FP64 , GxB_ANY_MIN_FP64 , -GrB_Info GrB_Vector_build_INT16 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const int16_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = MAX (x,y), all types x,y,z the same: + GxB_MIN_MAX_INT8 , GxB_MAX_MAX_INT8 , GxB_PLUS_MAX_INT8 , GxB_TIMES_MAX_INT8 , GxB_ANY_MAX_INT8 , + GxB_MIN_MAX_INT16 , GxB_MAX_MAX_INT16 , GxB_PLUS_MAX_INT16 , GxB_TIMES_MAX_INT16 , GxB_ANY_MAX_INT16 , + GxB_MIN_MAX_INT32 , GxB_MAX_MAX_INT32 , GxB_PLUS_MAX_INT32 , GxB_TIMES_MAX_INT32 , GxB_ANY_MAX_INT32 , + GxB_MIN_MAX_INT64 , GxB_MAX_MAX_INT64 , GxB_PLUS_MAX_INT64 , GxB_TIMES_MAX_INT64 , GxB_ANY_MAX_INT64 , + GxB_MIN_MAX_UINT8 , GxB_MAX_MAX_UINT8 , GxB_PLUS_MAX_UINT8 , GxB_TIMES_MAX_UINT8 , GxB_ANY_MAX_UINT8 , + GxB_MIN_MAX_UINT16 , GxB_MAX_MAX_UINT16 , GxB_PLUS_MAX_UINT16 , GxB_TIMES_MAX_UINT16 , GxB_ANY_MAX_UINT16 , + GxB_MIN_MAX_UINT32 , GxB_MAX_MAX_UINT32 , GxB_PLUS_MAX_UINT32 , GxB_TIMES_MAX_UINT32 , GxB_ANY_MAX_UINT32 , + GxB_MIN_MAX_UINT64 , GxB_MAX_MAX_UINT64 , GxB_PLUS_MAX_UINT64 , GxB_TIMES_MAX_UINT64 , GxB_ANY_MAX_UINT64 , + GxB_MIN_MAX_FP32 , GxB_MAX_MAX_FP32 , GxB_PLUS_MAX_FP32 , GxB_TIMES_MAX_FP32 , GxB_ANY_MAX_FP32 , + GxB_MIN_MAX_FP64 , GxB_MAX_MAX_FP64 , GxB_PLUS_MAX_FP64 , GxB_TIMES_MAX_FP64 , GxB_ANY_MAX_FP64 , -GrB_Info GrB_Vector_build_UINT16 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const uint16_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = PLUS (x,y), all types x,y,z the same: + GxB_MIN_PLUS_INT8 , GxB_MAX_PLUS_INT8 , GxB_PLUS_PLUS_INT8 , GxB_TIMES_PLUS_INT8 , GxB_ANY_PLUS_INT8 , + GxB_MIN_PLUS_INT16 , GxB_MAX_PLUS_INT16 , GxB_PLUS_PLUS_INT16 , GxB_TIMES_PLUS_INT16 , GxB_ANY_PLUS_INT16 , + GxB_MIN_PLUS_INT32 , GxB_MAX_PLUS_INT32 , GxB_PLUS_PLUS_INT32 , GxB_TIMES_PLUS_INT32 , GxB_ANY_PLUS_INT32 , + GxB_MIN_PLUS_INT64 , GxB_MAX_PLUS_INT64 , GxB_PLUS_PLUS_INT64 , GxB_TIMES_PLUS_INT64 , GxB_ANY_PLUS_INT64 , + GxB_MIN_PLUS_UINT8 , GxB_MAX_PLUS_UINT8 , GxB_PLUS_PLUS_UINT8 , GxB_TIMES_PLUS_UINT8 , GxB_ANY_PLUS_UINT8 , + GxB_MIN_PLUS_UINT16 , GxB_MAX_PLUS_UINT16 , GxB_PLUS_PLUS_UINT16 , GxB_TIMES_PLUS_UINT16 , GxB_ANY_PLUS_UINT16 , + GxB_MIN_PLUS_UINT32 , GxB_MAX_PLUS_UINT32 , GxB_PLUS_PLUS_UINT32 , GxB_TIMES_PLUS_UINT32 , GxB_ANY_PLUS_UINT32 , + GxB_MIN_PLUS_UINT64 , GxB_MAX_PLUS_UINT64 , GxB_PLUS_PLUS_UINT64 , GxB_TIMES_PLUS_UINT64 , GxB_ANY_PLUS_UINT64 , + GxB_MIN_PLUS_FP32 , GxB_MAX_PLUS_FP32 , GxB_PLUS_PLUS_FP32 , GxB_TIMES_PLUS_FP32 , GxB_ANY_PLUS_FP32 , + GxB_MIN_PLUS_FP64 , GxB_MAX_PLUS_FP64 , GxB_PLUS_PLUS_FP64 , GxB_TIMES_PLUS_FP64 , GxB_ANY_PLUS_FP64 , -GrB_Info GrB_Vector_build_INT32 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const int32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = MINUS (x,y), all types x,y,z the same: + GxB_MIN_MINUS_INT8 , GxB_MAX_MINUS_INT8 , GxB_PLUS_MINUS_INT8 , GxB_TIMES_MINUS_INT8 , GxB_ANY_MINUS_INT8 , + GxB_MIN_MINUS_INT16 , GxB_MAX_MINUS_INT16 , GxB_PLUS_MINUS_INT16 , GxB_TIMES_MINUS_INT16 , GxB_ANY_MINUS_INT16 , + GxB_MIN_MINUS_INT32 , GxB_MAX_MINUS_INT32 , GxB_PLUS_MINUS_INT32 , GxB_TIMES_MINUS_INT32 , GxB_ANY_MINUS_INT32 , + GxB_MIN_MINUS_INT64 , GxB_MAX_MINUS_INT64 , GxB_PLUS_MINUS_INT64 , GxB_TIMES_MINUS_INT64 , GxB_ANY_MINUS_INT64 , + GxB_MIN_MINUS_UINT8 , GxB_MAX_MINUS_UINT8 , GxB_PLUS_MINUS_UINT8 , GxB_TIMES_MINUS_UINT8 , GxB_ANY_MINUS_UINT8 , + GxB_MIN_MINUS_UINT16 , GxB_MAX_MINUS_UINT16 , GxB_PLUS_MINUS_UINT16 , GxB_TIMES_MINUS_UINT16 , GxB_ANY_MINUS_UINT16 , + GxB_MIN_MINUS_UINT32 , GxB_MAX_MINUS_UINT32 , GxB_PLUS_MINUS_UINT32 , GxB_TIMES_MINUS_UINT32 , GxB_ANY_MINUS_UINT32 , + GxB_MIN_MINUS_UINT64 , GxB_MAX_MINUS_UINT64 , GxB_PLUS_MINUS_UINT64 , GxB_TIMES_MINUS_UINT64 , GxB_ANY_MINUS_UINT64 , + GxB_MIN_MINUS_FP32 , GxB_MAX_MINUS_FP32 , GxB_PLUS_MINUS_FP32 , GxB_TIMES_MINUS_FP32 , GxB_ANY_MINUS_FP32 , + GxB_MIN_MINUS_FP64 , GxB_MAX_MINUS_FP64 , GxB_PLUS_MINUS_FP64 , GxB_TIMES_MINUS_FP64 , GxB_ANY_MINUS_FP64 , -GrB_Info GrB_Vector_build_UINT32 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const uint32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = TIMES (x,y), all types x,y,z the same: + GxB_MIN_TIMES_INT8 , GxB_MAX_TIMES_INT8 , GxB_PLUS_TIMES_INT8 , GxB_TIMES_TIMES_INT8 , GxB_ANY_TIMES_INT8 , + GxB_MIN_TIMES_INT16 , GxB_MAX_TIMES_INT16 , GxB_PLUS_TIMES_INT16 , GxB_TIMES_TIMES_INT16 , GxB_ANY_TIMES_INT16 , + GxB_MIN_TIMES_INT32 , GxB_MAX_TIMES_INT32 , GxB_PLUS_TIMES_INT32 , GxB_TIMES_TIMES_INT32 , GxB_ANY_TIMES_INT32 , + GxB_MIN_TIMES_INT64 , GxB_MAX_TIMES_INT64 , GxB_PLUS_TIMES_INT64 , GxB_TIMES_TIMES_INT64 , GxB_ANY_TIMES_INT64 , + GxB_MIN_TIMES_UINT8 , GxB_MAX_TIMES_UINT8 , GxB_PLUS_TIMES_UINT8 , GxB_TIMES_TIMES_UINT8 , GxB_ANY_TIMES_UINT8 , + GxB_MIN_TIMES_UINT16 , GxB_MAX_TIMES_UINT16 , GxB_PLUS_TIMES_UINT16 , GxB_TIMES_TIMES_UINT16 , GxB_ANY_TIMES_UINT16 , + GxB_MIN_TIMES_UINT32 , GxB_MAX_TIMES_UINT32 , GxB_PLUS_TIMES_UINT32 , GxB_TIMES_TIMES_UINT32 , GxB_ANY_TIMES_UINT32 , + GxB_MIN_TIMES_UINT64 , GxB_MAX_TIMES_UINT64 , GxB_PLUS_TIMES_UINT64 , GxB_TIMES_TIMES_UINT64 , GxB_ANY_TIMES_UINT64 , + GxB_MIN_TIMES_FP32 , GxB_MAX_TIMES_FP32 , GxB_PLUS_TIMES_FP32 , GxB_TIMES_TIMES_FP32 , GxB_ANY_TIMES_FP32 , + GxB_MIN_TIMES_FP64 , GxB_MAX_TIMES_FP64 , GxB_PLUS_TIMES_FP64 , GxB_TIMES_TIMES_FP64 , GxB_ANY_TIMES_FP64 , -GrB_Info GrB_Vector_build_INT64 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const int64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = DIV (x,y), all types x,y,z the same: + GxB_MIN_DIV_INT8 , GxB_MAX_DIV_INT8 , GxB_PLUS_DIV_INT8 , GxB_TIMES_DIV_INT8 , GxB_ANY_DIV_INT8 , + GxB_MIN_DIV_INT16 , GxB_MAX_DIV_INT16 , GxB_PLUS_DIV_INT16 , GxB_TIMES_DIV_INT16 , GxB_ANY_DIV_INT16 , + GxB_MIN_DIV_INT32 , GxB_MAX_DIV_INT32 , GxB_PLUS_DIV_INT32 , GxB_TIMES_DIV_INT32 , GxB_ANY_DIV_INT32 , + GxB_MIN_DIV_INT64 , GxB_MAX_DIV_INT64 , GxB_PLUS_DIV_INT64 , GxB_TIMES_DIV_INT64 , GxB_ANY_DIV_INT64 , + GxB_MIN_DIV_UINT8 , GxB_MAX_DIV_UINT8 , GxB_PLUS_DIV_UINT8 , GxB_TIMES_DIV_UINT8 , GxB_ANY_DIV_UINT8 , + GxB_MIN_DIV_UINT16 , GxB_MAX_DIV_UINT16 , GxB_PLUS_DIV_UINT16 , GxB_TIMES_DIV_UINT16 , GxB_ANY_DIV_UINT16 , + GxB_MIN_DIV_UINT32 , GxB_MAX_DIV_UINT32 , GxB_PLUS_DIV_UINT32 , GxB_TIMES_DIV_UINT32 , GxB_ANY_DIV_UINT32 , + GxB_MIN_DIV_UINT64 , GxB_MAX_DIV_UINT64 , GxB_PLUS_DIV_UINT64 , GxB_TIMES_DIV_UINT64 , GxB_ANY_DIV_UINT64 , + GxB_MIN_DIV_FP32 , GxB_MAX_DIV_FP32 , GxB_PLUS_DIV_FP32 , GxB_TIMES_DIV_FP32 , GxB_ANY_DIV_FP32 , + GxB_MIN_DIV_FP64 , GxB_MAX_DIV_FP64 , GxB_PLUS_DIV_FP64 , GxB_TIMES_DIV_FP64 , GxB_ANY_DIV_FP64 , -GrB_Info GrB_Vector_build_UINT64 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const uint64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = RDIV (x,y), all types x,y,z the same: + GxB_MIN_RDIV_INT8 , GxB_MAX_RDIV_INT8 , GxB_PLUS_RDIV_INT8 , GxB_TIMES_RDIV_INT8 , GxB_ANY_RDIV_INT8 , + GxB_MIN_RDIV_INT16 , GxB_MAX_RDIV_INT16 , GxB_PLUS_RDIV_INT16 , GxB_TIMES_RDIV_INT16 , GxB_ANY_RDIV_INT16 , + GxB_MIN_RDIV_INT32 , GxB_MAX_RDIV_INT32 , GxB_PLUS_RDIV_INT32 , GxB_TIMES_RDIV_INT32 , GxB_ANY_RDIV_INT32 , + GxB_MIN_RDIV_INT64 , GxB_MAX_RDIV_INT64 , GxB_PLUS_RDIV_INT64 , GxB_TIMES_RDIV_INT64 , GxB_ANY_RDIV_INT64 , + GxB_MIN_RDIV_UINT8 , GxB_MAX_RDIV_UINT8 , GxB_PLUS_RDIV_UINT8 , GxB_TIMES_RDIV_UINT8 , GxB_ANY_RDIV_UINT8 , + GxB_MIN_RDIV_UINT16 , GxB_MAX_RDIV_UINT16 , GxB_PLUS_RDIV_UINT16 , GxB_TIMES_RDIV_UINT16 , GxB_ANY_RDIV_UINT16 , + GxB_MIN_RDIV_UINT32 , GxB_MAX_RDIV_UINT32 , GxB_PLUS_RDIV_UINT32 , GxB_TIMES_RDIV_UINT32 , GxB_ANY_RDIV_UINT32 , + GxB_MIN_RDIV_UINT64 , GxB_MAX_RDIV_UINT64 , GxB_PLUS_RDIV_UINT64 , GxB_TIMES_RDIV_UINT64 , GxB_ANY_RDIV_UINT64 , + GxB_MIN_RDIV_FP32 , GxB_MAX_RDIV_FP32 , GxB_PLUS_RDIV_FP32 , GxB_TIMES_RDIV_FP32 , GxB_ANY_RDIV_FP32 , + GxB_MIN_RDIV_FP64 , GxB_MAX_RDIV_FP64 , GxB_PLUS_RDIV_FP64 , GxB_TIMES_RDIV_FP64 , GxB_ANY_RDIV_FP64 , -GrB_Info GrB_Vector_build_FP32 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const float *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = RMINUS (x,y), all types x,y,z the same: + GxB_MIN_RMINUS_INT8 , GxB_MAX_RMINUS_INT8 , GxB_PLUS_RMINUS_INT8 , GxB_TIMES_RMINUS_INT8 , GxB_ANY_RMINUS_INT8 , + GxB_MIN_RMINUS_INT16 , GxB_MAX_RMINUS_INT16 , GxB_PLUS_RMINUS_INT16 , GxB_TIMES_RMINUS_INT16 , GxB_ANY_RMINUS_INT16 , + GxB_MIN_RMINUS_INT32 , GxB_MAX_RMINUS_INT32 , GxB_PLUS_RMINUS_INT32 , GxB_TIMES_RMINUS_INT32 , GxB_ANY_RMINUS_INT32 , + GxB_MIN_RMINUS_INT64 , GxB_MAX_RMINUS_INT64 , GxB_PLUS_RMINUS_INT64 , GxB_TIMES_RMINUS_INT64 , GxB_ANY_RMINUS_INT64 , + GxB_MIN_RMINUS_UINT8 , GxB_MAX_RMINUS_UINT8 , GxB_PLUS_RMINUS_UINT8 , GxB_TIMES_RMINUS_UINT8 , GxB_ANY_RMINUS_UINT8 , + GxB_MIN_RMINUS_UINT16 , GxB_MAX_RMINUS_UINT16 , GxB_PLUS_RMINUS_UINT16 , GxB_TIMES_RMINUS_UINT16, GxB_ANY_RMINUS_UINT16 , + GxB_MIN_RMINUS_UINT32 , GxB_MAX_RMINUS_UINT32 , GxB_PLUS_RMINUS_UINT32 , GxB_TIMES_RMINUS_UINT32, GxB_ANY_RMINUS_UINT32 , + GxB_MIN_RMINUS_UINT64 , GxB_MAX_RMINUS_UINT64 , GxB_PLUS_RMINUS_UINT64 , GxB_TIMES_RMINUS_UINT64, GxB_ANY_RMINUS_UINT64 , + GxB_MIN_RMINUS_FP32 , GxB_MAX_RMINUS_FP32 , GxB_PLUS_RMINUS_FP32 , GxB_TIMES_RMINUS_FP32 , GxB_ANY_RMINUS_FP32 , + GxB_MIN_RMINUS_FP64 , GxB_MAX_RMINUS_FP64 , GxB_PLUS_RMINUS_FP64 , GxB_TIMES_RMINUS_FP64 , GxB_ANY_RMINUS_FP64 , -GrB_Info GrB_Vector_build_FP64 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const double *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = ISEQ (x,y), all types x,y,z the same: + GxB_MIN_ISEQ_INT8 , GxB_MAX_ISEQ_INT8 , GxB_PLUS_ISEQ_INT8 , GxB_TIMES_ISEQ_INT8 , GxB_ANY_ISEQ_INT8 , + GxB_MIN_ISEQ_INT16 , GxB_MAX_ISEQ_INT16 , GxB_PLUS_ISEQ_INT16 , GxB_TIMES_ISEQ_INT16 , GxB_ANY_ISEQ_INT16 , + GxB_MIN_ISEQ_INT32 , GxB_MAX_ISEQ_INT32 , GxB_PLUS_ISEQ_INT32 , GxB_TIMES_ISEQ_INT32 , GxB_ANY_ISEQ_INT32 , + GxB_MIN_ISEQ_INT64 , GxB_MAX_ISEQ_INT64 , GxB_PLUS_ISEQ_INT64 , GxB_TIMES_ISEQ_INT64 , GxB_ANY_ISEQ_INT64 , + GxB_MIN_ISEQ_UINT8 , GxB_MAX_ISEQ_UINT8 , GxB_PLUS_ISEQ_UINT8 , GxB_TIMES_ISEQ_UINT8 , GxB_ANY_ISEQ_UINT8 , + GxB_MIN_ISEQ_UINT16 , GxB_MAX_ISEQ_UINT16 , GxB_PLUS_ISEQ_UINT16 , GxB_TIMES_ISEQ_UINT16 , GxB_ANY_ISEQ_UINT16 , + GxB_MIN_ISEQ_UINT32 , GxB_MAX_ISEQ_UINT32 , GxB_PLUS_ISEQ_UINT32 , GxB_TIMES_ISEQ_UINT32 , GxB_ANY_ISEQ_UINT32 , + GxB_MIN_ISEQ_UINT64 , GxB_MAX_ISEQ_UINT64 , GxB_PLUS_ISEQ_UINT64 , GxB_TIMES_ISEQ_UINT64 , GxB_ANY_ISEQ_UINT64 , + GxB_MIN_ISEQ_FP32 , GxB_MAX_ISEQ_FP32 , GxB_PLUS_ISEQ_FP32 , GxB_TIMES_ISEQ_FP32 , GxB_ANY_ISEQ_FP32 , + GxB_MIN_ISEQ_FP64 , GxB_MAX_ISEQ_FP64 , GxB_PLUS_ISEQ_FP64 , GxB_TIMES_ISEQ_FP64 , GxB_ANY_ISEQ_FP64 , -GrB_Info GxB_Vector_build_FC32 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const GxB_FC32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = ISNE (x,y), all types x,y,z the same: + GxB_MIN_ISNE_INT8 , GxB_MAX_ISNE_INT8 , GxB_PLUS_ISNE_INT8 , GxB_TIMES_ISNE_INT8 , GxB_ANY_ISNE_INT8 , + GxB_MIN_ISNE_INT16 , GxB_MAX_ISNE_INT16 , GxB_PLUS_ISNE_INT16 , GxB_TIMES_ISNE_INT16 , GxB_ANY_ISNE_INT16 , + GxB_MIN_ISNE_INT32 , GxB_MAX_ISNE_INT32 , GxB_PLUS_ISNE_INT32 , GxB_TIMES_ISNE_INT32 , GxB_ANY_ISNE_INT32 , + GxB_MIN_ISNE_INT64 , GxB_MAX_ISNE_INT64 , GxB_PLUS_ISNE_INT64 , GxB_TIMES_ISNE_INT64 , GxB_ANY_ISNE_INT64 , + GxB_MIN_ISNE_UINT8 , GxB_MAX_ISNE_UINT8 , GxB_PLUS_ISNE_UINT8 , GxB_TIMES_ISNE_UINT8 , GxB_ANY_ISNE_UINT8 , + GxB_MIN_ISNE_UINT16 , GxB_MAX_ISNE_UINT16 , GxB_PLUS_ISNE_UINT16 , GxB_TIMES_ISNE_UINT16 , GxB_ANY_ISNE_UINT16 , + GxB_MIN_ISNE_UINT32 , GxB_MAX_ISNE_UINT32 , GxB_PLUS_ISNE_UINT32 , GxB_TIMES_ISNE_UINT32 , GxB_ANY_ISNE_UINT32 , + GxB_MIN_ISNE_UINT64 , GxB_MAX_ISNE_UINT64 , GxB_PLUS_ISNE_UINT64 , GxB_TIMES_ISNE_UINT64 , GxB_ANY_ISNE_UINT64 , + GxB_MIN_ISNE_FP32 , GxB_MAX_ISNE_FP32 , GxB_PLUS_ISNE_FP32 , GxB_TIMES_ISNE_FP32 , GxB_ANY_ISNE_FP32 , + GxB_MIN_ISNE_FP64 , GxB_MAX_ISNE_FP64 , GxB_PLUS_ISNE_FP64 , GxB_TIMES_ISNE_FP64 , GxB_ANY_ISNE_FP64 , -GrB_Info GxB_Vector_build_FC64 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const GxB_FC64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = ISGT (x,y), all types x,y,z the same: + GxB_MIN_ISGT_INT8 , GxB_MAX_ISGT_INT8 , GxB_PLUS_ISGT_INT8 , GxB_TIMES_ISGT_INT8 , GxB_ANY_ISGT_INT8 , + GxB_MIN_ISGT_INT16 , GxB_MAX_ISGT_INT16 , GxB_PLUS_ISGT_INT16 , GxB_TIMES_ISGT_INT16 , GxB_ANY_ISGT_INT16 , + GxB_MIN_ISGT_INT32 , GxB_MAX_ISGT_INT32 , GxB_PLUS_ISGT_INT32 , GxB_TIMES_ISGT_INT32 , GxB_ANY_ISGT_INT32 , + GxB_MIN_ISGT_INT64 , GxB_MAX_ISGT_INT64 , GxB_PLUS_ISGT_INT64 , GxB_TIMES_ISGT_INT64 , GxB_ANY_ISGT_INT64 , + GxB_MIN_ISGT_UINT8 , GxB_MAX_ISGT_UINT8 , GxB_PLUS_ISGT_UINT8 , GxB_TIMES_ISGT_UINT8 , GxB_ANY_ISGT_UINT8 , + GxB_MIN_ISGT_UINT16 , GxB_MAX_ISGT_UINT16 , GxB_PLUS_ISGT_UINT16 , GxB_TIMES_ISGT_UINT16 , GxB_ANY_ISGT_UINT16 , + GxB_MIN_ISGT_UINT32 , GxB_MAX_ISGT_UINT32 , GxB_PLUS_ISGT_UINT32 , GxB_TIMES_ISGT_UINT32 , GxB_ANY_ISGT_UINT32 , + GxB_MIN_ISGT_UINT64 , GxB_MAX_ISGT_UINT64 , GxB_PLUS_ISGT_UINT64 , GxB_TIMES_ISGT_UINT64 , GxB_ANY_ISGT_UINT64 , + GxB_MIN_ISGT_FP32 , GxB_MAX_ISGT_FP32 , GxB_PLUS_ISGT_FP32 , GxB_TIMES_ISGT_FP32 , GxB_ANY_ISGT_FP32 , + GxB_MIN_ISGT_FP64 , GxB_MAX_ISGT_FP64 , GxB_PLUS_ISGT_FP64 , GxB_TIMES_ISGT_FP64 , GxB_ANY_ISGT_FP64 , -GrB_Info GrB_Vector_build_UDT // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const void *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = ISLT (x,y), all types x,y,z the same: + GxB_MIN_ISLT_INT8 , GxB_MAX_ISLT_INT8 , GxB_PLUS_ISLT_INT8 , GxB_TIMES_ISLT_INT8 , GxB_ANY_ISLT_INT8 , + GxB_MIN_ISLT_INT16 , GxB_MAX_ISLT_INT16 , GxB_PLUS_ISLT_INT16 , GxB_TIMES_ISLT_INT16 , GxB_ANY_ISLT_INT16 , + GxB_MIN_ISLT_INT32 , GxB_MAX_ISLT_INT32 , GxB_PLUS_ISLT_INT32 , GxB_TIMES_ISLT_INT32 , GxB_ANY_ISLT_INT32 , + GxB_MIN_ISLT_INT64 , GxB_MAX_ISLT_INT64 , GxB_PLUS_ISLT_INT64 , GxB_TIMES_ISLT_INT64 , GxB_ANY_ISLT_INT64 , + GxB_MIN_ISLT_UINT8 , GxB_MAX_ISLT_UINT8 , GxB_PLUS_ISLT_UINT8 , GxB_TIMES_ISLT_UINT8 , GxB_ANY_ISLT_UINT8 , + GxB_MIN_ISLT_UINT16 , GxB_MAX_ISLT_UINT16 , GxB_PLUS_ISLT_UINT16 , GxB_TIMES_ISLT_UINT16 , GxB_ANY_ISLT_UINT16 , + GxB_MIN_ISLT_UINT32 , GxB_MAX_ISLT_UINT32 , GxB_PLUS_ISLT_UINT32 , GxB_TIMES_ISLT_UINT32 , GxB_ANY_ISLT_UINT32 , + GxB_MIN_ISLT_UINT64 , GxB_MAX_ISLT_UINT64 , GxB_PLUS_ISLT_UINT64 , GxB_TIMES_ISLT_UINT64 , GxB_ANY_ISLT_UINT64 , + GxB_MIN_ISLT_FP32 , GxB_MAX_ISLT_FP32 , GxB_PLUS_ISLT_FP32 , GxB_TIMES_ISLT_FP32 , GxB_ANY_ISLT_FP32 , + GxB_MIN_ISLT_FP64 , GxB_MAX_ISLT_FP64 , GxB_PLUS_ISLT_FP64 , GxB_TIMES_ISLT_FP64 , GxB_ANY_ISLT_FP64 , -GrB_Info GxB_Vector_build_Scalar // build a vector from (i,scalar) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - GrB_Scalar scalar, // value for all tuples - GrB_Index nvals // number of tuples -) ; + // semirings with multiply op: z = ISGE (x,y), all types x,y,z the same: + GxB_MIN_ISGE_INT8 , GxB_MAX_ISGE_INT8 , GxB_PLUS_ISGE_INT8 , GxB_TIMES_ISGE_INT8 , GxB_ANY_ISGE_INT8 , + GxB_MIN_ISGE_INT16 , GxB_MAX_ISGE_INT16 , GxB_PLUS_ISGE_INT16 , GxB_TIMES_ISGE_INT16 , GxB_ANY_ISGE_INT16 , + GxB_MIN_ISGE_INT32 , GxB_MAX_ISGE_INT32 , GxB_PLUS_ISGE_INT32 , GxB_TIMES_ISGE_INT32 , GxB_ANY_ISGE_INT32 , + GxB_MIN_ISGE_INT64 , GxB_MAX_ISGE_INT64 , GxB_PLUS_ISGE_INT64 , GxB_TIMES_ISGE_INT64 , GxB_ANY_ISGE_INT64 , + GxB_MIN_ISGE_UINT8 , GxB_MAX_ISGE_UINT8 , GxB_PLUS_ISGE_UINT8 , GxB_TIMES_ISGE_UINT8 , GxB_ANY_ISGE_UINT8 , + GxB_MIN_ISGE_UINT16 , GxB_MAX_ISGE_UINT16 , GxB_PLUS_ISGE_UINT16 , GxB_TIMES_ISGE_UINT16 , GxB_ANY_ISGE_UINT16 , + GxB_MIN_ISGE_UINT32 , GxB_MAX_ISGE_UINT32 , GxB_PLUS_ISGE_UINT32 , GxB_TIMES_ISGE_UINT32 , GxB_ANY_ISGE_UINT32 , + GxB_MIN_ISGE_UINT64 , GxB_MAX_ISGE_UINT64 , GxB_PLUS_ISGE_UINT64 , GxB_TIMES_ISGE_UINT64 , GxB_ANY_ISGE_UINT64 , + GxB_MIN_ISGE_FP32 , GxB_MAX_ISGE_FP32 , GxB_PLUS_ISGE_FP32 , GxB_TIMES_ISGE_FP32 , GxB_ANY_ISGE_FP32 , + GxB_MIN_ISGE_FP64 , GxB_MAX_ISGE_FP64 , GxB_PLUS_ISGE_FP64 , GxB_TIMES_ISGE_FP64 , GxB_ANY_ISGE_FP64 , -// Type-generic version: X can be a pointer to any supported C type or void * -// for a user-defined type. + // semirings with multiply op: z = ISLE (x,y), all types x,y,z the same: + GxB_MIN_ISLE_INT8 , GxB_MAX_ISLE_INT8 , GxB_PLUS_ISLE_INT8 , GxB_TIMES_ISLE_INT8 , GxB_ANY_ISLE_INT8 , + GxB_MIN_ISLE_INT16 , GxB_MAX_ISLE_INT16 , GxB_PLUS_ISLE_INT16 , GxB_TIMES_ISLE_INT16 , GxB_ANY_ISLE_INT16 , + GxB_MIN_ISLE_INT32 , GxB_MAX_ISLE_INT32 , GxB_PLUS_ISLE_INT32 , GxB_TIMES_ISLE_INT32 , GxB_ANY_ISLE_INT32 , + GxB_MIN_ISLE_INT64 , GxB_MAX_ISLE_INT64 , GxB_PLUS_ISLE_INT64 , GxB_TIMES_ISLE_INT64 , GxB_ANY_ISLE_INT64 , + GxB_MIN_ISLE_UINT8 , GxB_MAX_ISLE_UINT8 , GxB_PLUS_ISLE_UINT8 , GxB_TIMES_ISLE_UINT8 , GxB_ANY_ISLE_UINT8 , + GxB_MIN_ISLE_UINT16 , GxB_MAX_ISLE_UINT16 , GxB_PLUS_ISLE_UINT16 , GxB_TIMES_ISLE_UINT16 , GxB_ANY_ISLE_UINT16 , + GxB_MIN_ISLE_UINT32 , GxB_MAX_ISLE_UINT32 , GxB_PLUS_ISLE_UINT32 , GxB_TIMES_ISLE_UINT32 , GxB_ANY_ISLE_UINT32 , + GxB_MIN_ISLE_UINT64 , GxB_MAX_ISLE_UINT64 , GxB_PLUS_ISLE_UINT64 , GxB_TIMES_ISLE_UINT64 , GxB_ANY_ISLE_UINT64 , + GxB_MIN_ISLE_FP32 , GxB_MAX_ISLE_FP32 , GxB_PLUS_ISLE_FP32 , GxB_TIMES_ISLE_FP32 , GxB_ANY_ISLE_FP32 , + GxB_MIN_ISLE_FP64 , GxB_MAX_ISLE_FP64 , GxB_PLUS_ISLE_FP64 , GxB_TIMES_ISLE_FP64 , GxB_ANY_ISLE_FP64 , -/* -GrB_Info GrB_Vector_build // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; -*/ + // semirings with multiply op: z = LOR (x,y), all types x,y,z the same: + GxB_MIN_LOR_INT8 , GxB_MAX_LOR_INT8 , GxB_PLUS_LOR_INT8 , GxB_TIMES_LOR_INT8 , GxB_ANY_LOR_INT8 , + GxB_MIN_LOR_INT16 , GxB_MAX_LOR_INT16 , GxB_PLUS_LOR_INT16 , GxB_TIMES_LOR_INT16 , GxB_ANY_LOR_INT16 , + GxB_MIN_LOR_INT32 , GxB_MAX_LOR_INT32 , GxB_PLUS_LOR_INT32 , GxB_TIMES_LOR_INT32 , GxB_ANY_LOR_INT32 , + GxB_MIN_LOR_INT64 , GxB_MAX_LOR_INT64 , GxB_PLUS_LOR_INT64 , GxB_TIMES_LOR_INT64 , GxB_ANY_LOR_INT64 , + GxB_MIN_LOR_UINT8 , GxB_MAX_LOR_UINT8 , GxB_PLUS_LOR_UINT8 , GxB_TIMES_LOR_UINT8 , GxB_ANY_LOR_UINT8 , + GxB_MIN_LOR_UINT16 , GxB_MAX_LOR_UINT16 , GxB_PLUS_LOR_UINT16 , GxB_TIMES_LOR_UINT16 , GxB_ANY_LOR_UINT16 , + GxB_MIN_LOR_UINT32 , GxB_MAX_LOR_UINT32 , GxB_PLUS_LOR_UINT32 , GxB_TIMES_LOR_UINT32 , GxB_ANY_LOR_UINT32 , + GxB_MIN_LOR_UINT64 , GxB_MAX_LOR_UINT64 , GxB_PLUS_LOR_UINT64 , GxB_TIMES_LOR_UINT64 , GxB_ANY_LOR_UINT64 , + GxB_MIN_LOR_FP32 , GxB_MAX_LOR_FP32 , GxB_PLUS_LOR_FP32 , GxB_TIMES_LOR_FP32 , GxB_ANY_LOR_FP32 , + GxB_MIN_LOR_FP64 , GxB_MAX_LOR_FP64 , GxB_PLUS_LOR_FP64 , GxB_TIMES_LOR_FP64 , GxB_ANY_LOR_FP64 , -#if GxB_STDC_VERSION >= 201112L -#define GrB_Vector_build(w,Ilist,X,nvals,dup) \ - _Generic \ - ( \ - (X), \ - GB_PCASES (GrB, Vector_build) \ - ) \ - (w, Ilist, ((const void *) (X)), nvals, dup) -#endif + // semirings with multiply op: z = LAND (x,y), all types x,y,z the same: + GxB_MIN_LAND_INT8 , GxB_MAX_LAND_INT8 , GxB_PLUS_LAND_INT8 , GxB_TIMES_LAND_INT8 , GxB_ANY_LAND_INT8 , + GxB_MIN_LAND_INT16 , GxB_MAX_LAND_INT16 , GxB_PLUS_LAND_INT16 , GxB_TIMES_LAND_INT16 , GxB_ANY_LAND_INT16 , + GxB_MIN_LAND_INT32 , GxB_MAX_LAND_INT32 , GxB_PLUS_LAND_INT32 , GxB_TIMES_LAND_INT32 , GxB_ANY_LAND_INT32 , + GxB_MIN_LAND_INT64 , GxB_MAX_LAND_INT64 , GxB_PLUS_LAND_INT64 , GxB_TIMES_LAND_INT64 , GxB_ANY_LAND_INT64 , + GxB_MIN_LAND_UINT8 , GxB_MAX_LAND_UINT8 , GxB_PLUS_LAND_UINT8 , GxB_TIMES_LAND_UINT8 , GxB_ANY_LAND_UINT8 , + GxB_MIN_LAND_UINT16 , GxB_MAX_LAND_UINT16 , GxB_PLUS_LAND_UINT16 , GxB_TIMES_LAND_UINT16 , GxB_ANY_LAND_UINT16 , + GxB_MIN_LAND_UINT32 , GxB_MAX_LAND_UINT32 , GxB_PLUS_LAND_UINT32 , GxB_TIMES_LAND_UINT32 , GxB_ANY_LAND_UINT32 , + GxB_MIN_LAND_UINT64 , GxB_MAX_LAND_UINT64 , GxB_PLUS_LAND_UINT64 , GxB_TIMES_LAND_UINT64 , GxB_ANY_LAND_UINT64 , + GxB_MIN_LAND_FP32 , GxB_MAX_LAND_FP32 , GxB_PLUS_LAND_FP32 , GxB_TIMES_LAND_FP32 , GxB_ANY_LAND_FP32 , + GxB_MIN_LAND_FP64 , GxB_MAX_LAND_FP64 , GxB_PLUS_LAND_FP64 , GxB_TIMES_LAND_FP64 , GxB_ANY_LAND_FP64 , + + // semirings with multiply op: z = LXOR (x,y), all types x,y,z the same: + GxB_MIN_LXOR_INT8 , GxB_MAX_LXOR_INT8 , GxB_PLUS_LXOR_INT8 , GxB_TIMES_LXOR_INT8 , GxB_ANY_LXOR_INT8 , + GxB_MIN_LXOR_INT16 , GxB_MAX_LXOR_INT16 , GxB_PLUS_LXOR_INT16 , GxB_TIMES_LXOR_INT16 , GxB_ANY_LXOR_INT16 , + GxB_MIN_LXOR_INT32 , GxB_MAX_LXOR_INT32 , GxB_PLUS_LXOR_INT32 , GxB_TIMES_LXOR_INT32 , GxB_ANY_LXOR_INT32 , + GxB_MIN_LXOR_INT64 , GxB_MAX_LXOR_INT64 , GxB_PLUS_LXOR_INT64 , GxB_TIMES_LXOR_INT64 , GxB_ANY_LXOR_INT64 , + GxB_MIN_LXOR_UINT8 , GxB_MAX_LXOR_UINT8 , GxB_PLUS_LXOR_UINT8 , GxB_TIMES_LXOR_UINT8 , GxB_ANY_LXOR_UINT8 , + GxB_MIN_LXOR_UINT16 , GxB_MAX_LXOR_UINT16 , GxB_PLUS_LXOR_UINT16 , GxB_TIMES_LXOR_UINT16 , GxB_ANY_LXOR_UINT16 , + GxB_MIN_LXOR_UINT32 , GxB_MAX_LXOR_UINT32 , GxB_PLUS_LXOR_UINT32 , GxB_TIMES_LXOR_UINT32 , GxB_ANY_LXOR_UINT32 , + GxB_MIN_LXOR_UINT64 , GxB_MAX_LXOR_UINT64 , GxB_PLUS_LXOR_UINT64 , GxB_TIMES_LXOR_UINT64 , GxB_ANY_LXOR_UINT64 , + GxB_MIN_LXOR_FP32 , GxB_MAX_LXOR_FP32 , GxB_PLUS_LXOR_FP32 , GxB_TIMES_LXOR_FP32 , GxB_ANY_LXOR_FP32 , + GxB_MIN_LXOR_FP64 , GxB_MAX_LXOR_FP64 , GxB_PLUS_LXOR_FP64 , GxB_TIMES_LXOR_FP64 , GxB_ANY_LXOR_FP64 , //------------------------------------------------------------------------------ -// GrB_Vector_setElement +// 300 semirings with a comparator TxT -> bool, where T is non-Boolean //------------------------------------------------------------------------------ -// Set a single scalar in a vector, w(i) = x, typecasting from the type of x to -// the type of w as needed. - -GrB_Info GrB_Vector_setElement_BOOL // w(i) = x -( - GrB_Vector w, // vector to modify - bool x, // scalar to assign to w(i) - GrB_Index i // row index -) ; - -GrB_Info GrB_Vector_setElement_INT8 // w(i) = x -( - GrB_Vector w, // vector to modify - int8_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // In the 4th column the GxB_EQ_*_* semirings could also be called + // GxB_LXNOR_*_*, since the EQ and LXNOR boolean operators are identical + // but those names are not included. -GrB_Info GrB_Vector_setElement_UINT8 // w(i) = x -( - GrB_Vector w, // vector to modify - uint8_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; - -GrB_Info GrB_Vector_setElement_INT16 // w(i) = x -( - GrB_Vector w, // vector to modify - int16_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = EQ (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_EQ_INT8 , GxB_LAND_EQ_INT8 , GxB_LXOR_EQ_INT8 , GxB_EQ_EQ_INT8 , GxB_ANY_EQ_INT8 , + GxB_LOR_EQ_INT16 , GxB_LAND_EQ_INT16 , GxB_LXOR_EQ_INT16 , GxB_EQ_EQ_INT16 , GxB_ANY_EQ_INT16 , + GxB_LOR_EQ_INT32 , GxB_LAND_EQ_INT32 , GxB_LXOR_EQ_INT32 , GxB_EQ_EQ_INT32 , GxB_ANY_EQ_INT32 , + GxB_LOR_EQ_INT64 , GxB_LAND_EQ_INT64 , GxB_LXOR_EQ_INT64 , GxB_EQ_EQ_INT64 , GxB_ANY_EQ_INT64 , + GxB_LOR_EQ_UINT8 , GxB_LAND_EQ_UINT8 , GxB_LXOR_EQ_UINT8 , GxB_EQ_EQ_UINT8 , GxB_ANY_EQ_UINT8 , + GxB_LOR_EQ_UINT16 , GxB_LAND_EQ_UINT16 , GxB_LXOR_EQ_UINT16 , GxB_EQ_EQ_UINT16 , GxB_ANY_EQ_UINT16 , + GxB_LOR_EQ_UINT32 , GxB_LAND_EQ_UINT32 , GxB_LXOR_EQ_UINT32 , GxB_EQ_EQ_UINT32 , GxB_ANY_EQ_UINT32 , + GxB_LOR_EQ_UINT64 , GxB_LAND_EQ_UINT64 , GxB_LXOR_EQ_UINT64 , GxB_EQ_EQ_UINT64 , GxB_ANY_EQ_UINT64 , + GxB_LOR_EQ_FP32 , GxB_LAND_EQ_FP32 , GxB_LXOR_EQ_FP32 , GxB_EQ_EQ_FP32 , GxB_ANY_EQ_FP32 , + GxB_LOR_EQ_FP64 , GxB_LAND_EQ_FP64 , GxB_LXOR_EQ_FP64 , GxB_EQ_EQ_FP64 , GxB_ANY_EQ_FP64 , -GrB_Info GrB_Vector_setElement_UINT16 // w(i) = x -( - GrB_Vector w, // vector to modify - uint16_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = NE (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_NE_INT8 , GxB_LAND_NE_INT8 , GxB_LXOR_NE_INT8 , GxB_EQ_NE_INT8 , GxB_ANY_NE_INT8 , + GxB_LOR_NE_INT16 , GxB_LAND_NE_INT16 , GxB_LXOR_NE_INT16 , GxB_EQ_NE_INT16 , GxB_ANY_NE_INT16 , + GxB_LOR_NE_INT32 , GxB_LAND_NE_INT32 , GxB_LXOR_NE_INT32 , GxB_EQ_NE_INT32 , GxB_ANY_NE_INT32 , + GxB_LOR_NE_INT64 , GxB_LAND_NE_INT64 , GxB_LXOR_NE_INT64 , GxB_EQ_NE_INT64 , GxB_ANY_NE_INT64 , + GxB_LOR_NE_UINT8 , GxB_LAND_NE_UINT8 , GxB_LXOR_NE_UINT8 , GxB_EQ_NE_UINT8 , GxB_ANY_NE_UINT8 , + GxB_LOR_NE_UINT16 , GxB_LAND_NE_UINT16 , GxB_LXOR_NE_UINT16 , GxB_EQ_NE_UINT16 , GxB_ANY_NE_UINT16 , + GxB_LOR_NE_UINT32 , GxB_LAND_NE_UINT32 , GxB_LXOR_NE_UINT32 , GxB_EQ_NE_UINT32 , GxB_ANY_NE_UINT32 , + GxB_LOR_NE_UINT64 , GxB_LAND_NE_UINT64 , GxB_LXOR_NE_UINT64 , GxB_EQ_NE_UINT64 , GxB_ANY_NE_UINT64 , + GxB_LOR_NE_FP32 , GxB_LAND_NE_FP32 , GxB_LXOR_NE_FP32 , GxB_EQ_NE_FP32 , GxB_ANY_NE_FP32 , + GxB_LOR_NE_FP64 , GxB_LAND_NE_FP64 , GxB_LXOR_NE_FP64 , GxB_EQ_NE_FP64 , GxB_ANY_NE_FP64 , -GrB_Info GrB_Vector_setElement_INT32 // w(i) = x -( - GrB_Vector w, // vector to modify - int32_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = GT (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_GT_INT8 , GxB_LAND_GT_INT8 , GxB_LXOR_GT_INT8 , GxB_EQ_GT_INT8 , GxB_ANY_GT_INT8 , + GxB_LOR_GT_INT16 , GxB_LAND_GT_INT16 , GxB_LXOR_GT_INT16 , GxB_EQ_GT_INT16 , GxB_ANY_GT_INT16 , + GxB_LOR_GT_INT32 , GxB_LAND_GT_INT32 , GxB_LXOR_GT_INT32 , GxB_EQ_GT_INT32 , GxB_ANY_GT_INT32 , + GxB_LOR_GT_INT64 , GxB_LAND_GT_INT64 , GxB_LXOR_GT_INT64 , GxB_EQ_GT_INT64 , GxB_ANY_GT_INT64 , + GxB_LOR_GT_UINT8 , GxB_LAND_GT_UINT8 , GxB_LXOR_GT_UINT8 , GxB_EQ_GT_UINT8 , GxB_ANY_GT_UINT8 , + GxB_LOR_GT_UINT16 , GxB_LAND_GT_UINT16 , GxB_LXOR_GT_UINT16 , GxB_EQ_GT_UINT16 , GxB_ANY_GT_UINT16 , + GxB_LOR_GT_UINT32 , GxB_LAND_GT_UINT32 , GxB_LXOR_GT_UINT32 , GxB_EQ_GT_UINT32 , GxB_ANY_GT_UINT32 , + GxB_LOR_GT_UINT64 , GxB_LAND_GT_UINT64 , GxB_LXOR_GT_UINT64 , GxB_EQ_GT_UINT64 , GxB_ANY_GT_UINT64 , + GxB_LOR_GT_FP32 , GxB_LAND_GT_FP32 , GxB_LXOR_GT_FP32 , GxB_EQ_GT_FP32 , GxB_ANY_GT_FP32 , + GxB_LOR_GT_FP64 , GxB_LAND_GT_FP64 , GxB_LXOR_GT_FP64 , GxB_EQ_GT_FP64 , GxB_ANY_GT_FP64 , -GrB_Info GrB_Vector_setElement_UINT32 // w(i) = x -( - GrB_Vector w, // vector to modify - uint32_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = LT (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_LT_INT8 , GxB_LAND_LT_INT8 , GxB_LXOR_LT_INT8 , GxB_EQ_LT_INT8 , GxB_ANY_LT_INT8 , + GxB_LOR_LT_INT16 , GxB_LAND_LT_INT16 , GxB_LXOR_LT_INT16 , GxB_EQ_LT_INT16 , GxB_ANY_LT_INT16 , + GxB_LOR_LT_INT32 , GxB_LAND_LT_INT32 , GxB_LXOR_LT_INT32 , GxB_EQ_LT_INT32 , GxB_ANY_LT_INT32 , + GxB_LOR_LT_INT64 , GxB_LAND_LT_INT64 , GxB_LXOR_LT_INT64 , GxB_EQ_LT_INT64 , GxB_ANY_LT_INT64 , + GxB_LOR_LT_UINT8 , GxB_LAND_LT_UINT8 , GxB_LXOR_LT_UINT8 , GxB_EQ_LT_UINT8 , GxB_ANY_LT_UINT8 , + GxB_LOR_LT_UINT16 , GxB_LAND_LT_UINT16 , GxB_LXOR_LT_UINT16 , GxB_EQ_LT_UINT16 , GxB_ANY_LT_UINT16 , + GxB_LOR_LT_UINT32 , GxB_LAND_LT_UINT32 , GxB_LXOR_LT_UINT32 , GxB_EQ_LT_UINT32 , GxB_ANY_LT_UINT32 , + GxB_LOR_LT_UINT64 , GxB_LAND_LT_UINT64 , GxB_LXOR_LT_UINT64 , GxB_EQ_LT_UINT64 , GxB_ANY_LT_UINT64 , + GxB_LOR_LT_FP32 , GxB_LAND_LT_FP32 , GxB_LXOR_LT_FP32 , GxB_EQ_LT_FP32 , GxB_ANY_LT_FP32 , + GxB_LOR_LT_FP64 , GxB_LAND_LT_FP64 , GxB_LXOR_LT_FP64 , GxB_EQ_LT_FP64 , GxB_ANY_LT_FP64 , -GrB_Info GrB_Vector_setElement_INT64 // w(i) = x -( - GrB_Vector w, // vector to modify - int64_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = GE (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_GE_INT8 , GxB_LAND_GE_INT8 , GxB_LXOR_GE_INT8 , GxB_EQ_GE_INT8 , GxB_ANY_GE_INT8 , + GxB_LOR_GE_INT16 , GxB_LAND_GE_INT16 , GxB_LXOR_GE_INT16 , GxB_EQ_GE_INT16 , GxB_ANY_GE_INT16 , + GxB_LOR_GE_INT32 , GxB_LAND_GE_INT32 , GxB_LXOR_GE_INT32 , GxB_EQ_GE_INT32 , GxB_ANY_GE_INT32 , + GxB_LOR_GE_INT64 , GxB_LAND_GE_INT64 , GxB_LXOR_GE_INT64 , GxB_EQ_GE_INT64 , GxB_ANY_GE_INT64 , + GxB_LOR_GE_UINT8 , GxB_LAND_GE_UINT8 , GxB_LXOR_GE_UINT8 , GxB_EQ_GE_UINT8 , GxB_ANY_GE_UINT8 , + GxB_LOR_GE_UINT16 , GxB_LAND_GE_UINT16 , GxB_LXOR_GE_UINT16 , GxB_EQ_GE_UINT16 , GxB_ANY_GE_UINT16 , + GxB_LOR_GE_UINT32 , GxB_LAND_GE_UINT32 , GxB_LXOR_GE_UINT32 , GxB_EQ_GE_UINT32 , GxB_ANY_GE_UINT32 , + GxB_LOR_GE_UINT64 , GxB_LAND_GE_UINT64 , GxB_LXOR_GE_UINT64 , GxB_EQ_GE_UINT64 , GxB_ANY_GE_UINT64 , + GxB_LOR_GE_FP32 , GxB_LAND_GE_FP32 , GxB_LXOR_GE_FP32 , GxB_EQ_GE_FP32 , GxB_ANY_GE_FP32 , + GxB_LOR_GE_FP64 , GxB_LAND_GE_FP64 , GxB_LXOR_GE_FP64 , GxB_EQ_GE_FP64 , GxB_ANY_GE_FP64 , -GrB_Info GrB_Vector_setElement_UINT64 // w(i) = x -( - GrB_Vector w, // vector to modify - uint64_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = LE (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_LE_INT8 , GxB_LAND_LE_INT8 , GxB_LXOR_LE_INT8 , GxB_EQ_LE_INT8 , GxB_ANY_LE_INT8 , + GxB_LOR_LE_INT16 , GxB_LAND_LE_INT16 , GxB_LXOR_LE_INT16 , GxB_EQ_LE_INT16 , GxB_ANY_LE_INT16 , + GxB_LOR_LE_INT32 , GxB_LAND_LE_INT32 , GxB_LXOR_LE_INT32 , GxB_EQ_LE_INT32 , GxB_ANY_LE_INT32 , + GxB_LOR_LE_INT64 , GxB_LAND_LE_INT64 , GxB_LXOR_LE_INT64 , GxB_EQ_LE_INT64 , GxB_ANY_LE_INT64 , + GxB_LOR_LE_UINT8 , GxB_LAND_LE_UINT8 , GxB_LXOR_LE_UINT8 , GxB_EQ_LE_UINT8 , GxB_ANY_LE_UINT8 , + GxB_LOR_LE_UINT16 , GxB_LAND_LE_UINT16 , GxB_LXOR_LE_UINT16 , GxB_EQ_LE_UINT16 , GxB_ANY_LE_UINT16 , + GxB_LOR_LE_UINT32 , GxB_LAND_LE_UINT32 , GxB_LXOR_LE_UINT32 , GxB_EQ_LE_UINT32 , GxB_ANY_LE_UINT32 , + GxB_LOR_LE_UINT64 , GxB_LAND_LE_UINT64 , GxB_LXOR_LE_UINT64 , GxB_EQ_LE_UINT64 , GxB_ANY_LE_UINT64 , + GxB_LOR_LE_FP32 , GxB_LAND_LE_FP32 , GxB_LXOR_LE_FP32 , GxB_EQ_LE_FP32 , GxB_ANY_LE_FP32 , + GxB_LOR_LE_FP64 , GxB_LAND_LE_FP64 , GxB_LXOR_LE_FP64 , GxB_EQ_LE_FP64 , GxB_ANY_LE_FP64 , -GrB_Info GrB_Vector_setElement_FP32 // w(i) = x -( - GrB_Vector w, // vector to modify - float x, // scalar to assign to w(i) - GrB_Index i // row index -) ; +//------------------------------------------------------------------------------ +// 55 semirings with purely Boolean types, bool x bool -> bool +//------------------------------------------------------------------------------ -GrB_Info GrB_Vector_setElement_FP64 // w(i) = x -( - GrB_Vector w, // vector to modify - double x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // Note that lor_pair, land_pair, and eq_pair are all identical to any_pair. + // These 3 are marked below. GxB_EQ_*_BOOL could be called + // GxB_LXNOR_*_BOOL, and GxB_*_EQ_BOOL could be called GxB_*_LXNOR_BOOL, + // but those names are not included. -GrB_Info GxB_Vector_setElement_FC32 // w(i) = x -( - GrB_Vector w, // vector to modify - GxB_FC32_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // purely boolean semirings in the form GxB_(add monoid)_(multiply operator)_BOOL: + GxB_LOR_FIRST_BOOL , GxB_LAND_FIRST_BOOL , GxB_LXOR_FIRST_BOOL , GxB_EQ_FIRST_BOOL , GxB_ANY_FIRST_BOOL , + GxB_LOR_SECOND_BOOL , GxB_LAND_SECOND_BOOL , GxB_LXOR_SECOND_BOOL , GxB_EQ_SECOND_BOOL , GxB_ANY_SECOND_BOOL , + GxB_LOR_PAIR_BOOL/**/ , GxB_LAND_PAIR_BOOL/**/ , GxB_LXOR_PAIR_BOOL , GxB_EQ_PAIR_BOOL/**/ , GxB_ANY_PAIR_BOOL , + GxB_LOR_LOR_BOOL , GxB_LAND_LOR_BOOL , GxB_LXOR_LOR_BOOL , GxB_EQ_LOR_BOOL , GxB_ANY_LOR_BOOL , + GxB_LOR_LAND_BOOL , GxB_LAND_LAND_BOOL , GxB_LXOR_LAND_BOOL , GxB_EQ_LAND_BOOL , GxB_ANY_LAND_BOOL , + GxB_LOR_LXOR_BOOL , GxB_LAND_LXOR_BOOL , GxB_LXOR_LXOR_BOOL , GxB_EQ_LXOR_BOOL , GxB_ANY_LXOR_BOOL , + GxB_LOR_EQ_BOOL , GxB_LAND_EQ_BOOL , GxB_LXOR_EQ_BOOL , GxB_EQ_EQ_BOOL , GxB_ANY_EQ_BOOL , + GxB_LOR_GT_BOOL , GxB_LAND_GT_BOOL , GxB_LXOR_GT_BOOL , GxB_EQ_GT_BOOL , GxB_ANY_GT_BOOL , + GxB_LOR_LT_BOOL , GxB_LAND_LT_BOOL , GxB_LXOR_LT_BOOL , GxB_EQ_LT_BOOL , GxB_ANY_LT_BOOL , + GxB_LOR_GE_BOOL , GxB_LAND_GE_BOOL , GxB_LXOR_GE_BOOL , GxB_EQ_GE_BOOL , GxB_ANY_GE_BOOL , + GxB_LOR_LE_BOOL , GxB_LAND_LE_BOOL , GxB_LXOR_LE_BOOL , GxB_EQ_LE_BOOL , GxB_ANY_LE_BOOL , -GrB_Info GxB_Vector_setElement_FC64 // w(i) = x -( - GrB_Vector w, // vector to modify - GxB_FC64_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; +//------------------------------------------------------------------------------ +// 54 complex semirings +//------------------------------------------------------------------------------ -GrB_Info GrB_Vector_setElement_UDT // w(i) = x -( - GrB_Vector w, // vector to modify - void *x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // 3 monoids (plus, times, any), 2 types (FC32 and FC64), and 9 + // multiplicative operators. -GrB_Info GrB_Vector_setElement_Scalar // w(i) = x -( - GrB_Vector w, // vector to modify - GrB_Scalar x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // Note that times_pair is identical to any_pair. + // These 2 are marked below. -// Type-generic version: x can be any supported C type or void * for a -// user-defined type. + GxB_PLUS_FIRST_FC32 , GxB_TIMES_FIRST_FC32 , GxB_ANY_FIRST_FC32 , + GxB_PLUS_FIRST_FC64 , GxB_TIMES_FIRST_FC64 , GxB_ANY_FIRST_FC64 , -/* -GrB_Info GrB_Vector_setElement // w(i) = x -( - GrB_Vector w, // vector to modify - x, // scalar to assign to w(i) - GrB_Index i // row index -) ; -*/ + GxB_PLUS_SECOND_FC32 , GxB_TIMES_SECOND_FC32 , GxB_ANY_SECOND_FC32 , + GxB_PLUS_SECOND_FC64 , GxB_TIMES_SECOND_FC64 , GxB_ANY_SECOND_FC64 , -#if GxB_STDC_VERSION >= 201112L -#define GrB_Vector_setElement(w,x,i) \ - _Generic \ - ( \ - (x), \ - GB_CASES (GrB, Vector_setElement), \ - default: GrB_Vector_setElement_Scalar \ - ) \ - (w, x, i) -#endif + GxB_PLUS_PAIR_FC32 , GxB_TIMES_PAIR_FC32/**/, GxB_ANY_PAIR_FC32 , + GxB_PLUS_PAIR_FC64 , GxB_TIMES_PAIR_FC64/**/, GxB_ANY_PAIR_FC64 , -//------------------------------------------------------------------------------ -// GrB_Vector_extractElement -//------------------------------------------------------------------------------ + GxB_PLUS_PLUS_FC32 , GxB_TIMES_PLUS_FC32 , GxB_ANY_PLUS_FC32 , + GxB_PLUS_PLUS_FC64 , GxB_TIMES_PLUS_FC64 , GxB_ANY_PLUS_FC64 , -// Extract a single entry from a vector, x = v(i), typecasting from the type of -// v to the type of x as needed. + GxB_PLUS_MINUS_FC32 , GxB_TIMES_MINUS_FC32 , GxB_ANY_MINUS_FC32 , + GxB_PLUS_MINUS_FC64 , GxB_TIMES_MINUS_FC64 , GxB_ANY_MINUS_FC64 , -GrB_Info GrB_Vector_extractElement_BOOL // x = v(i) -( - bool *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_PLUS_TIMES_FC32 , GxB_TIMES_TIMES_FC32 , GxB_ANY_TIMES_FC32 , + GxB_PLUS_TIMES_FC64 , GxB_TIMES_TIMES_FC64 , GxB_ANY_TIMES_FC64 , -GrB_Info GrB_Vector_extractElement_INT8 // x = v(i) -( - int8_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_PLUS_DIV_FC32 , GxB_TIMES_DIV_FC32 , GxB_ANY_DIV_FC32 , + GxB_PLUS_DIV_FC64 , GxB_TIMES_DIV_FC64 , GxB_ANY_DIV_FC64 , -GrB_Info GrB_Vector_extractElement_UINT8 // x = v(i) -( - uint8_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_PLUS_RDIV_FC32 , GxB_TIMES_RDIV_FC32 , GxB_ANY_RDIV_FC32 , + GxB_PLUS_RDIV_FC64 , GxB_TIMES_RDIV_FC64 , GxB_ANY_RDIV_FC64 , -GrB_Info GrB_Vector_extractElement_INT16 // x = v(i) -( - int16_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_PLUS_RMINUS_FC32 , GxB_TIMES_RMINUS_FC32 , GxB_ANY_RMINUS_FC32 , + GxB_PLUS_RMINUS_FC64 , GxB_TIMES_RMINUS_FC64 , GxB_ANY_RMINUS_FC64 , -GrB_Info GrB_Vector_extractElement_UINT16 // x = v(i) -( - uint16_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; +//------------------------------------------------------------------------------ +// 64 bitwise semirings +//------------------------------------------------------------------------------ -GrB_Info GrB_Vector_extractElement_INT32 // x = v(i) -( - int32_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + // monoids: (BOR, BAND, BXOR, BXNOR) x + // mult: (BOR, BAND, BXOR, BXNOR) x + // types: (UINT8, UINT16, UINT32, UINT64) -GrB_Info GrB_Vector_extractElement_UINT32 // x = v(i) -( - uint32_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_BOR_BOR_UINT8 , GxB_BOR_BOR_UINT16 , GxB_BOR_BOR_UINT32 , GxB_BOR_BOR_UINT64 , + GxB_BOR_BAND_UINT8 , GxB_BOR_BAND_UINT16 , GxB_BOR_BAND_UINT32 , GxB_BOR_BAND_UINT64 , + GxB_BOR_BXOR_UINT8 , GxB_BOR_BXOR_UINT16 , GxB_BOR_BXOR_UINT32 , GxB_BOR_BXOR_UINT64 , + GxB_BOR_BXNOR_UINT8 , GxB_BOR_BXNOR_UINT16 , GxB_BOR_BXNOR_UINT32 , GxB_BOR_BXNOR_UINT64 , -GrB_Info GrB_Vector_extractElement_INT64 // x = v(i) -( - int64_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_BAND_BOR_UINT8 , GxB_BAND_BOR_UINT16 , GxB_BAND_BOR_UINT32 , GxB_BAND_BOR_UINT64 , + GxB_BAND_BAND_UINT8 , GxB_BAND_BAND_UINT16 , GxB_BAND_BAND_UINT32 , GxB_BAND_BAND_UINT64 , + GxB_BAND_BXOR_UINT8 , GxB_BAND_BXOR_UINT16 , GxB_BAND_BXOR_UINT32 , GxB_BAND_BXOR_UINT64 , + GxB_BAND_BXNOR_UINT8 , GxB_BAND_BXNOR_UINT16 , GxB_BAND_BXNOR_UINT32 , GxB_BAND_BXNOR_UINT64 , -GrB_Info GrB_Vector_extractElement_UINT64 // x = v(i) -( - uint64_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_BXOR_BOR_UINT8 , GxB_BXOR_BOR_UINT16 , GxB_BXOR_BOR_UINT32 , GxB_BXOR_BOR_UINT64 , + GxB_BXOR_BAND_UINT8 , GxB_BXOR_BAND_UINT16 , GxB_BXOR_BAND_UINT32 , GxB_BXOR_BAND_UINT64 , + GxB_BXOR_BXOR_UINT8 , GxB_BXOR_BXOR_UINT16 , GxB_BXOR_BXOR_UINT32 , GxB_BXOR_BXOR_UINT64 , + GxB_BXOR_BXNOR_UINT8 , GxB_BXOR_BXNOR_UINT16 , GxB_BXOR_BXNOR_UINT32 , GxB_BXOR_BXNOR_UINT64 , -GrB_Info GrB_Vector_extractElement_FP32 // x = v(i) -( - float *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_BXNOR_BOR_UINT8 , GxB_BXNOR_BOR_UINT16 , GxB_BXNOR_BOR_UINT32 , GxB_BXNOR_BOR_UINT64 , + GxB_BXNOR_BAND_UINT8 , GxB_BXNOR_BAND_UINT16 , GxB_BXNOR_BAND_UINT32 , GxB_BXNOR_BAND_UINT64 , + GxB_BXNOR_BXOR_UINT8 , GxB_BXNOR_BXOR_UINT16 , GxB_BXNOR_BXOR_UINT32 , GxB_BXNOR_BXOR_UINT64 , + GxB_BXNOR_BXNOR_UINT8 , GxB_BXNOR_BXNOR_UINT16 , GxB_BXNOR_BXNOR_UINT32 , GxB_BXNOR_BXNOR_UINT64 , -GrB_Info GrB_Vector_extractElement_FP64 // x = v(i) -( - double *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; +//------------------------------------------------------------------------------ +// 80 positional semirings +//------------------------------------------------------------------------------ -GrB_Info GxB_Vector_extractElement_FC32 // x = v(i) -( - GxB_FC32_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + // monoids: (MIN, MAX, ANY, PLUS, TIMES) x + // mult: (FIRSTI, FIRSTI1, FIRSTJ, FIRSTJ1, SECONDI, SECONDI1, SECONDJ, SECONDJ1) + // types: (INT32, INT64) -GrB_Info GxB_Vector_extractElement_FC64 // x = v(i) -( - GxB_FC64_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_MIN_FIRSTI_INT32, GxB_MIN_FIRSTI_INT64, + GxB_MAX_FIRSTI_INT32, GxB_MAX_FIRSTI_INT64, + GxB_ANY_FIRSTI_INT32, GxB_ANY_FIRSTI_INT64, + GxB_PLUS_FIRSTI_INT32, GxB_PLUS_FIRSTI_INT64, + GxB_TIMES_FIRSTI_INT32, GxB_TIMES_FIRSTI_INT64, -GrB_Info GrB_Vector_extractElement_UDT // x = v(i) -( - void *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_MIN_FIRSTI1_INT32, GxB_MIN_FIRSTI1_INT64, + GxB_MAX_FIRSTI1_INT32, GxB_MAX_FIRSTI1_INT64, + GxB_ANY_FIRSTI1_INT32, GxB_ANY_FIRSTI1_INT64, + GxB_PLUS_FIRSTI1_INT32, GxB_PLUS_FIRSTI1_INT64, + GxB_TIMES_FIRSTI1_INT32, GxB_TIMES_FIRSTI1_INT64, -GrB_Info GrB_Vector_extractElement_Scalar // x = v(i) -( - GrB_Scalar x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_MIN_FIRSTJ_INT32, GxB_MIN_FIRSTJ_INT64, + GxB_MAX_FIRSTJ_INT32, GxB_MAX_FIRSTJ_INT64, + GxB_ANY_FIRSTJ_INT32, GxB_ANY_FIRSTJ_INT64, + GxB_PLUS_FIRSTJ_INT32, GxB_PLUS_FIRSTJ_INT64, + GxB_TIMES_FIRSTJ_INT32, GxB_TIMES_FIRSTJ_INT64, -// Type-generic version: x can be a pointer to any supported C type or void * -// for a user-defined type. + GxB_MIN_FIRSTJ1_INT32, GxB_MIN_FIRSTJ1_INT64, + GxB_MAX_FIRSTJ1_INT32, GxB_MAX_FIRSTJ1_INT64, + GxB_ANY_FIRSTJ1_INT32, GxB_ANY_FIRSTJ1_INT64, + GxB_PLUS_FIRSTJ1_INT32, GxB_PLUS_FIRSTJ1_INT64, + GxB_TIMES_FIRSTJ1_INT32, GxB_TIMES_FIRSTJ1_INT64, -/* -GrB_Info GrB_Vector_extractElement // x = v(i) -( - *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; -*/ + GxB_MIN_SECONDI_INT32, GxB_MIN_SECONDI_INT64, + GxB_MAX_SECONDI_INT32, GxB_MAX_SECONDI_INT64, + GxB_ANY_SECONDI_INT32, GxB_ANY_SECONDI_INT64, + GxB_PLUS_SECONDI_INT32, GxB_PLUS_SECONDI_INT64, + GxB_TIMES_SECONDI_INT32, GxB_TIMES_SECONDI_INT64, -#if GxB_STDC_VERSION >= 201112L -#define GrB_Vector_extractElement(x,v,i) \ - _Generic \ - ( \ - (x), \ - GB_PCASES (GrB, Vector_extractElement), \ - default: GrB_Vector_extractElement_Scalar \ - ) \ - (x, v, i) -#endif + GxB_MIN_SECONDI1_INT32, GxB_MIN_SECONDI1_INT64, + GxB_MAX_SECONDI1_INT32, GxB_MAX_SECONDI1_INT64, + GxB_ANY_SECONDI1_INT32, GxB_ANY_SECONDI1_INT64, + GxB_PLUS_SECONDI1_INT32, GxB_PLUS_SECONDI1_INT64, + GxB_TIMES_SECONDI1_INT32, GxB_TIMES_SECONDI1_INT64, -// GxB_Vector_isStoredElement determines if v(i) is present in the structure -// of the vector v, as a stored element. It does not return the value. It -// returns GrB_SUCCESS if the element is present, or GrB_NO_VALUE otherwise. + GxB_MIN_SECONDJ_INT32, GxB_MIN_SECONDJ_INT64, + GxB_MAX_SECONDJ_INT32, GxB_MAX_SECONDJ_INT64, + GxB_ANY_SECONDJ_INT32, GxB_ANY_SECONDJ_INT64, + GxB_PLUS_SECONDJ_INT32, GxB_PLUS_SECONDJ_INT64, + GxB_TIMES_SECONDJ_INT32, GxB_TIMES_SECONDJ_INT64, -GrB_Info GxB_Vector_isStoredElement // determine if v(i) is a stored element -( - const GrB_Vector v, // vector to check - GrB_Index i // row index -) ; + GxB_MIN_SECONDJ1_INT32, GxB_MIN_SECONDJ1_INT64, + GxB_MAX_SECONDJ1_INT32, GxB_MAX_SECONDJ1_INT64, + GxB_ANY_SECONDJ1_INT32, GxB_ANY_SECONDJ1_INT64, + GxB_PLUS_SECONDJ1_INT32, GxB_PLUS_SECONDJ1_INT64, + GxB_TIMES_SECONDJ1_INT32, GxB_TIMES_SECONDJ1_INT64 ; //------------------------------------------------------------------------------ -// GrB_Vector_removeElement +// GrB_* semirings //------------------------------------------------------------------------------ -// GrB_Vector_removeElement (v,i) removes the element v(i) from the vector v. - -GrB_Info GrB_Vector_removeElement -( - GrB_Vector v, // vector to remove an element from - GrB_Index i // index -) ; +// The v1.3 C API for GraphBLAS adds the following 124 predefined semirings, +// with GrB_* names. They are identical to 124 GxB_* semirings defined above, +// with the same name, except that GrB_LXNOR_LOR_SEMIRING_BOOL is identical to +// GxB_EQ_LOR_BOOL (since GrB_EQ_BOOL == GrB_LXNOR). The old names are listed +// below alongside each new name; the new GrB_* names are preferred. -//------------------------------------------------------------------------------ -// GrB_Vector_extractTuples -//------------------------------------------------------------------------------ +// 12 kinds of GrB_* semirings are available for all 10 real non-boolean types: -// Extracts all tuples from a vector, like [I,~,X] = find (v). If -// any parameter I and/or X is NULL, then that component is not extracted. For -// example, to extract just the row indices, pass I as non-NULL, and X as NULL. -// This is like [I,~,~] = find (v). + // PLUS_TIMES, PLUS_MIN, + // MIN_PLUS, MIN_TIMES, MIN_FIRST, MIN_SECOND, MIN_MAX, + // MAX_PLUS, MAX_TIMES, MAX_FIRST, MAX_SECOND, MAX_MIN -GrB_Info GrB_Vector_extractTuples_BOOL // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - bool *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; +// and 4 semirings for boolean only: -GrB_Info GrB_Vector_extractTuples_INT8 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - int8_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // LOR_LAND, LAND_LOR, LXOR_LAND, LXNOR_LOR. -GrB_Info GrB_Vector_extractTuples_UINT8 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - uint8_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; +// GxB_* semirings corresponding to the equivalent GrB_* semiring are +// historical. -GrB_Info GrB_Vector_extractTuples_INT16 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - int16_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; +GB_GLOBAL GrB_Semiring -GrB_Info GrB_Vector_extractTuples_UINT16 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - uint16_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + //-------------------------------------------------------------------------- + // 20 semirings with PLUS monoids + //-------------------------------------------------------------------------- -GrB_Info GrB_Vector_extractTuples_INT32 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - int32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // PLUS_TIMES semirings for all 10 real, non-boolean types: + GrB_PLUS_TIMES_SEMIRING_INT8, // GxB_PLUS_TIMES_INT8 + GrB_PLUS_TIMES_SEMIRING_INT16, // GxB_PLUS_TIMES_INT16 + GrB_PLUS_TIMES_SEMIRING_INT32, // GxB_PLUS_TIMES_INT32 + GrB_PLUS_TIMES_SEMIRING_INT64, // GxB_PLUS_TIMES_INT64 + GrB_PLUS_TIMES_SEMIRING_UINT8, // GxB_PLUS_TIMES_UINT8 + GrB_PLUS_TIMES_SEMIRING_UINT16, // GxB_PLUS_TIMES_UINT16 + GrB_PLUS_TIMES_SEMIRING_UINT32, // GxB_PLUS_TIMES_UINT32 + GrB_PLUS_TIMES_SEMIRING_UINT64, // GxB_PLUS_TIMES_UINT64 + GrB_PLUS_TIMES_SEMIRING_FP32, // GxB_PLUS_TIMES_FP32 + GrB_PLUS_TIMES_SEMIRING_FP64, // GxB_PLUS_TIMES_FP64 -GrB_Info GrB_Vector_extractTuples_UINT32 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - uint32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // PLUS_MIN semirings for all 10 real, non-boolean types: + GrB_PLUS_MIN_SEMIRING_INT8, // GxB_PLUS_MIN_INT8 + GrB_PLUS_MIN_SEMIRING_INT16, // GxB_PLUS_MIN_INT16 + GrB_PLUS_MIN_SEMIRING_INT32, // GxB_PLUS_MIN_INT32 + GrB_PLUS_MIN_SEMIRING_INT64, // GxB_PLUS_MIN_INT64 + GrB_PLUS_MIN_SEMIRING_UINT8, // GxB_PLUS_MIN_UINT8 + GrB_PLUS_MIN_SEMIRING_UINT16, // GxB_PLUS_MIN_UINT16 + GrB_PLUS_MIN_SEMIRING_UINT32, // GxB_PLUS_MIN_UINT32 + GrB_PLUS_MIN_SEMIRING_UINT64, // GxB_PLUS_MIN_UINT64 + GrB_PLUS_MIN_SEMIRING_FP32, // GxB_PLUS_MIN_FP32 + GrB_PLUS_MIN_SEMIRING_FP64, // GxB_PLUS_MIN_FP64 -GrB_Info GrB_Vector_extractTuples_INT64 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - int64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + //-------------------------------------------------------------------------- + // 50 semirings with MIN monoids + //-------------------------------------------------------------------------- -GrB_Info GrB_Vector_extractTuples_UINT64 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - uint64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_PLUS semirings for all 10 real, non-boolean types: + GrB_MIN_PLUS_SEMIRING_INT8, // GxB_MIN_PLUS_INT8 + GrB_MIN_PLUS_SEMIRING_INT16, // GxB_MIN_PLUS_INT16 + GrB_MIN_PLUS_SEMIRING_INT32, // GxB_MIN_PLUS_INT32 + GrB_MIN_PLUS_SEMIRING_INT64, // GxB_MIN_PLUS_INT64 + GrB_MIN_PLUS_SEMIRING_UINT8, // GxB_MIN_PLUS_UINT8 + GrB_MIN_PLUS_SEMIRING_UINT16, // GxB_MIN_PLUS_UINT16 + GrB_MIN_PLUS_SEMIRING_UINT32, // GxB_MIN_PLUS_UINT32 + GrB_MIN_PLUS_SEMIRING_UINT64, // GxB_MIN_PLUS_UINT64 + GrB_MIN_PLUS_SEMIRING_FP32, // GxB_MIN_PLUS_FP32 + GrB_MIN_PLUS_SEMIRING_FP64, // GxB_MIN_PLUS_FP64 -GrB_Info GrB_Vector_extractTuples_FP32 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - float *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_TIMES semirings for all 10 real, non-boolean types: + GrB_MIN_TIMES_SEMIRING_INT8, // GxB_MIN_TIMES_INT8 + GrB_MIN_TIMES_SEMIRING_INT16, // GxB_MIN_TIMES_INT16 + GrB_MIN_TIMES_SEMIRING_INT32, // GxB_MIN_TIMES_INT32 + GrB_MIN_TIMES_SEMIRING_INT64, // GxB_MIN_TIMES_INT64 + GrB_MIN_TIMES_SEMIRING_UINT8, // GxB_MIN_TIMES_UINT8 + GrB_MIN_TIMES_SEMIRING_UINT16, // GxB_MIN_TIMES_UINT16 + GrB_MIN_TIMES_SEMIRING_UINT32, // GxB_MIN_TIMES_UINT32 + GrB_MIN_TIMES_SEMIRING_UINT64, // GxB_MIN_TIMES_UINT64 + GrB_MIN_TIMES_SEMIRING_FP32, // GxB_MIN_TIMES_FP32 + GrB_MIN_TIMES_SEMIRING_FP64, // GxB_MIN_TIMES_FP64 -GrB_Info GrB_Vector_extractTuples_FP64 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - double *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_FIRST semirings for all 10 real, non-boolean types: + GrB_MIN_FIRST_SEMIRING_INT8, // GxB_MIN_FIRST_INT8 + GrB_MIN_FIRST_SEMIRING_INT16, // GxB_MIN_FIRST_INT16 + GrB_MIN_FIRST_SEMIRING_INT32, // GxB_MIN_FIRST_INT32 + GrB_MIN_FIRST_SEMIRING_INT64, // GxB_MIN_FIRST_INT64 + GrB_MIN_FIRST_SEMIRING_UINT8, // GxB_MIN_FIRST_UINT8 + GrB_MIN_FIRST_SEMIRING_UINT16, // GxB_MIN_FIRST_UINT16 + GrB_MIN_FIRST_SEMIRING_UINT32, // GxB_MIN_FIRST_UINT32 + GrB_MIN_FIRST_SEMIRING_UINT64, // GxB_MIN_FIRST_UINT64 + GrB_MIN_FIRST_SEMIRING_FP32, // GxB_MIN_FIRST_FP32 + GrB_MIN_FIRST_SEMIRING_FP64, // GxB_MIN_FIRST_FP64 -GrB_Info GxB_Vector_extractTuples_FC32 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - GxB_FC32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_SECOND semirings for all 10 real, non-boolean types: + GrB_MIN_SECOND_SEMIRING_INT8, // GxB_MIN_SECOND_INT8 + GrB_MIN_SECOND_SEMIRING_INT16, // GxB_MIN_SECOND_INT16 + GrB_MIN_SECOND_SEMIRING_INT32, // GxB_MIN_SECOND_INT32 + GrB_MIN_SECOND_SEMIRING_INT64, // GxB_MIN_SECOND_INT64 + GrB_MIN_SECOND_SEMIRING_UINT8, // GxB_MIN_SECOND_UINT8 + GrB_MIN_SECOND_SEMIRING_UINT16, // GxB_MIN_SECOND_UINT16 + GrB_MIN_SECOND_SEMIRING_UINT32, // GxB_MIN_SECOND_UINT32 + GrB_MIN_SECOND_SEMIRING_UINT64, // GxB_MIN_SECOND_UINT64 + GrB_MIN_SECOND_SEMIRING_FP32, // GxB_MIN_SECOND_FP32 + GrB_MIN_SECOND_SEMIRING_FP64, // GxB_MIN_SECOND_FP64 -GrB_Info GxB_Vector_extractTuples_FC64 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - GxB_FC64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_MAX semirings for all 10 real, non-boolean types: + GrB_MIN_MAX_SEMIRING_INT8, // GxB_MIN_MAX_INT8 + GrB_MIN_MAX_SEMIRING_INT16, // GxB_MIN_MAX_INT16 + GrB_MIN_MAX_SEMIRING_INT32, // GxB_MIN_MAX_INT32 + GrB_MIN_MAX_SEMIRING_INT64, // GxB_MIN_MAX_INT64 + GrB_MIN_MAX_SEMIRING_UINT8, // GxB_MIN_MAX_UINT8 + GrB_MIN_MAX_SEMIRING_UINT16, // GxB_MIN_MAX_UINT16 + GrB_MIN_MAX_SEMIRING_UINT32, // GxB_MIN_MAX_UINT32 + GrB_MIN_MAX_SEMIRING_UINT64, // GxB_MIN_MAX_UINT64 + GrB_MIN_MAX_SEMIRING_FP32, // GxB_MIN_MAX_FP32 + GrB_MIN_MAX_SEMIRING_FP64, // GxB_MIN_MAX_FP64 -GrB_Info GrB_Vector_extractTuples_UDT // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - void *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + //-------------------------------------------------------------------------- + // 50 semirings with MAX monoids + //-------------------------------------------------------------------------- -// Type-generic version: X can be a pointer to any supported C type or void * -// for a user-defined type. + // MAX_PLUS semirings for all 10 real, non-boolean types + GrB_MAX_PLUS_SEMIRING_INT8, // GxB_MAX_PLUS_INT8 + GrB_MAX_PLUS_SEMIRING_INT16, // GxB_MAX_PLUS_INT16 + GrB_MAX_PLUS_SEMIRING_INT32, // GxB_MAX_PLUS_INT32 + GrB_MAX_PLUS_SEMIRING_INT64, // GxB_MAX_PLUS_INT64 + GrB_MAX_PLUS_SEMIRING_UINT8, // GxB_MAX_PLUS_UINT8 + GrB_MAX_PLUS_SEMIRING_UINT16, // GxB_MAX_PLUS_UINT16 + GrB_MAX_PLUS_SEMIRING_UINT32, // GxB_MAX_PLUS_UINT32 + GrB_MAX_PLUS_SEMIRING_UINT64, // GxB_MAX_PLUS_UINT64 + GrB_MAX_PLUS_SEMIRING_FP32, // GxB_MAX_PLUS_FP32 + GrB_MAX_PLUS_SEMIRING_FP64, // GxB_MAX_PLUS_FP64 -/* -GrB_Info GrB_Vector_extractTuples // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; -*/ + // MAX_TIMES semirings for all 10 real, non-boolean types: + GrB_MAX_TIMES_SEMIRING_INT8, // GxB_MAX_TIMES_INT8 + GrB_MAX_TIMES_SEMIRING_INT16, // GxB_MAX_TIMES_INT16 + GrB_MAX_TIMES_SEMIRING_INT32, // GxB_MAX_TIMES_INT32 + GrB_MAX_TIMES_SEMIRING_INT64, // GxB_MAX_TIMES_INT64 + GrB_MAX_TIMES_SEMIRING_UINT8, // GxB_MAX_TIMES_UINT8 + GrB_MAX_TIMES_SEMIRING_UINT16, // GxB_MAX_TIMES_UINT16 + GrB_MAX_TIMES_SEMIRING_UINT32, // GxB_MAX_TIMES_UINT32 + GrB_MAX_TIMES_SEMIRING_UINT64, // GxB_MAX_TIMES_UINT64 + GrB_MAX_TIMES_SEMIRING_FP32, // GxB_MAX_TIMES_FP32 + GrB_MAX_TIMES_SEMIRING_FP64, // GxB_MAX_TIMES_FP64 -#if GxB_STDC_VERSION >= 201112L -#define GrB_Vector_extractTuples(Ilist,X,nvals,v) \ - _Generic \ - ( \ - (X), \ - GB_PCASES (GrB, Vector_extractTuples) \ - ) \ - (Ilist, X, nvals, v) -#endif + // MAX_FIRST semirings for all 10 real, non-boolean types: + GrB_MAX_FIRST_SEMIRING_INT8, // GxB_MAX_FIRST_INT8 + GrB_MAX_FIRST_SEMIRING_INT16, // GxB_MAX_FIRST_INT16 + GrB_MAX_FIRST_SEMIRING_INT32, // GxB_MAX_FIRST_INT32 + GrB_MAX_FIRST_SEMIRING_INT64, // GxB_MAX_FIRST_INT64 + GrB_MAX_FIRST_SEMIRING_UINT8, // GxB_MAX_FIRST_UINT8 + GrB_MAX_FIRST_SEMIRING_UINT16, // GxB_MAX_FIRST_UINT16 + GrB_MAX_FIRST_SEMIRING_UINT32, // GxB_MAX_FIRST_UINT32 + GrB_MAX_FIRST_SEMIRING_UINT64, // GxB_MAX_FIRST_UINT64 + GrB_MAX_FIRST_SEMIRING_FP32, // GxB_MAX_FIRST_FP32 + GrB_MAX_FIRST_SEMIRING_FP64, // GxB_MAX_FIRST_FP64 + + // MAX_SECOND semirings for all 10 real, non-boolean types: + GrB_MAX_SECOND_SEMIRING_INT8, // GxB_MAX_SECOND_INT8 + GrB_MAX_SECOND_SEMIRING_INT16, // GxB_MAX_SECOND_INT16 + GrB_MAX_SECOND_SEMIRING_INT32, // GxB_MAX_SECOND_INT32 + GrB_MAX_SECOND_SEMIRING_INT64, // GxB_MAX_SECOND_INT64 + GrB_MAX_SECOND_SEMIRING_UINT8, // GxB_MAX_SECOND_UINT8 + GrB_MAX_SECOND_SEMIRING_UINT16, // GxB_MAX_SECOND_UINT16 + GrB_MAX_SECOND_SEMIRING_UINT32, // GxB_MAX_SECOND_UINT32 + GrB_MAX_SECOND_SEMIRING_UINT64, // GxB_MAX_SECOND_UINT64 + GrB_MAX_SECOND_SEMIRING_FP32, // GxB_MAX_SECOND_FP32 + GrB_MAX_SECOND_SEMIRING_FP64, // GxB_MAX_SECOND_FP64 + + // MAX_MIN semirings for all 10 real, non-boolean types: + GrB_MAX_MIN_SEMIRING_INT8, // GxB_MAX_MIN_INT8 + GrB_MAX_MIN_SEMIRING_INT16, // GxB_MAX_MIN_INT16 + GrB_MAX_MIN_SEMIRING_INT32, // GxB_MAX_MIN_INT32 + GrB_MAX_MIN_SEMIRING_INT64, // GxB_MAX_MIN_INT64 + GrB_MAX_MIN_SEMIRING_UINT8, // GxB_MAX_MIN_UINT8 + GrB_MAX_MIN_SEMIRING_UINT16, // GxB_MAX_MIN_UINT16 + GrB_MAX_MIN_SEMIRING_UINT32, // GxB_MAX_MIN_UINT32 + GrB_MAX_MIN_SEMIRING_UINT64, // GxB_MAX_MIN_UINT64 + GrB_MAX_MIN_SEMIRING_FP32, // GxB_MAX_MIN_FP32 + GrB_MAX_MIN_SEMIRING_FP64, // GxB_MAX_MIN_FP64 + + //-------------------------------------------------------------------------- + // 4 boolean semirings: + //-------------------------------------------------------------------------- + + GrB_LOR_LAND_SEMIRING_BOOL, // GxB_LOR_LAND_BOOL + GrB_LAND_LOR_SEMIRING_BOOL, // GxB_LAND_LOR_BOOL + GrB_LXOR_LAND_SEMIRING_BOOL, // GxB_LXOR_LAND_BOOL + GrB_LXNOR_LOR_SEMIRING_BOOL ; // GxB_EQ_LOR_BOOL (note EQ == LXNOR) //============================================================================== -// GrB_Matrix: a GraphBLAS matrix +// GxB_fprint and GxB_print: print the contents of a GraphBLAS object //============================================================================== -typedef struct GB_Matrix_opaque *GrB_Matrix ; +typedef enum +{ + GxB_SILENT = 0, // nothing is printed, just check the object + GxB_SUMMARY = 1, // print a terse summary + GxB_SHORT = 2, // short description, about 30 entries of a matrix + GxB_COMPLETE = 3, // print the entire contents of the object + GxB_SHORT_VERBOSE = 4, // GxB_SHORT but with "%.15g" for doubles + GxB_COMPLETE_VERBOSE = 5 // GxB_COMPLETE but with "%.15g" for doubles +} +GxB_Print_Level ; -// These methods create, free, copy, and clear a matrix. The nrows, ncols, -// nvals, and type methods return basic information about a matrix. +//============================================================================== +// GrB import/export +//============================================================================== -GrB_Info GrB_Matrix_new // create a new matrix with no entries -( - GrB_Matrix *A, // handle of matrix to create - GrB_Type type, // type of matrix to create - GrB_Index nrows, // matrix dimension is nrows-by-ncols - GrB_Index ncols // (nrows and ncols must be <= GrB_INDEX_MAX+1) -) ; +// The GrB C API specification supports 3 formats: +typedef enum +{ + GrB_CSR_FORMAT = 0, // CSR format (equiv to GxB_SPARSE with GxB_BY_ROW) + GrB_CSC_FORMAT = 1, // CSC format (equiv to GxB_SPARSE with GxB_BY_COL) + GrB_COO_FORMAT = 2 // triplet format (like input to GrB*build) +} +GrB_Format ; -GrB_Info GrB_Matrix_dup // make an exact copy of a matrix -( - GrB_Matrix *C, // handle of output matrix to create - const GrB_Matrix A // input matrix to copy -) ; +//============================================================================== +// serialize/deserialize compression levels +//============================================================================== -GrB_Info GrB_Matrix_clear // clear a matrix of all entries; -( // type and dimensions remain unchanged - GrB_Matrix A // matrix to clear -) ; +// Currently implemented: no compression, LZ4, LZ4HC, and ZSTD +#define GxB_COMPRESSION_NONE -1 // no compression +#define GxB_COMPRESSION_DEFAULT 0 // ZSTD (level 1) +#define GxB_COMPRESSION_LZ4 1000 // LZ4 +#define GxB_COMPRESSION_LZ4HC 2000 // LZ4HC, with default level 9 +#define GxB_COMPRESSION_ZSTD 3000 // ZSTD, with default level 1 -GrB_Info GrB_Matrix_nrows // get the number of rows of a matrix +//============================================================================== +//=== GraphBLAS functions ====================================================== +//============================================================================== + +// All user-callable GrB* and GxB* functions in GraphBLAS are defined below. +// The GB_CUDA_FOLDER flag is only meant for use by the C++ functions in +// GraphBLAS/CUDA, since they do not need access these definitions. User +// applications have access to these methods. + +#if defined ( __cplusplus ) +extern "C" +{ +#endif + +#ifndef GB_CUDA_FOLDER + +//============================================================================== +// GrB_init / GrB_finalize +//============================================================================== + +GrB_Info GrB_init // start up GraphBLAS ( - GrB_Index *nrows, // matrix has nrows rows - const GrB_Matrix A // matrix to query + GrB_Mode mode // blocking or non-blocking mode, no GPU ) ; -GrB_Info GrB_Matrix_ncols // get the number of columns of a matrix +GrB_Info GxB_init // start up GraphBLAS and also define malloc, etc ( - GrB_Index *ncols, // matrix has ncols columns - const GrB_Matrix A // matrix to query + GrB_Mode mode, // blocking or non-blocking mode, + // with or without GPU + // pointers to memory management functions + void * (* user_malloc_function ) (size_t), + void * (* user_calloc_function ) (size_t, size_t), + void * (* user_realloc_function ) (void *, size_t), + void (* user_free_function ) (void *) ) ; -GrB_Info GrB_Matrix_nvals // get the number of entries in a matrix -( - GrB_Index *nvals, // matrix has nvals entries - const GrB_Matrix A // matrix to query -) ; +GrB_Info GrB_finalize (void) ; // finish GraphBLAS -// historical; use GrB_get instead: -GrB_Info GxB_Matrix_type (GrB_Type *type, const GrB_Matrix A) ; -GrB_Info GxB_Matrix_type_name (char *type_name, const GrB_Matrix A) ; +//============================================================================== +// GrB_getVersion: GraphBLAS C API version +//============================================================================== -GrB_Info GxB_Matrix_memoryUsage // return # of bytes used for a matrix +// GrB_getVersion provides a runtime access of the C API Version. Can also be +// done with two calls to GrB_Global_get_INT32 with the v2.1 C API: +// +// GrB_get (GrB_GLOBAL, &version, GrB_API_VER_MAJOR) ; +// GrB_get (GrB_GLOBAL, &subversion, GrB_API_VER_MINOR) ; + +GrB_Info GrB_getVersion // runtime access to C API version number ( - size_t *size, // # of bytes used by the matrix A - const GrB_Matrix A // matrix to query + unsigned int *version, // returns GRB_VERSION + unsigned int *subversion // returns GRB_SUBVERSION ) ; -GrB_Info GxB_Matrix_iso // return iso status of a matrix +//============================================================================== +// GrB_Descriptor: the GraphBLAS descriptor +//============================================================================== + +GrB_Info GrB_Descriptor_new // create a new descriptor ( - bool *iso, // true if the matrix is iso-valued - const GrB_Matrix A // matrix to query + GrB_Descriptor *descriptor // handle of descriptor to create ) ; -GrB_Info GrB_Matrix_free // free a matrix +// historical methods; use GrB_set and GrB_get instead: +GrB_Info GrB_Descriptor_set (GrB_Descriptor, GrB_Desc_Field, GrB_Desc_Value) ; +GrB_Info GxB_Descriptor_get (GrB_Desc_Value *, GrB_Descriptor, GrB_Desc_Field) ; +GrB_Info GxB_Desc_set (GrB_Descriptor, GrB_Desc_Field, ...) ; +GrB_Info GxB_Desc_set_INT32 (GrB_Descriptor, GrB_Desc_Field, int32_t) ; +GrB_Info GxB_Desc_set_FP64 (GrB_Descriptor, GrB_Desc_Field, double) ; +GrB_Info GxB_Desc_get (GrB_Descriptor, GrB_Desc_Field, ...) ; +GrB_Info GxB_Desc_get_INT32 (GrB_Descriptor, GrB_Desc_Field, int32_t *) ; +GrB_Info GxB_Desc_get_FP64 (GrB_Descriptor, GrB_Desc_Field, double *) ; + +GrB_Info GrB_Descriptor_free // free a descriptor ( - GrB_Matrix *A // handle of matrix to free + GrB_Descriptor *descriptor // handle of descriptor to free ) ; +//============================================================================== +// helper macros for polymorphic functions +//============================================================================== + +#define GB_CAT(w,x,y,z) w ## x ## y ## z +#define GB_CONCAT(w,x,y,z) GB_CAT (w, x, y, z) + +// methods for C scalars of various types +#define GB_CASES(prefix,func) \ + bool : GB_CONCAT ( prefix, _, func, _BOOL ), \ + int8_t : GB_CONCAT ( prefix, _, func, _INT8 ), \ + int16_t : GB_CONCAT ( prefix, _, func, _INT16 ), \ + int32_t : GB_CONCAT ( prefix, _, func, _INT32 ), \ + int64_t : GB_CONCAT ( prefix, _, func, _INT64 ), \ + uint8_t : GB_CONCAT ( prefix, _, func, _UINT8 ), \ + uint16_t : GB_CONCAT ( prefix, _, func, _UINT16 ), \ + uint32_t : GB_CONCAT ( prefix, _, func, _UINT32 ), \ + uint64_t : GB_CONCAT ( prefix, _, func, _UINT64 ), \ + float : GB_CONCAT ( prefix, _, func, _FP32 ), \ + double : GB_CONCAT ( prefix, _, func, _FP64 ), \ + GxB_FC32_t : GB_CONCAT ( GxB , _, func, _FC32 ), \ + GxB_FC64_t : GB_CONCAT ( GxB , _, func, _FC64 ), \ + const void * : GB_CONCAT ( prefix, _, func, _UDT ), \ + void * : GB_CONCAT ( prefix, _, func, _UDT ) + +// methods for C arrays of various types +#define GB_PCASES(prefix,func) \ + const bool * : GB_CONCAT ( prefix, _, func, _BOOL ), \ + bool * : GB_CONCAT ( prefix, _, func, _BOOL ), \ + const int8_t * : GB_CONCAT ( prefix, _, func, _INT8 ), \ + int8_t * : GB_CONCAT ( prefix, _, func, _INT8 ), \ + const int16_t * : GB_CONCAT ( prefix, _, func, _INT16 ), \ + int16_t * : GB_CONCAT ( prefix, _, func, _INT16 ), \ + const int32_t * : GB_CONCAT ( prefix, _, func, _INT32 ), \ + int32_t * : GB_CONCAT ( prefix, _, func, _INT32 ), \ + const int64_t * : GB_CONCAT ( prefix, _, func, _INT64 ), \ + int64_t * : GB_CONCAT ( prefix, _, func, _INT64 ), \ + const uint8_t * : GB_CONCAT ( prefix, _, func, _UINT8 ), \ + uint8_t * : GB_CONCAT ( prefix, _, func, _UINT8 ), \ + const uint16_t * : GB_CONCAT ( prefix, _, func, _UINT16 ), \ + uint16_t * : GB_CONCAT ( prefix, _, func, _UINT16 ), \ + const uint32_t * : GB_CONCAT ( prefix, _, func, _UINT32 ), \ + uint32_t * : GB_CONCAT ( prefix, _, func, _UINT32 ), \ + const uint64_t * : GB_CONCAT ( prefix, _, func, _UINT64 ), \ + uint64_t * : GB_CONCAT ( prefix, _, func, _UINT64 ), \ + const float * : GB_CONCAT ( prefix, _, func, _FP32 ), \ + float * : GB_CONCAT ( prefix, _, func, _FP32 ), \ + const double * : GB_CONCAT ( prefix, _, func, _FP64 ), \ + double * : GB_CONCAT ( prefix, _, func, _FP64 ), \ + const GxB_FC32_t * : GB_CONCAT ( GxB , _, func, _FC32 ), \ + GxB_FC32_t * : GB_CONCAT ( GxB , _, func, _FC32 ), \ + const GxB_FC64_t * : GB_CONCAT ( GxB , _, func, _FC64 ), \ + GxB_FC64_t * : GB_CONCAT ( GxB , _, func, _FC64 ), \ + const void * : GB_CONCAT ( prefix, _, func, _UDT ), \ + void * : GB_CONCAT ( prefix, _, func, _UDT ) + +//============================================================================== +// GrB_Type: data types +//============================================================================== + //------------------------------------------------------------------------------ -// GrB_Matrix_build +// GrB_Type_new: create a new type //------------------------------------------------------------------------------ -// GrB_Matrix_build: C = sparse (I,J,X), but using any -// associative operator to assemble duplicate entries. - -GrB_Info GrB_Matrix_build_BOOL // build a matrix from (I,J,X) tuples +GrB_Info GrB_Type_new // create a new GraphBLAS type ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const bool *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_Type *type, // handle of user type to create + size_t sizeof_ctype // size = sizeof (ctype) of the C type ) ; -GrB_Info GrB_Matrix_build_INT8 // build a matrix from (I,J,X) tuples +// GxB_Type_new creates a type with a name and definition that are known to +// GraphBLAS, as strings. The type_name is any valid string (max length of 128 +// characters, including the required null-terminating character) that may +// appear as the name of a C type created by a C "typedef" statement. It must +// not contain any white-space characters. Example, creating a type of size +// 16*4+4 = 68 bytes, with a 4-by-4 dense float array and a 32-bit integer: +// +// typedef struct { float x [4][4] ; int color ; } myquaternion ; +// GrB_Type MyQtype ; +// GxB_Type_new (&MyQtype, sizeof (myquaternion), "myquaternion", +// "typedef struct { float x [4][4] ; int color ; } myquaternion ;") ; +// +// The type_name and type_defn are both null-terminated strings. The two +// strings are required for best performance in the JIT (both on the CPU and +// GPU). User defined types created by GrB_Type_new will not work with a JIT. +// +// At most GxB_MAX_NAME_LEN characters are accessed in type_name; characters +// beyond that limit are silently ignored. + +GrB_Info GxB_Type_new // create a new named GraphBLAS type ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const int8_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_Type *type, // handle of user type to create + size_t sizeof_ctype, // size = sizeof (ctype) of the C type + const char *type_name, // name of the type (max 128 characters) + const char *type_defn // typedef for the type (no max length) ) ; -GrB_Info GrB_Matrix_build_UINT8 // build a matrix from (I,J,X) tuples +// historical; use GrB_get instead: +GrB_Info GxB_Type_name (char *type_name, const GrB_Type type) ; +GrB_Info GxB_Type_size (size_t *size, const GrB_Type type) ; + +GrB_Info GxB_Type_from_name // return the built-in GrB_Type from a name ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const uint8_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_Type *type, // built-in type, or NULL if user-defined. + // The name can be the underlying C type + // ("int8_t") or the GraphBLAS name + // ("GrB_INT8"). + const char *type_name // array of size at least GxB_MAX_NAME_LEN ) ; -GrB_Info GrB_Matrix_build_INT16 // build a matrix from (I,J,X) tuples +GrB_Info GrB_Type_free // free a user-defined type ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const int16_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_Type *type // handle of user-defined type to free ) ; -GrB_Info GrB_Matrix_build_UINT16 // build a matrix from (I,J,X) tuples +//============================================================================== +// GrB_UnaryOp: unary operators +//============================================================================== + +// GrB_UnaryOp_new creates a user-defined unary op (with no name or defn) +GrB_Info GrB_UnaryOp_new // create a new user-defined unary operator ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const uint16_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_UnaryOp *unaryop, // handle for the new unary operator + GxB_unary_function function, // pointer to the unary function + GrB_Type ztype, // type of output z + GrB_Type xtype // type of input x ) ; -GrB_Info GrB_Matrix_build_INT32 // build a matrix from (I,J,X) tuples +// GxB_UnaryOp_new creates a named and defined user-defined unary op. +GrB_Info GxB_UnaryOp_new // create a new user-defined unary operator ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const int32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_UnaryOp *unaryop, // handle for the new unary operator + GxB_unary_function function, // pointer to the unary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x + const char *unop_name, // name of the user function + const char *unop_defn // definition of the user function ) ; -GrB_Info GrB_Matrix_build_UINT32 // build a matrix from (I,J,X) tuples +// historical; use GrB_get instead: +GrB_Info GxB_UnaryOp_ztype (GrB_Type *ztype, GrB_UnaryOp unaryop) ; +GrB_Info GxB_UnaryOp_ztype_name (char *type_name, const GrB_UnaryOp unaryop) ; +GrB_Info GxB_UnaryOp_xtype (GrB_Type *xtype, GrB_UnaryOp unaryop) ; +GrB_Info GxB_UnaryOp_xtype_name (char *type_name, const GrB_UnaryOp unaryop) ; + +GrB_Info GrB_UnaryOp_free // free a user-created unary operator ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const uint32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_UnaryOp *unaryop // handle of unary operator to free ) ; -GrB_Info GrB_Matrix_build_INT64 // build a matrix from (I,J,X) tuples +//============================================================================== +// GrB_BinaryOp: binary operators +//============================================================================== + +// GrB_BinaryOp_new creates a user-defined binary op (no name or defn) +GrB_Info GrB_BinaryOp_new ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const int64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_BinaryOp *binaryop, // handle for the new binary operator + GxB_binary_function function, // pointer to the binary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x + GrB_Type ytype // type of input y ) ; -GrB_Info GrB_Matrix_build_UINT64 // build a matrix from (I,J,X) tuples -( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const uint64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; - -GrB_Info GrB_Matrix_build_FP32 // build a matrix from (I,J,X) tuples +// GxB_BinaryOp_new creates a named and defined user-defined binary op. +GrB_Info GxB_BinaryOp_new ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const float *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_BinaryOp *op, // handle for the new binary operator + GxB_binary_function function, // pointer to the binary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x + GrB_Type ytype, // type of input y + const char *binop_name, // name of the user function + const char *binop_defn // definition of the user function ) ; -GrB_Info GrB_Matrix_build_FP64 // build a matrix from (I,J,X) tuples -( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const double *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; +// historical; use GrB_get instead: +GrB_Info GxB_BinaryOp_ztype (GrB_Type *ztype, GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_ztype_name (char *type_name, const GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_xtype (GrB_Type *xtype, GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_xtype_name (char *type_name, const GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_ytype (GrB_Type *ytype, GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_ytype_name (char *type_name, const GrB_BinaryOp op) ; -GrB_Info GxB_Matrix_build_FC32 // build a matrix from (I,J,X) tuples +GrB_Info GrB_BinaryOp_free // free a user-created binary operator ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const GxB_FC32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_BinaryOp *binaryop // handle of binary operator to free ) ; -GrB_Info GxB_Matrix_build_FC64 // build a matrix from (I,J,X) tuples -( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const GxB_FC64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; +//============================================================================== +// GxB_SelectOp: select operators (DEPRECATED: do not use) +//============================================================================== -GrB_Info GrB_Matrix_build_UDT // build a matrix from (I,J,X) tuples +// historical; use GrB_select and GrB_IndexUnaryOp instead: +GrB_Info GxB_SelectOp_xtype (GrB_Type *xtype, GxB_SelectOp selectop) ; +GrB_Info GxB_SelectOp_ttype (GrB_Type *ttype, GxB_SelectOp selectop) ; + +//============================================================================== +// GrB_IndexUnaryOp: a unary operator that depends on the row/col indices +//============================================================================== + +// GrB_IndexUnaryOp_new creates a user-defined unary op (no name or defn) + +GrB_Info GrB_IndexUnaryOp_new // create a new user-defined IndexUnary op ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const void *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator + GxB_index_unary_function function, // pointer to IndexUnary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x (the A(i,j) entry) + GrB_Type ytype // type of input y (the scalar) ) ; -GrB_Info GxB_Matrix_build_Scalar // build a matrix from (I,J,scalar) tuples +GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - GrB_Scalar scalar, // value for all tuples - GrB_Index nvals // number of tuples + GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator + GxB_index_unary_function function, // pointer to index_unary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x (the A(i,j) entry) + GrB_Type ytype, // type of input y (the scalar) + const char *idxop_name, // name of the user function + const char *idxop_defn // definition of the user function ) ; -// Type-generic version: X can be a pointer to any supported C type or void * -// for a user-defined type. +// historical; use GrB_get instead: +GrB_Info GxB_IndexUnaryOp_ztype_name (char *, const GrB_IndexUnaryOp op) ; +GrB_Info GxB_IndexUnaryOp_xtype_name (char *, const GrB_IndexUnaryOp op) ; +GrB_Info GxB_IndexUnaryOp_ytype_name (char *, const GrB_IndexUnaryOp op) ; -/* -GrB_Info GrB_Matrix_build // build a matrix from (I,J,X) tuples +GrB_Info GrB_IndexUnaryOp_free // free a user-created IndexUnaryOp ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_IndexUnaryOp *op // handle of IndexUnary to free ) ; -*/ - -#if GxB_STDC_VERSION >= 201112L -#define GrB_Matrix_build(C,Ilist,J,X,nvals,dup) \ - _Generic \ - ( \ - (X), \ - GB_PCASES (GrB, Matrix_build) \ - ) \ - (C, Ilist, J, ((const void *) (X)), nvals, dup) -#endif - -//------------------------------------------------------------------------------ -// GrB_Matrix_setElement -//------------------------------------------------------------------------------ -// Set a single entry in a matrix, C(i,j) = x, typecasting -// from the type of x to the type of C, as needed. +//============================================================================== +// GrB_Monoid +//============================================================================== -GrB_Info GrB_Matrix_setElement_BOOL // C (i,j) = x +GrB_Info GrB_Monoid_new_BOOL // create a new boolean monoid ( - GrB_Matrix C, // matrix to modify - bool x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + bool identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_INT8 // C (i,j) = x +GrB_Info GrB_Monoid_new_INT8 // create a new int8 monoid ( - GrB_Matrix C, // matrix to modify - int8_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int8_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UINT8 // C (i,j) = x +GrB_Info GrB_Monoid_new_UINT8 // create a new uint8 monoid ( - GrB_Matrix C, // matrix to modify - uint8_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint8_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_INT16 // C (i,j) = x +GrB_Info GrB_Monoid_new_INT16 // create a new int16 monoid ( - GrB_Matrix C, // matrix to modify - int16_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int16_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UINT16 // C (i,j) = x +GrB_Info GrB_Monoid_new_UINT16 // create a new uint16 monoid ( - GrB_Matrix C, // matrix to modify - uint16_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint16_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_INT32 // C (i,j) = x +GrB_Info GrB_Monoid_new_INT32 // create a new int32 monoid ( - GrB_Matrix C, // matrix to modify - int32_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int32_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UINT32 // C (i,j) = x +GrB_Info GrB_Monoid_new_UINT32 // create a new uint32 monoid ( - GrB_Matrix C, // matrix to modify - uint32_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint32_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_INT64 // C (i,j) = x +GrB_Info GrB_Monoid_new_INT64 // create a new int64 monoid ( - GrB_Matrix C, // matrix to modify - int64_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int64_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UINT64 // C (i,j) = x +GrB_Info GrB_Monoid_new_UINT64 // create a new uint64 monoid ( - GrB_Matrix C, // matrix to modify - uint64_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint64_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_FP32 // C (i,j) = x +GrB_Info GrB_Monoid_new_FP32 // create a new float monoid ( - GrB_Matrix C, // matrix to modify - float x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + float identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_FP64 // C (i,j) = x +GrB_Info GrB_Monoid_new_FP64 // create a new double monoid ( - GrB_Matrix C, // matrix to modify - double x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + double identity // identity value of the monoid ) ; -GrB_Info GxB_Matrix_setElement_FC32 // C (i,j) = x +GrB_Info GxB_Monoid_new_FC32 // create a new float complex monoid ( - GrB_Matrix C, // matrix to modify - GxB_FC32_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + GxB_FC32_t identity // identity value of the monoid ) ; -GrB_Info GxB_Matrix_setElement_FC64 // C (i,j) = x +GrB_Info GxB_Monoid_new_FC64 // create a new double complex monoid ( - GrB_Matrix C, // matrix to modify - GxB_FC64_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + GxB_FC64_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UDT // C (i,j) = x +GrB_Info GrB_Monoid_new_UDT // create a monoid with a user-defined type ( - GrB_Matrix C, // matrix to modify - void *x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index -) ; - -GrB_Info GrB_Matrix_setElement_Scalar // C (i,j) = x -( - GrB_Matrix C, // matrix to modify - GrB_Scalar x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + void *identity // identity value of the monoid ) ; -// Type-generic version: x can be any supported C type or void * for a -// user-defined type. +// Type-generic method for creating a new monoid: /* -GrB_Info GrB_Matrix_setElement // C (i,j) = x +GrB_Info GrB_Monoid_new // create a monoid ( - GrB_Matrix C, // matrix to modify - x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + identity // identity value of the monoid ) ; */ #if GxB_STDC_VERSION >= 201112L -#define GrB_Matrix_setElement(C,x,i,j) \ - _Generic \ - ( \ - (x), \ - GB_CASES (GrB, Matrix_setElement), \ - default: GrB_Matrix_setElement_Scalar \ - ) \ - (C, x, i, j) +#define GrB_Monoid_new(monoid,op,identity) \ + _Generic \ + ( \ + (identity), \ + GB_CASES (GrB, Monoid_new) \ + ) \ + (monoid, op, identity) #endif -//------------------------------------------------------------------------------ -// GrB_Matrix_extractElement -//------------------------------------------------------------------------------ - -// Extract a single entry from a matrix, x = A(i,j), typecasting from the type -// of A to the type of x, as needed. - -GrB_Info GrB_Matrix_extractElement_BOOL // x = A(i,j) -( - bool *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index -) ; +// GxB_Monoid_terminal_new is identical to GrB_Monoid_new, except that a +// terminal value can be specified. The terminal may be NULL, which indicates +// no terminal value (and in this case, it is identical to GrB_Monoid_new). +// The terminal value, if not NULL, must have the same type as the identity. -GrB_Info GrB_Matrix_extractElement_INT8 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_BOOL // create a new boolean monoid ( - int8_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + bool identity, // identity value of the monoid + bool terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UINT8 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_INT8 // create a new int8 monoid ( - uint8_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int8_t identity, // identity value of the monoid + int8_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_INT16 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UINT8 // create a new uint8 monoid ( - int16_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint8_t identity, // identity value of the monoid + uint8_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UINT16 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_INT16 // create a new int16 monoid ( - uint16_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int16_t identity, // identity value of the monoid + int16_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_INT32 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UINT16 // create a new uint16 monoid ( - int32_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint16_t identity, // identity value of the monoid + uint16_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UINT32 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_INT32 // create a new int32 monoid ( - uint32_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int32_t identity, // identity value of the monoid + int32_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_INT64 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UINT32 // create a new uint32 monoid ( - int64_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint32_t identity, // identity value of the monoid + uint32_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UINT64 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_INT64 // create a new int64 monoid ( - uint64_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int64_t identity, // identity value of the monoid + int64_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_FP32 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UINT64 // create a new uint64 monoid ( - float *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint64_t identity, // identity value of the monoid + uint64_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_FP64 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_FP32 // create a new float monoid ( - double *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + float identity, // identity value of the monoid + float terminal // terminal value of the monoid ) ; -GrB_Info GxB_Matrix_extractElement_FC32 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_FP64 // create a new double monoid ( - GxB_FC32_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + double identity, // identity value of the monoid + double terminal // terminal value of the monoid ) ; -GrB_Info GxB_Matrix_extractElement_FC64 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_FC32 // create a new float complex monoid ( - GxB_FC64_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + GxB_FC32_t identity, // identity value of the monoid + GxB_FC32_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UDT // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_FC64 // create a new double complex monoid ( - void *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + GxB_FC64_t identity, // identity value of the monoid + GxB_FC64_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_Scalar // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UDT // create a monoid with a user type ( - GrB_Scalar x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + void *identity, // identity value of the monoid + void *terminal // terminal value of the monoid ) ; -// Type-generic version: x can be a pointer to any supported C type or void * -// for a user-defined type. +// Type-generic method for creating a new monoid with a terminal value: /* -GrB_Info GrB_Matrix_extractElement // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new // create a monoid ( - *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + identity, // identity value of the monoid + terminal // terminal value of the monoid ) ; */ #if GxB_STDC_VERSION >= 201112L -#define GrB_Matrix_extractElement(x,A,i,j) \ +#define GxB_Monoid_terminal_new(monoid,op,identity,terminal) \ _Generic \ ( \ - (x), \ - GB_PCASES (GrB, Matrix_extractElement), \ - default: GrB_Matrix_extractElement_Scalar \ + (identity), \ + GB_CASES (GxB, Monoid_terminal_new) \ ) \ - (x, A, i, j) + (monoid, op, identity, terminal) #endif -// GxB_Matrix_isStoredElement determines if A(i,j) is present in the structure -// of the matrix A, as a stored element. It does not return the value. It -// returns GrB_SUCCESS if the element is present, or GrB_NO_VALUE otherwise. +// historical; use GrB_get instead: +GrB_Info GxB_Monoid_operator (GrB_BinaryOp *op, GrB_Monoid monoid) ; +GrB_Info GxB_Monoid_identity (void *identity, GrB_Monoid monoid) ; +GrB_Info GxB_Monoid_terminal (bool *, void *terminal, GrB_Monoid monoid) ; -GrB_Info GxB_Matrix_isStoredElement // determine if A(i,j) is a stored element +GrB_Info GrB_Monoid_free // free a user-created monoid ( - const GrB_Matrix A, // matrix to check - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid // handle of monoid to free ) ; -//------------------------------------------------------------------------------ -// GrB_Matrix_removeElement -//------------------------------------------------------------------------------ - -// GrB_Matrix_removeElement (A,i,j) removes the entry A(i,j) from the matrix A. +//============================================================================== +// GrB_Semiring +//============================================================================== -GrB_Info GrB_Matrix_removeElement +GrB_Info GrB_Semiring_new // create a semiring ( - GrB_Matrix C, // matrix to remove entry from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Semiring *semiring, // handle of semiring to create + GrB_Monoid add, // add monoid of the semiring + GrB_BinaryOp multiply // multiply operator of the semiring ) ; -//------------------------------------------------------------------------------ -// GrB_Matrix_extractTuples -//------------------------------------------------------------------------------ +// historical; use GrB_get instead: +GrB_Info GxB_Semiring_add (GrB_Monoid *add, GrB_Semiring semiring) ; +GrB_Info GxB_Semiring_multiply (GrB_BinaryOp *multiply, GrB_Semiring semiring) ; -// Extracts all tuples from a matrix, like [I,J,X] = find (A). If -// any parameter I, J and/or X is NULL, then that component is not extracted. -// For example, to extract just the row and col indices, pass I and J as -// non-NULL, and X as NULL. This is like [I,J,~] = find (A). +GrB_Info GrB_Semiring_free // free a user-created semiring +( + GrB_Semiring *semiring // handle of semiring to free +) ; -GrB_Info GrB_Matrix_extractTuples_BOOL // [I,J,X] = find (A) +//============================================================================== +// GrB_Scalar: a GraphBLAS scalar +//============================================================================== + +// These methods create, free, copy, and clear a GrB_Scalar. The nvals, +// and type methods return basic information about a GrB_Scalar. + +GrB_Info GrB_Scalar_new // create a new GrB_Scalar with no entry ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - bool *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar *s, // handle of GrB_Scalar to create + GrB_Type type // type of GrB_Scalar to create ) ; -GrB_Info GrB_Matrix_extractTuples_INT8 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_dup // make an exact copy of a GrB_Scalar ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - int8_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar *s, // handle of output GrB_Scalar to create + const GrB_Scalar t // input GrB_Scalar to copy ) ; -GrB_Info GrB_Matrix_extractTuples_UINT8 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_clear // clear a GrB_Scalar of its entry +( // type remains unchanged. + GrB_Scalar s // GrB_Scalar to clear +) ; + +GrB_Info GrB_Scalar_nvals // get the number of entries in a GrB_Scalar ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - uint8_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Index *nvals, // GrB_Scalar has nvals entries (0 or 1) + const GrB_Scalar s // GrB_Scalar to query ) ; -GrB_Info GrB_Matrix_extractTuples_INT16 // [I,J,X] = find (A) +// historical; use GrB_get instead: +GrB_Info GxB_Scalar_type (GrB_Type *type, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_type_name (char *type_name, const GrB_Scalar s) ; + +GrB_Info GxB_Scalar_memoryUsage // return # of bytes used for a scalar ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - int16_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + size_t *size, // # of bytes used by the scalar s + const GrB_Scalar s // GrB_Scalar to query ) ; -GrB_Info GrB_Matrix_extractTuples_UINT16 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_free // free a GrB_Scalar ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - uint16_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar *s // handle of GrB_Scalar to free ) ; -GrB_Info GrB_Matrix_extractTuples_INT32 // [I,J,X] = find (A) +// historical names identical to GrB_Scalar_methods above: +GrB_Info GxB_Scalar_new (GrB_Scalar *s, GrB_Type type) ; +GrB_Info GxB_Scalar_dup (GrB_Scalar *s, const GrB_Scalar t) ; +GrB_Info GxB_Scalar_clear (GrB_Scalar s) ; +GrB_Info GxB_Scalar_nvals (GrB_Index *nvals, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_free (GrB_Scalar *s) ; + +//------------------------------------------------------------------------------ +// GrB_Scalar_setElement +//------------------------------------------------------------------------------ + +// Set a single GrB_Scalar s, from a user scalar x: s = x, typecasting from the +// type of x to the type of w as needed. + +GrB_Info GrB_Scalar_setElement_BOOL // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - int32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + bool x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_UINT32 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_INT8 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - uint32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + int8_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_INT64 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_UINT8 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - int64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + uint8_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_UINT64 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_INT16 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - uint64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + int16_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_FP32 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_UINT16 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - float *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + uint16_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_FP64 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_INT32 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - double *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + int32_t x // user scalar to assign to s ) ; -GrB_Info GxB_Matrix_extractTuples_FC32 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_UINT32 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - GxB_FC32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + uint32_t x // user scalar to assign to s ) ; -GrB_Info GxB_Matrix_extractTuples_FC64 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_INT64 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - GxB_FC64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + int64_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_UDT // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_UINT64 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - void *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + uint64_t x // user scalar to assign to s ) ; -// Type-generic version: X can be a pointer to any supported C type or void * -// for a user-defined type. +GrB_Info GrB_Scalar_setElement_FP32 // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + float x // user scalar to assign to s +) ; + +GrB_Info GrB_Scalar_setElement_FP64 // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + double x // user scalar to assign to s +) ; + +GrB_Info GxB_Scalar_setElement_FC32 // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + GxB_FC32_t x // user scalar to assign to s +) ; + +GrB_Info GxB_Scalar_setElement_FC64 // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + GxB_FC64_t x // user scalar to assign to s +) ; + +GrB_Info GrB_Scalar_setElement_UDT // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + void *x // user scalar to assign to s +) ; + +// historical names identical to GrB_Scalar_methods above: +GrB_Info GxB_Scalar_setElement_BOOL (GrB_Scalar s, bool x) ; +GrB_Info GxB_Scalar_setElement_INT8 (GrB_Scalar s, int8_t x) ; +GrB_Info GxB_Scalar_setElement_INT16 (GrB_Scalar s, int16_t x) ; +GrB_Info GxB_Scalar_setElement_INT32 (GrB_Scalar s, int32_t x) ; +GrB_Info GxB_Scalar_setElement_INT64 (GrB_Scalar s, int64_t x) ; +GrB_Info GxB_Scalar_setElement_UINT8 (GrB_Scalar s, uint8_t x) ; +GrB_Info GxB_Scalar_setElement_UINT16 (GrB_Scalar s, uint16_t x) ; +GrB_Info GxB_Scalar_setElement_UINT32 (GrB_Scalar s, uint32_t x) ; +GrB_Info GxB_Scalar_setElement_UINT64 (GrB_Scalar s, uint64_t x) ; +GrB_Info GxB_Scalar_setElement_FP32 (GrB_Scalar s, float x) ; +GrB_Info GxB_Scalar_setElement_FP64 (GrB_Scalar s, double x) ; +GrB_Info GxB_Scalar_setElement_UDT (GrB_Scalar s, void *x) ; + +// Type-generic version: x can be any supported C type or void * for a +// user-defined type. /* -GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + x // user scalar to assign to s ) ; */ #if GxB_STDC_VERSION >= 201112L -#define GrB_Matrix_extractTuples(Ilist,J,X,nvals,A) \ - _Generic \ - ( \ - (X), \ - GB_PCASES (GrB, Matrix_extractTuples) \ - ) \ - (Ilist, J, X, nvals, A) +#define GrB_Scalar_setElement(s,x) \ + _Generic \ + ( \ + (x), \ + GB_CASES (GrB, Scalar_setElement) \ + ) \ + (s, x) + +// historical; use GrB_Scalar_setElement instead: +#define GxB_Scalar_setElement(s,x) GrB_Scalar_setElement (s, x) #endif //------------------------------------------------------------------------------ -// GxB_Matrix_concat and GxB_Matrix_split +// GrB_Scalar_extractElement //------------------------------------------------------------------------------ -// GxB_Matrix_concat concatenates an array of matrices (Tiles) into a single -// GrB_Matrix C. - -// Tiles is an m-by-n dense array of matrices held in row-major format, where -// Tiles [i*n+j] is the (i,j)th tile, and where m > 0 and n > 0 must hold. Let -// A{i,j} denote the (i,j)th tile. The matrix C is constructed by -// concatenating these tiles together, as: +// Extract a single entry from a GrB_Scalar, x = s, typecasting from the type +// of s to the type of x as needed. -// C = [ A{0,0} A{0,1} A{0,2} ... A{0,n-1} -// A{1,0} A{1,1} A{1,2} ... A{1,n-1} -// ... -// A{m-1,0} A{m-1,1} A{m-1,2} ... A{m-1,n-1} ] +GrB_Info GrB_Scalar_extractElement_BOOL // x = s +( + bool *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -// On input, the matrix C must already exist. Any existing entries in C are -// discarded. C must have dimensions nrows by ncols where nrows is the sum of -// # of rows in the matrices A{i,0} for all i, and ncols is the sum of the # of -// columns in the matrices A{0,j} for all j. All matrices in any given tile -// row i must have the same number of rows (that is, nrows(A{i,0}) must equal -// nrows(A{i,j}) for all j), and all matrices in any given tile column j must -// have the same number of columns (that is, ncols(A{0,j}) must equal -// ncols(A{i,j}) for all i). - -// The type of C is unchanged, and all matrices A{i,j} are typecasted into the -// type of C. Any settings made to C by GrB_set (format by row -// or by column, bitmap switch, hyper switch, and sparsity control) are -// unchanged. +GrB_Info GrB_Scalar_extractElement_INT8 // x = s +( + int8_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GxB_Matrix_concat // concatenate a 2D array of matrices +GrB_Info GrB_Scalar_extractElement_UINT8 // x = s ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix *Tiles, // 2D row-major array of size m-by-n - const GrB_Index m, - const GrB_Index n, - const GrB_Descriptor desc // unused, except threading control + uint8_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -// GxB_Matrix_split does the opposite of GxB_Matrix_concat. It splits a single -// input matrix A into a 2D array of tiles. On input, the Tiles array must be -// a non-NULL pointer to a previously allocated array of size at least m*n -// where both m and n must be > 0. The Tiles_nrows array has size m, and -// Tiles_ncols has size n. The (i,j)th tile has dimension -// Tiles_nrows[i]-by-Tiles_ncols[j]. The sum of Tiles_nrows [0:m-1] must equal -// the number of rows of A, and the sum of Tiles_ncols [0:n-1] must equal the -// number of columns of A. The type of each tile is the same as the type of A; -// no typecasting is done. +GrB_Info GrB_Scalar_extractElement_INT16 // x = s +( + int16_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GxB_Matrix_split // split a matrix into 2D array of matrices +GrB_Info GrB_Scalar_extractElement_UINT16 // x = s ( - GrB_Matrix *Tiles, // 2D row-major array of size m-by-n - const GrB_Index m, - const GrB_Index n, - const GrB_Index *Tile_nrows, // array of size m - const GrB_Index *Tile_ncols, // array of size n - const GrB_Matrix A, // input matrix to split - const GrB_Descriptor desc // unused, except threading control + uint16_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -//------------------------------------------------------------------------------ -// GxB_Matrix_diag, GxB_Vector_diag, GrB_Matrix_diag -//------------------------------------------------------------------------------ +GrB_Info GrB_Scalar_extractElement_INT32 // x = s +( + int32_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -// GrB_Matrix_diag constructs a new matrix from a vector. Let n be the length -// of the v vector, from GrB_Vector_size (&n, v). If k = 0, then C is an -// n-by-n diagonal matrix with the entries from v along the main diagonal of C, -// with C(i,i) = v(i). If k is nonzero, C is square with dimension n+abs(k). -// If k is positive, it denotes diagonals above the main diagonal, with -// C(i,i+k) = v(i). If k is negative, it denotes diagonals below the main -// diagonal of C, with C(i-k,i) = v(i). C is constructed with the same type -// as v. +GrB_Info GrB_Scalar_extractElement_UINT32 // x = s +( + uint32_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GrB_Matrix_diag // build a diagonal matrix from a vector +GrB_Info GrB_Scalar_extractElement_INT64 // x = s ( - GrB_Matrix *C, // output matrix - const GrB_Vector v, // input vector - int64_t k + int64_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -// GrB_Matrix_diag is like GxB_Matrix_diag (&C, v, k, NULL), except that C must -// already exist on input, of the correct size. Any existing entries in C are -// discarded. The type of C is preserved, so that if the type of C and v -// differ, the entries are typecasted into the type of C. Any settings made to -// C by GrB_set (format by row or by column, bitmap switch, hyper -// switch, and sparsity control) are unchanged. +GrB_Info GrB_Scalar_extractElement_UINT64 // x = s +( + uint64_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GxB_Matrix_diag // construct a diagonal matrix from a vector +GrB_Info GrB_Scalar_extractElement_FP32 // x = s ( - GrB_Matrix C, // output matrix - const GrB_Vector v, // input vector - int64_t k, - const GrB_Descriptor desc // to specify # of threads + float *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -// GxB_Vector_diag extracts a vector v from an input matrix A, which may be -// rectangular. If k = 0, the main diagonal of A is extracted; k > 0 denotes -// diagonals above the main diagonal of A, and k < 0 denotes diagonals below -// the main diagonal of A. Let A have dimension m-by-n. If k is in the range -// 0 to n-1, then v has length min(m,n-k). If k is negative and in the range -// -1 to -m+1, then v has length min(m+k,n). If k is outside these ranges, -// v has length 0 (this is not an error). +GrB_Info GrB_Scalar_extractElement_FP64 // x = s +( + double *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -// v must already exist on input, of the correct length; that is -// GrB_Vector_size (&len,v) must return len = 0 if k >= n or k <= -m, len = -// min(m,n-k) if k is in the range 0 to n-1, and len = min(m+k,n) if k is in -// the range -1 to -m+1. Any existing entries in v are discarded. The type of -// v is preserved, so that if the type of A and v differ, the entries are -// typecasted into the type of v. Any settings made to v by -// GrB_set (bitmap switch and sparsity control) are unchanged. +GrB_Info GxB_Scalar_extractElement_FC32 // x = s +( + GxB_FC32_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GxB_Vector_diag // extract a diagonal from a matrix, as a vector +GrB_Info GxB_Scalar_extractElement_FC64 // x = s ( - GrB_Vector v, // output vector - const GrB_Matrix A, // input matrix - int64_t k, - const GrB_Descriptor desc // unused, except threading control + GxB_FC64_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -//============================================================================== -// SuiteSparse:GraphBLAS options -//============================================================================== +GrB_Info GrB_Scalar_extractElement_UDT // x = s +( + void *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -// The following options modify how SuiteSparse:GraphBLAS stores and operates -// on its matrices. The GrB_get/set methods allow the user to suggest how the -// internal representation of a matrix, or all matrices, should be held. These -// options have no effect on the result (except for minor roundoff differences -// for floating-point types). They only affect the time and memory usage of the -// computations. +// historical names identical to GrB_Scalar_methods above: +GrB_Info GxB_Scalar_extractElement_BOOL (bool *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_INT8 (int8_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_INT16 (int16_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_INT32 (int32_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_INT64 (int64_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UINT8 (uint8_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UINT16 (uint16_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UINT32 (uint32_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UINT64 (uint64_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_FP32 (float *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_FP64 (double *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UDT (void *x, const GrB_Scalar s) ; -typedef enum // for global options or matrix options -{ +// Type-generic version: x can be a pointer to any supported C type or void * +// for a user-defined type. - //------------------------------------------------------------ - // GrB_get / GrB_set for GrB_Matrix and GrB_GLOBAL: - //------------------------------------------------------------ +/* - GxB_HYPER_SWITCH = 7000, // switch to hypersparse (double value) - GxB_HYPER_HASH = 7048, // hyper_hash control (int64 value) - GxB_BITMAP_SWITCH = 7001, // switch to bitmap (double value) - GxB_FORMAT = 7002, // historical; use GrB_STORAGE_ORIENTATION_HINT +GrB_Info GrB_Scalar_extractElement // x = s +( + *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; - //------------------------------------------------------------ - // GrB_get for GrB_GLOBAL: - //------------------------------------------------------------ +*/ - GxB_MODE = 7003, // historical; use GrB_BLOCKING_MODE - GxB_LIBRARY_NAME = 7004, // historical; use GrB_NAME - GxB_LIBRARY_VERSION = 7005, // historical; use GrB_LIBRARY_VER_* - GxB_LIBRARY_DATE = 7006, // date of the library (char *) - GxB_LIBRARY_ABOUT = 7007, // about the library (char *) - GxB_LIBRARY_URL = 7008, // URL for the library (char *) - GxB_LIBRARY_LICENSE = 7009, // license of the library (char *) - GxB_LIBRARY_COMPILE_DATE = 7010, // date library was compiled (char *) - GxB_LIBRARY_COMPILE_TIME = 7011, // time library was compiled (char *) - GxB_API_VERSION = 7012, // historical; use GrB_API_VER_* - GxB_API_DATE = 7013, // date of the API (char *) - GxB_API_ABOUT = 7014, // about the API (char *) - GxB_API_URL = 7015, // URL for the API (char *) - GxB_COMPILER_VERSION = 7016, // compiler version (3 int's) - GxB_COMPILER_NAME = 7017, // compiler name (char *) - GxB_LIBRARY_OPENMP = 7018, // library compiled with OpenMP - GxB_MALLOC_FUNCTION = 7037, // malloc function pointer - GxB_CALLOC_FUNCTION = 7038, // calloc function pointer - GxB_REALLOC_FUNCTION = 7039, // realloc function pointer - GxB_FREE_FUNCTION = 7040, // free function pointer +#if GxB_STDC_VERSION >= 201112L +#define GrB_Scalar_extractElement(x,s) \ + _Generic \ + ( \ + (x), \ + GB_PCASES (GrB, Scalar_extractElement) \ + ) \ + (x, s) - //------------------------------------------------------------ - // GrB_get / GrB_set for GrB_GLOBAL: - //------------------------------------------------------------ +// historical; use GrB_Scalar_extractElement instead: +#define GxB_Scalar_extractElement(x,s) GrB_Scalar_extractElement (x, s) +#endif - GxB_GLOBAL_NTHREADS = GxB_NTHREADS, // max number of threads to use - GxB_GLOBAL_CHUNK = GxB_CHUNK, // chunk size for small problems. - GxB_GLOBAL_GPU_ID = GxB_GPU_ID, // which GPU to use (DRAFT) +//============================================================================== +// GrB_Vector: a GraphBLAS vector +//============================================================================== - GxB_BURBLE = 7019, // diagnostic output - GxB_PRINTF = 7020, // printf function diagnostic output - GxB_FLUSH = 7021, // flush function diagnostic output - GxB_MEMORY_POOL = 7022, // no longer used - GxB_PRINT_1BASED = 7023, // print matrices as 0-based or 1-based +// These methods create, free, copy, and clear a vector. The size, nvals, +// and type methods return basic information about a vector. - GxB_JIT_C_COMPILER_NAME = 7024, // CPU JIT C compiler name - GxB_JIT_C_COMPILER_FLAGS = 7025, // CPU JIT C compiler flags - GxB_JIT_C_LINKER_FLAGS = 7026, // CPU JIT C linker flags - GxB_JIT_C_LIBRARIES = 7027, // CPU JIT C libraries - GxB_JIT_C_PREFACE = 7028, // CPU JIT C preface - GxB_JIT_C_CONTROL = 7029, // CPU JIT C control - GxB_JIT_CACHE_PATH = 7030, // CPU/CUDA JIT path for compiled kernels - GxB_JIT_C_CMAKE_LIBS = 7031, // CPU JIT C libraries when using cmake - GxB_JIT_USE_CMAKE = 7032, // CPU JIT: use cmake or direct compile - GxB_JIT_ERROR_LOG = 7033, // CPU JIT: error log file +GrB_Info GrB_Vector_new // create a new vector with no entries +( + GrB_Vector *v, // handle of vector to create + GrB_Type type, // type of vector to create + GrB_Index n // vector dimension is n-by-1 + // (n must be <= GrB_INDEX_MAX+1) +) ; - GxB_JIT_CUDA_PREFACE = 7100, // CUDA JIT C++ preface +GrB_Info GrB_Vector_dup // make an exact copy of a vector +( + GrB_Vector *w, // handle of output vector to create + const GrB_Vector u // input vector to copy +) ; - //------------------------------------------------------------ - // GrB_get for GrB_Matrix: - //------------------------------------------------------------ +GrB_Info GrB_Vector_clear // clear a vector of all entries; +( // type and dimension remain unchanged. + GrB_Vector v // vector to clear +) ; - GxB_SPARSITY_STATUS = 7034, // hyper, sparse, bitmap or full (1,2,4,8) - GxB_IS_HYPER = 7035, // historical; use GxB_SPARSITY_STATUS - - //------------------------------------------------------------ - // GrB_get/GrB_set for GrB_Matrix: - //------------------------------------------------------------ - - GxB_SPARSITY_CONTROL = 7036, // sparsity control: 0 to 15; see below - -} GxB_Option_Field ; - -// for GxB_JIT_C_CONTROL: -typedef enum -{ - GxB_JIT_OFF = 0, // do not use the JIT: free all JIT kernels if loaded - GxB_JIT_PAUSE = 1, // do not run JIT kernels but keep any loaded - GxB_JIT_RUN = 2, // run JIT kernels if already loaded; no load/compile - GxB_JIT_LOAD = 3, // able to load and run JIT kernels; may not compile - GxB_JIT_ON = 4, // full JIT: able to compile, load, and run -} -GxB_JIT_Control ; - -// GxB_FORMAT is historical, but it can be by row or by column: -typedef enum -{ - GxB_BY_ROW = 0, // CSR: compressed sparse row format - GxB_BY_COL = 1, // CSC: compressed sparse column format - GxB_NO_FORMAT = -1 // format not defined -} -GxB_Format_Value ; +GrB_Info GrB_Vector_size // get the dimension of a vector +( + GrB_Index *n, // vector dimension is n-by-1 + const GrB_Vector v // vector to query +) ; -// The default format is by row. These constants are defined as GB_GLOBAL -// const, so that if SuiteSparse:GraphBLAS is recompiled with a different -// default format, and the application is relinked but not recompiled, it will -// acquire the new default values. -GB_GLOBAL const GxB_Format_Value GxB_FORMAT_DEFAULT ; +GrB_Info GrB_Vector_nvals // get the number of entries in a vector +( + GrB_Index *nvals, // vector has nvals entries + const GrB_Vector v // vector to query +) ; -// the default hyper_switch parameter -GB_GLOBAL const double GxB_HYPER_DEFAULT ; +// historical; use GrB_get instead: +GrB_Info GxB_Vector_type (GrB_Type *type, const GrB_Vector v) ; +GrB_Info GxB_Vector_type_name (char *type_name, const GrB_Vector v) ; -// GxB_SPARSITY_CONTROL can be any sum or bitwise OR of these 4 values: -#define GxB_HYPERSPARSE 1 // store matrix in hypersparse form -#define GxB_SPARSE 2 // store matrix as sparse form (compressed vector) -#define GxB_BITMAP 4 // store matrix as a bitmap -#define GxB_FULL 8 // store matrix as full; all entries must be present +GrB_Info GxB_Vector_memoryUsage // return # of bytes used for a vector +( + size_t *size, // # of bytes used by the vector v + const GrB_Vector v // vector to query +) ; -// size of b array for GxB_set/get (GxB_BITMAP_SWITCH, b) -#define GxB_NBITMAP_SWITCH 8 // size of bitmap_switch parameter array +GrB_Info GxB_Vector_iso // return iso status of a vector +( + bool *iso, // true if the vector is iso-valued + const GrB_Vector v // vector to query +) ; -// any sparsity value: -#define GxB_ANY_SPARSITY (GxB_HYPERSPARSE + GxB_SPARSE + GxB_BITMAP + GxB_FULL) +GrB_Info GrB_Vector_free // free a vector +( + GrB_Vector *v // handle of vector to free +) ; -// the default sparsity control is any format: -#define GxB_AUTO_SPARSITY GxB_ANY_SPARSITY +//------------------------------------------------------------------------------ +// GrB_Vector_build +//------------------------------------------------------------------------------ -// GrB_set (A, scontrol, GxB_SPARSITY_CONTROL) provides hints -// about which data structure GraphBLAS should use for the matrix A: -// -// GxB_AUTO_SPARSITY: GraphBLAS selects automatically. -// GxB_HYPERSPARSE: always hypersparse, taking O(nvals(A)) space. -// GxB_SPARSE: always in a sparse struture: compressed-sparse row/column, -// taking O(nrows+nvals(A)) space if stored by row, or -// O(ncols+nvals(A)) if stored by column. -// GxB_BITMAP: always in a bitmap struture, taking O(nrows*ncols) space. -// GxB_FULL: always in a full structure, taking O(nrows*ncols) space, -// unless not all entries are present, in which case the bitmap -// storage is used. -// -// These options can be summed. For example, to allow a matrix to be sparse -// or hypersparse, but not bitmap or full, use GxB_SPARSE + GxB_HYPERSPARSE. -// Since GxB_FULL can only be used when all entries are present, matrices with -// the just GxB_FULL control setting are stored in bitmap form if any entries -// are not present. -// -// Only the least 4 bits of the sparsity control are considered, so the -// formats can be bitwise negated. For example, to allow for any format -// except full, use ~GxB_FULL. -// -// GrB_get (A, &sparsity, GxB_SPARSITY_STATUS) returns the -// current data structure currently used for the matrix A (either hypersparse, -// sparse, bitmap, or full). -// -// GrB_get (A, &scontrol, GxB_SPARSITY_CONTROL) returns the hint -// for how A should be stored (hypersparse, sparse, bitmap, or full, or any -// combination). +// GrB_Vector_build: w = sparse (I,1,X), but using any +// associative operator to assemble duplicate entries. -// GxB_HYPER_SWITCH: -// If the matrix or vector structure can be sparse or hypersparse, the -// GxB_HYPER_SWITCH parameter controls when each of these structures are -// used. The parameter is not used if the matrix or vector is full or -// bitmap. -// -// Let k be the actual number of non-empty vectors (with at least one -// entry). This value k is not dependent on whether or not the matrix is -// stored in hypersparse structure. Let n be the number of vectors (the # -// of columns if CSC, or rows if CSR). Let h be the value of the -// GxB_HYPER_SWITCH setting of the matrix. -// -// If a matrix is currently hypersparse, it can be converted to -// non-hypersparse if (n <= 1 || k > 2*n*h). Otherwise it stays -// hypersparse. If (n <= 1) the matrix is always stored as -// non-hypersparse. -// -// If currently non-hypersparse, it can be converted to hypersparse if (n -// > 1 && k <= n*h). Otherwise, it stays non-hypersparse. If (n <= 1) -// the matrix always remains non-hypersparse. -// -// Setting GxB_HYPER_SWITCH to GxB_ALWAYS_HYPER or GxB_NEVER_HYPER ensures -// a matrix always stays hypersparse, or always stays non-hypersparse, -// respectively. +GrB_Info GrB_Vector_build_BOOL // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const bool *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -GB_GLOBAL const double GxB_ALWAYS_HYPER, GxB_NEVER_HYPER ; +GrB_Info GrB_Vector_build_INT8 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const int8_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -//============================================================================== -// GxB_Context: for managing computational resources -//============================================================================== +GrB_Info GrB_Vector_build_UINT8 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const uint8_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -typedef struct GB_Context_opaque *GxB_Context ; +GrB_Info GrB_Vector_build_INT16 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const int16_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// GxB_CONTEXT_WORLD is the default Context for all user threads. -GB_GLOBAL GxB_Context GxB_CONTEXT_WORLD ; +GrB_Info GrB_Vector_build_UINT16 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const uint16_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -typedef enum -{ - GxB_CONTEXT_NTHREADS = GxB_NTHREADS, // max number of threads to use. - // If <= 0, then one thread is used. +GrB_Info GrB_Vector_build_INT32 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const int32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; - GxB_CONTEXT_CHUNK = GxB_CHUNK, // chunk size for small problems. - // If < 1, then the default is used. +GrB_Info GrB_Vector_build_UINT32 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const uint32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; - // GPU control (DRAFT: in progress, do not use) - GxB_CONTEXT_GPU_ID = GxB_GPU_ID, -} -GxB_Context_Field ; +GrB_Info GrB_Vector_build_INT64 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const int64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -GrB_Info GxB_Context_new // create a new Context +GrB_Info GrB_Vector_build_UINT64 // build a vector from (I,X) tuples ( - GxB_Context *Context // handle of Context to create + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const uint64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GxB_Context_free // free a Context +GrB_Info GrB_Vector_build_FP32 // build a vector from (I,X) tuples ( - GxB_Context *Context // handle of Context to free + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const float *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GxB_Context_engage // engage a Context +GrB_Info GrB_Vector_build_FP64 // build a vector from (I,X) tuples ( - GxB_Context Context // Context to engage + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const double *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GxB_Context_disengage // disengage a Context +GrB_Info GxB_Vector_build_FC32 // build a vector from (I,X) tuples ( - GxB_Context Context // Context to disengage + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const GxB_FC32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -//============================================================================== -// GxB_set and GxB_get: historical; use GrB_set and GrB_get instead -//============================================================================== +GrB_Info GxB_Vector_build_FC64 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const GxB_FC64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// historical: use GrB_set and GrB_get instead of these methods: -GrB_Info GxB_Matrix_Option_set (GrB_Matrix, GxB_Option_Field, ...) ; -GrB_Info GxB_Matrix_Option_set_INT32 (GrB_Matrix, GxB_Option_Field, int32_t) ; -GrB_Info GxB_Matrix_Option_set_FP64 (GrB_Matrix, GxB_Option_Field, double) ; -GrB_Info GxB_Matrix_Option_get (GrB_Matrix, GxB_Option_Field, ...) ; -GrB_Info GxB_Matrix_Option_get_INT32 (GrB_Matrix, GxB_Option_Field, int32_t *) ; -GrB_Info GxB_Matrix_Option_get_FP64 (GrB_Matrix, GxB_Option_Field, double *) ; -GrB_Info GxB_Vector_Option_set (GrB_Vector, GxB_Option_Field, ...) ; -GrB_Info GxB_Vector_Option_set_INT32 (GrB_Vector, GxB_Option_Field, int32_t) ; -GrB_Info GxB_Vector_Option_set_FP64 (GrB_Vector, GxB_Option_Field, double) ; -GrB_Info GxB_Vector_Option_get (GrB_Vector, GxB_Option_Field, ...) ; -GrB_Info GxB_Vector_Option_get_INT32 (GrB_Vector, GxB_Option_Field, int32_t *) ; -GrB_Info GxB_Vector_Option_get_FP64 (GrB_Vector, GxB_Option_Field, double *) ; -GrB_Info GxB_Global_Option_set (GxB_Option_Field, ...) ; -GrB_Info GxB_Global_Option_set_INT32 (GxB_Option_Field, int32_t) ; -GrB_Info GxB_Global_Option_set_FP64 (GxB_Option_Field, double) ; -GrB_Info GxB_Global_Option_set_FP64_ARRAY (GxB_Option_Field, double *) ; -GrB_Info GxB_Global_Option_set_INT64_ARRAY (GxB_Option_Field, int64_t *) ; -GrB_Info GxB_Global_Option_set_CHAR (GxB_Option_Field, const char *) ; -GrB_Info GxB_Global_Option_set_FUNCTION (GxB_Option_Field, void *) ; -GrB_Info GxB_Global_Option_get (GxB_Option_Field, ...) ; -GrB_Info GxB_Global_Option_get_INT32 (GxB_Option_Field, int32_t *) ; -GrB_Info GxB_Global_Option_get_FP64 (GxB_Option_Field, double *) ; -GrB_Info GxB_Global_Option_get_INT64 (GxB_Option_Field, int64_t *) ; -GrB_Info GxB_Global_Option_get_CHAR (GxB_Option_Field, const char **) ; -GrB_Info GxB_Global_Option_get_FUNCTION (GxB_Option_Field, void **) ; -GrB_Info GxB_Context_set_INT32 (GxB_Context, GxB_Context_Field, int32_t) ; -GrB_Info GxB_Context_set_FP64 (GxB_Context, GxB_Context_Field, double) ; -GrB_Info GxB_Context_set (GxB_Context, GxB_Context_Field, ...) ; -GrB_Info GxB_Context_get_INT32 (GxB_Context, GxB_Context_Field, int32_t *) ; -GrB_Info GxB_Context_get_FP64 (GxB_Context, GxB_Context_Field, double *) ; -GrB_Info GxB_Context_get (GxB_Context, GxB_Context_Field, ...) ; +GrB_Info GrB_Vector_build_UDT // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const void *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -#if GxB_STDC_VERSION >= 201112L -#define GxB_set(arg1,...) \ - _Generic \ - ( \ - (arg1), \ - default: GxB_Global_Option_set , \ - GxB_Option_Field : GxB_Global_Option_set , \ - GrB_Vector : GxB_Vector_Option_set , \ - GrB_Matrix : GxB_Matrix_Option_set , \ - GrB_Descriptor : GxB_Desc_set , \ - GxB_Context : GxB_Context_set \ - ) \ - (arg1, __VA_ARGS__) +GrB_Info GxB_Vector_build_Scalar // build a vector from (i,scalar) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + GrB_Scalar scalar, // value for all tuples + GrB_Index nvals // number of tuples +) ; -#define GxB_get(arg1,...) \ - _Generic \ - ( \ - (arg1), \ - default: GxB_Global_Option_get , \ - GxB_Option_Field : GxB_Global_Option_get , \ - GrB_Vector : GxB_Vector_Option_get , \ - GrB_Matrix : GxB_Matrix_Option_get , \ - GrB_Descriptor : GxB_Desc_get , \ - GxB_Context : GxB_Context_get \ - ) \ - (arg1, __VA_ARGS__) -#endif +// Type-generic version: X can be a pointer to any supported C type or void * +// for a user-defined type. -//============================================================================== -// GrB_set and GrB_get -//============================================================================== +/* +GrB_Info GrB_Vector_build // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; +*/ -typedef struct GB_Global_opaque *GrB_Global ; -GB_GLOBAL const GrB_Global GrB_GLOBAL ; +#if GxB_STDC_VERSION >= 201112L +#define GrB_Vector_build(w,Ilist,X,nvals,dup) \ + _Generic \ + ( \ + (X), \ + GB_PCASES (GrB, Vector_build) \ + ) \ + (w, Ilist, ((const void *) (X)), nvals, dup) +#endif -typedef enum -{ +//------------------------------------------------------------------------------ +// GrB_Vector_setElement +//------------------------------------------------------------------------------ - //-------------------------------------------------------------------------- - // GrB enums in the C API - //-------------------------------------------------------------------------- +// Set a single scalar in a vector, w(i) = x, typecasting from the type of x to +// the type of w as needed. - // GrB_Descriptor only: - GrB_OUTP_FIELD = 0, // descriptor for output of a method - GrB_MASK_FIELD = 1, // descriptor for the mask input of a method - GrB_INP0_FIELD = 2, // descriptor for the first input of a method - GrB_INP1_FIELD = 3, // descriptor for the second input of a method +GrB_Info GrB_Vector_setElement_BOOL // w(i) = x +( + GrB_Vector w, // vector to modify + bool x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // all objects, including GrB_GLOBAL: - GrB_NAME = 10, // name of the object, as a string +GrB_Info GrB_Vector_setElement_INT8 // w(i) = x +( + GrB_Vector w, // vector to modify + int8_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_GLOBAL only: - GrB_LIBRARY_VER_MAJOR = 11, // SuiteSparse:GraphBLAS version - GrB_LIBRARY_VER_MINOR = 12, - GrB_LIBRARY_VER_PATCH = 13, - GrB_API_VER_MAJOR = 14, // C API version - GrB_API_VER_MINOR = 15, - GrB_API_VER_PATCH = 16, - GrB_BLOCKING_MODE = 17, // GrB_Mode +GrB_Info GrB_Vector_setElement_UINT8 // w(i) = x +( + GrB_Vector w, // vector to modify + uint8_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_GLOBAL, GrB_Matrix, GrB_Vector, GrB_Scalar: - GrB_STORAGE_ORIENTATION_HINT = 100, // GrB_Orientation +GrB_Info GrB_Vector_setElement_INT16 // w(i) = x +( + GrB_Vector w, // vector to modify + int16_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize): - GrB_EL_TYPE_CODE = 102, // a GrB_Type_code (see below) - GrB_EL_TYPE_STRING = 106, // name of the type +GrB_Info GrB_Vector_setElement_UINT16 // w(i) = x +( + GrB_Vector w, // vector to modify + uint16_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_*Op, GrB_Monoid, and GrB_Semiring: - GrB_INP0_TYPE_CODE = 103, // GrB_Type_code - GrB_INP1_TYPE_CODE = 104, - GrB_OUTP_TYPE_CODE = 105, - GrB_INP0_TYPE_STRING = 107, // name of the type, as a string - GrB_INP1_TYPE_STRING = 108, - GrB_OUTP_TYPE_STRING = 109, +GrB_Info GrB_Vector_setElement_INT32 // w(i) = x +( + GrB_Vector w, // vector to modify + int32_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Type (readable only): - GrB_SIZE = 110, // size of the type +GrB_Info GrB_Vector_setElement_UINT32 // w(i) = x +( + GrB_Vector w, // vector to modify + uint32_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - //-------------------------------------------------------------------------- - // SuiteSparse extensions: - //-------------------------------------------------------------------------- +GrB_Info GrB_Vector_setElement_INT64 // w(i) = x +( + GrB_Vector w, // vector to modify + int64_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Type, GrB_UnaryOp, GrB_BinaryOp, and GrB_IndexUnaryOp: - GxB_JIT_C_NAME = 7041, // C type or function name - GxB_JIT_C_DEFINITION = 7042, // C typedef or function definition +GrB_Info GrB_Vector_setElement_UINT64 // w(i) = x +( + GrB_Vector w, // vector to modify + uint64_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Monoid and GrB_Semiring: - GxB_MONOID_IDENTITY = 7043, // monoid identity value - GxB_MONOID_TERMINAL = 7044, // monoid terminal value - GxB_MONOID_OPERATOR = 7045, // monoid binary operator +GrB_Info GrB_Vector_setElement_FP32 // w(i) = x +( + GrB_Vector w, // vector to modify + float x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Semiring only: - GxB_SEMIRING_MONOID = 7046, // semiring monoid - GxB_SEMIRING_MULTIPLY = 7047, // semiring multiplicative op -} -GrB_Field ; +GrB_Info GrB_Vector_setElement_FP64 // w(i) = x +( + GrB_Vector w, // vector to modify + double x, // scalar to assign to w(i) + GrB_Index i // row index +) ; -typedef enum -{ - GrB_ROWMAJOR = 0, - GrB_COLMAJOR = 1, - GrB_BOTH = 2, - GrB_UNKNOWN = 3, -} -GrB_Orientation ; +GrB_Info GxB_Vector_setElement_FC32 // w(i) = x +( + GrB_Vector w, // vector to modify + GxB_FC32_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; -typedef enum -{ - GrB_UDT_CODE = 0, // user-defined type - GrB_BOOL_CODE = 1, // GraphBLAS: GrB_BOOL C: bool - GrB_INT8_CODE = 2, // GraphBLAS: GrB_INT8 C: int8_t - GrB_UINT8_CODE = 3, // GraphBLAS: GrB_UINT8 C: uint8_t - GrB_INT16_CODE = 4, // GraphBLAS: GrB_INT16 C: int16_t - GrB_UINT16_CODE = 5, // GraphBLAS: GrB_UINT16 C: uint16_t - GrB_INT32_CODE = 6, // GraphBLAS: GrB_INT32 C: int32_t - GrB_UINT32_CODE = 7, // GraphBLAS: GrB_UINT32 C: uint32_t - GrB_INT64_CODE = 8, // GraphBLAS: GrB_INT64 C: int64_t - GrB_UINT64_CODE = 9, // GraphBLAS: GrB_UINT64 C: uint64_t - GrB_FP32_CODE = 10, // GraphBLAS: GrB_FP32 C: float - GrB_FP64_CODE = 11, // GraphBLAS: GrB_FP64 C: double - GxB_FC32_CODE = 7070, // GraphBLAS: GxB_FC32 C: float complex - GxB_FC64_CODE = 7071, // GraphBLAS: GxB_FC64 C: double complex -} -GrB_Type_Code ; +GrB_Info GxB_Vector_setElement_FC64 // w(i) = x +( + GrB_Vector w, // vector to modify + GxB_FC64_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; -//------------------------------------------------------------------------------ -// GrB_get: get a scalar, string, enum, size, or void * from an object +GrB_Info GrB_Vector_setElement_UDT // w(i) = x +( + GrB_Vector w, // vector to modify + void *x, // scalar to assign to w(i) + GrB_Index i // row index +) ; + +GrB_Info GrB_Vector_setElement_Scalar // w(i) = x +( + GrB_Vector w, // vector to modify + GrB_Scalar x, // scalar to assign to w(i) + GrB_Index i // row index +) ; + +// Type-generic version: x can be any supported C type or void * for a +// user-defined type. + +/* +GrB_Info GrB_Vector_setElement // w(i) = x +( + GrB_Vector w, // vector to modify + x, // scalar to assign to w(i) + GrB_Index i // row index +) ; +*/ + +#if GxB_STDC_VERSION >= 201112L +#define GrB_Vector_setElement(w,x,i) \ + _Generic \ + ( \ + (x), \ + GB_CASES (GrB, Vector_setElement), \ + default: GrB_Vector_setElement_Scalar \ + ) \ + (w, x, i) +#endif + +//------------------------------------------------------------------------------ +// GrB_Vector_extractElement //------------------------------------------------------------------------------ -GrB_Info GrB_Scalar_get_Scalar (GrB_Scalar, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Scalar_get_String (GrB_Scalar, char * , GrB_Field) ; -GrB_Info GrB_Scalar_get_INT32 (GrB_Scalar, int32_t * , GrB_Field) ; -GrB_Info GrB_Scalar_get_SIZE (GrB_Scalar, size_t * , GrB_Field) ; -GrB_Info GrB_Scalar_get_VOID (GrB_Scalar, void * , GrB_Field) ; +// Extract a single entry from a vector, x = v(i), typecasting from the type of +// v to the type of x as needed. -GrB_Info GrB_Vector_get_Scalar (GrB_Vector, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Vector_get_String (GrB_Vector, char * , GrB_Field) ; -GrB_Info GrB_Vector_get_INT32 (GrB_Vector, int32_t * , GrB_Field) ; -GrB_Info GrB_Vector_get_SIZE (GrB_Vector, size_t * , GrB_Field) ; -GrB_Info GrB_Vector_get_VOID (GrB_Vector, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_BOOL // x = v(i) +( + bool *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Matrix_get_Scalar (GrB_Matrix, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Matrix_get_String (GrB_Matrix, char * , GrB_Field) ; -GrB_Info GrB_Matrix_get_INT32 (GrB_Matrix, int32_t * , GrB_Field) ; -GrB_Info GrB_Matrix_get_SIZE (GrB_Matrix, size_t * , GrB_Field) ; -GrB_Info GrB_Matrix_get_VOID (GrB_Matrix, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_INT8 // x = v(i) +( + int8_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GxB_Serialized_get_Scalar (const void *, GrB_Scalar, GrB_Field, size_t) ; -GrB_Info GxB_Serialized_get_String (const void *, char * , GrB_Field, size_t) ; -GrB_Info GxB_Serialized_get_INT32 (const void *, int32_t * , GrB_Field, size_t) ; -GrB_Info GxB_Serialized_get_SIZE (const void *, size_t * , GrB_Field, size_t) ; -GrB_Info GxB_Serialized_get_VOID (const void *, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractElement_UINT8 // x = v(i) +( + uint8_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_UnaryOp_get_Scalar (GrB_UnaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_UnaryOp_get_String (GrB_UnaryOp, char * , GrB_Field) ; -GrB_Info GrB_UnaryOp_get_INT32 (GrB_UnaryOp, int32_t * , GrB_Field) ; -GrB_Info GrB_UnaryOp_get_SIZE (GrB_UnaryOp, size_t * , GrB_Field) ; -GrB_Info GrB_UnaryOp_get_VOID (GrB_UnaryOp, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_INT16 // x = v(i) +( + int16_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_IndexUnaryOp_get_Scalar (GrB_IndexUnaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_get_String (GrB_IndexUnaryOp, char * , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_get_INT32 (GrB_IndexUnaryOp, int32_t * , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_get_SIZE (GrB_IndexUnaryOp, size_t * , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_get_VOID (GrB_IndexUnaryOp, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_UINT16 // x = v(i) +( + uint16_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_BinaryOp_get_Scalar (GrB_BinaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_BinaryOp_get_String (GrB_BinaryOp, char * , GrB_Field) ; -GrB_Info GrB_BinaryOp_get_INT32 (GrB_BinaryOp, int32_t * , GrB_Field) ; -GrB_Info GrB_BinaryOp_get_SIZE (GrB_BinaryOp, size_t * , GrB_Field) ; -GrB_Info GrB_BinaryOp_get_VOID (GrB_BinaryOp, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_INT32 // x = v(i) +( + int32_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Monoid_get_Scalar (GrB_Monoid, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Monoid_get_String (GrB_Monoid, char * , GrB_Field) ; -GrB_Info GrB_Monoid_get_INT32 (GrB_Monoid, int32_t * , GrB_Field) ; -GrB_Info GrB_Monoid_get_SIZE (GrB_Monoid, size_t * , GrB_Field) ; -GrB_Info GrB_Monoid_get_VOID (GrB_Monoid, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_UINT32 // x = v(i) +( + uint32_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Semiring_get_Scalar (GrB_Semiring, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Semiring_get_String (GrB_Semiring, char * , GrB_Field) ; -GrB_Info GrB_Semiring_get_INT32 (GrB_Semiring, int32_t * , GrB_Field) ; -GrB_Info GrB_Semiring_get_SIZE (GrB_Semiring, size_t * , GrB_Field) ; -GrB_Info GrB_Semiring_get_VOID (GrB_Semiring, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_INT64 // x = v(i) +( + int64_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Descriptor_get_Scalar (GrB_Descriptor, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Descriptor_get_String (GrB_Descriptor, char * , GrB_Field) ; -GrB_Info GrB_Descriptor_get_INT32 (GrB_Descriptor, int32_t * , GrB_Field) ; -GrB_Info GrB_Descriptor_get_SIZE (GrB_Descriptor, size_t * , GrB_Field) ; -GrB_Info GrB_Descriptor_get_VOID (GrB_Descriptor, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_UINT64 // x = v(i) +( + uint64_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Type_get_Scalar (GrB_Type, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Type_get_String (GrB_Type, char * , GrB_Field) ; -GrB_Info GrB_Type_get_INT32 (GrB_Type, int32_t * , GrB_Field) ; -GrB_Info GrB_Type_get_SIZE (GrB_Type, size_t * , GrB_Field) ; -GrB_Info GrB_Type_get_VOID (GrB_Type, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_FP32 // x = v(i) +( + float *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Global_get_Scalar (GrB_Global, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Global_get_String (GrB_Global, char * , GrB_Field) ; -GrB_Info GrB_Global_get_INT32 (GrB_Global, int32_t * , GrB_Field) ; -GrB_Info GrB_Global_get_SIZE (GrB_Global, size_t * , GrB_Field) ; -GrB_Info GrB_Global_get_VOID (GrB_Global, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_FP64 // x = v(i) +( + double *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GxB_Context_get_Scalar (GxB_Context, GrB_Scalar, GrB_Field) ; -GrB_Info GxB_Context_get_String (GxB_Context, char * , GrB_Field) ; -GrB_Info GxB_Context_get_INT (GxB_Context, int32_t * , GrB_Field) ; -GrB_Info GxB_Context_get_SIZE (GxB_Context, size_t * , GrB_Field) ; -GrB_Info GxB_Context_get_VOID (GxB_Context, void * , GrB_Field) ; +GrB_Info GxB_Vector_extractElement_FC32 // x = v(i) +( + GxB_FC32_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; + +GrB_Info GxB_Vector_extractElement_FC64 // x = v(i) +( + GxB_FC64_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; + +GrB_Info GrB_Vector_extractElement_UDT // x = v(i) +( + void *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; + +GrB_Info GrB_Vector_extractElement_Scalar // x = v(i) +( + GrB_Scalar x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; + +// Type-generic version: x can be a pointer to any supported C type or void * +// for a user-defined type. + +/* +GrB_Info GrB_Vector_extractElement // x = v(i) +( + *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; +*/ -// GrB_get (object, value, field): #if GxB_STDC_VERSION >= 201112L -#define GrB_get(object,value,...) \ - _Generic \ - ( \ - (object), \ - GrB_Scalar : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Scalar_get_Scalar , \ - char * : GrB_Scalar_get_String , \ - int32_t * : GrB_Scalar_get_INT32 , \ - size_t * : GrB_Scalar_get_SIZE , \ - void * : GrB_Scalar_get_VOID \ - ) , \ - GrB_Vector : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Vector_get_Scalar , \ - char * : GrB_Vector_get_String , \ - int32_t * : GrB_Vector_get_INT32 , \ - size_t * : GrB_Vector_get_SIZE , \ - void * : GrB_Vector_get_VOID \ - ) , \ - GrB_Matrix : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Matrix_get_Scalar , \ - char * : GrB_Matrix_get_String , \ - int32_t * : GrB_Matrix_get_INT32 , \ - size_t * : GrB_Matrix_get_SIZE , \ - void * : GrB_Matrix_get_VOID \ - ) , \ - GrB_UnaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_UnaryOp_get_Scalar , \ - char * : GrB_UnaryOp_get_String , \ - int32_t * : GrB_UnaryOp_get_INT32 , \ - size_t * : GrB_UnaryOp_get_SIZE , \ - void * : GrB_UnaryOp_get_VOID \ - ) , \ - GrB_IndexUnaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_IndexUnaryOp_get_Scalar , \ - char * : GrB_IndexUnaryOp_get_String , \ - int32_t * : GrB_IndexUnaryOp_get_INT32 , \ - size_t * : GrB_IndexUnaryOp_get_SIZE , \ - void * : GrB_IndexUnaryOp_get_VOID \ - ) , \ - GrB_BinaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_BinaryOp_get_Scalar , \ - char * : GrB_BinaryOp_get_String , \ - int32_t * : GrB_BinaryOp_get_INT32 , \ - size_t * : GrB_BinaryOp_get_SIZE , \ - void * : GrB_BinaryOp_get_VOID \ - ) , \ - GrB_Monoid : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Monoid_get_Scalar , \ - char * : GrB_Monoid_get_String , \ - int32_t * : GrB_Monoid_get_INT32 , \ - size_t * : GrB_Monoid_get_SIZE , \ - void * : GrB_Monoid_get_VOID \ - ) , \ - GrB_Semiring : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Semiring_get_Scalar , \ - char * : GrB_Semiring_get_String , \ - int32_t * : GrB_Semiring_get_INT32 , \ - size_t * : GrB_Semiring_get_SIZE , \ - void * : GrB_Semiring_get_VOID \ - ) , \ - GrB_Type : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Type_get_Scalar , \ - char * : GrB_Type_get_String , \ - int32_t * : GrB_Type_get_INT32 , \ - size_t * : GrB_Type_get_SIZE , \ - void * : GrB_Type_get_VOID \ - ) , \ - GrB_Descriptor : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Descriptor_get_Scalar , \ - char * : GrB_Descriptor_get_String , \ - int32_t * : GrB_Descriptor_get_INT32 , \ - size_t * : GrB_Descriptor_get_SIZE , \ - void * : GrB_Descriptor_get_VOID \ - ) , \ - GrB_Global : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Global_get_Scalar , \ - char * : GrB_Global_get_String , \ - int32_t * : GrB_Global_get_INT32 , \ - size_t * : GrB_Global_get_SIZE , \ - void * : GrB_Global_get_VOID \ - ) , \ - GxB_Context : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GxB_Context_get_Scalar , \ - char * : GxB_Context_get_String , \ - int32_t * : GxB_Context_get_INT , \ - size_t * : GxB_Context_get_SIZE , \ - void * : GxB_Context_get_VOID \ - ) , \ - const void *: \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GxB_Serialized_get_Scalar , \ - char * : GxB_Serialized_get_String , \ - int32_t * : GxB_Serialized_get_INT32 , \ - size_t * : GxB_Serialized_get_SIZE , \ - void * : GxB_Serialized_get_VOID \ - ) , \ - void *: \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GxB_Serialized_get_Scalar , \ - char * : GxB_Serialized_get_String , \ - int32_t * : GxB_Serialized_get_INT32 , \ - size_t * : GxB_Serialized_get_SIZE , \ - void * : GxB_Serialized_get_VOID \ - ) \ - ) (object, value, __VA_ARGS__) +#define GrB_Vector_extractElement(x,v,i) \ + _Generic \ + ( \ + (x), \ + GB_PCASES (GrB, Vector_extractElement), \ + default: GrB_Vector_extractElement_Scalar \ + ) \ + (x, v, i) +#endif + +// GxB_Vector_isStoredElement determines if v(i) is present in the structure +// of the vector v, as a stored element. It does not return the value. It +// returns GrB_SUCCESS if the element is present, or GrB_NO_VALUE otherwise. + +GrB_Info GxB_Vector_isStoredElement // determine if v(i) is a stored element +( + const GrB_Vector v, // vector to check + GrB_Index i // row index +) ; //------------------------------------------------------------------------------ -// GrB_set: set a scalar, string, enum, size, or void * of an object +// GrB_Vector_removeElement //------------------------------------------------------------------------------ -GrB_Info GrB_Scalar_set_Scalar (GrB_Scalar, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Scalar_set_String (GrB_Scalar, char * , GrB_Field) ; -GrB_Info GrB_Scalar_set_INT32 (GrB_Scalar, int32_t , GrB_Field) ; -GrB_Info GrB_Scalar_set_VOID (GrB_Scalar, void * , GrB_Field, size_t) ; +// GrB_Vector_removeElement (v,i) removes the element v(i) from the vector v. -GrB_Info GrB_Vector_set_Scalar (GrB_Vector, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Vector_set_String (GrB_Vector, char * , GrB_Field) ; -GrB_Info GrB_Vector_set_INT32 (GrB_Vector, int32_t , GrB_Field) ; -GrB_Info GrB_Vector_set_VOID (GrB_Vector, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_removeElement +( + GrB_Vector v, // vector to remove an element from + GrB_Index i // index +) ; -GrB_Info GrB_Matrix_set_Scalar (GrB_Matrix, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Matrix_set_String (GrB_Matrix, char * , GrB_Field) ; -GrB_Info GrB_Matrix_set_INT32 (GrB_Matrix, int32_t , GrB_Field) ; -GrB_Info GrB_Matrix_set_VOID (GrB_Matrix, void * , GrB_Field, size_t) ; +//------------------------------------------------------------------------------ +// GrB_Vector_extractTuples +//------------------------------------------------------------------------------ -GrB_Info GrB_UnaryOp_set_Scalar (GrB_UnaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_UnaryOp_set_String (GrB_UnaryOp, char * , GrB_Field) ; -GrB_Info GrB_UnaryOp_set_INT32 (GrB_UnaryOp, int32_t , GrB_Field) ; -GrB_Info GrB_UnaryOp_set_VOID (GrB_UnaryOp, void * , GrB_Field, size_t) ; +// Extracts all tuples from a vector, like [I,~,X] = find (v). If +// any parameter I and/or X is NULL, then that component is not extracted. For +// example, to extract just the row indices, pass I as non-NULL, and X as NULL. +// This is like [I,~,~] = find (v). -GrB_Info GrB_IndexUnaryOp_set_Scalar (GrB_IndexUnaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_set_String (GrB_IndexUnaryOp, char * , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_set_INT32 (GrB_IndexUnaryOp, int32_t , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_set_VOID (GrB_IndexUnaryOp, void * , GrB_Field, - size_t) ; +GrB_Info GrB_Vector_extractTuples_BOOL // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + bool *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_BinaryOp_set_Scalar (GrB_BinaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_BinaryOp_set_String (GrB_BinaryOp, char * , GrB_Field) ; -GrB_Info GrB_BinaryOp_set_INT32 (GrB_BinaryOp, int32_t , GrB_Field) ; -GrB_Info GrB_BinaryOp_set_VOID (GrB_BinaryOp, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_INT8 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + int8_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Monoid_set_Scalar (GrB_Monoid, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Monoid_set_String (GrB_Monoid, char * , GrB_Field) ; -GrB_Info GrB_Monoid_set_INT32 (GrB_Monoid, int32_t , GrB_Field) ; -GrB_Info GrB_Monoid_set_VOID (GrB_Monoid, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_UINT8 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + uint8_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Semiring_set_Scalar (GrB_Semiring, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Semiring_set_String (GrB_Semiring, char * , GrB_Field) ; -GrB_Info GrB_Semiring_set_INT32 (GrB_Semiring, int32_t , GrB_Field) ; -GrB_Info GrB_Semiring_set_VOID (GrB_Semiring, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_INT16 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + int16_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Descriptor_set_Scalar (GrB_Descriptor, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Descriptor_set_String (GrB_Descriptor, char * , GrB_Field) ; -GrB_Info GrB_Descriptor_set_INT32 (GrB_Descriptor, int32_t , GrB_Field) ; -GrB_Info GrB_Descriptor_set_VOID (GrB_Descriptor, void * , GrB_Field, - size_t) ; +GrB_Info GrB_Vector_extractTuples_UINT16 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + uint16_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Type_set_Scalar (GrB_Type, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Type_set_String (GrB_Type, char * , GrB_Field) ; -GrB_Info GrB_Type_set_INT32 (GrB_Type, int32_t , GrB_Field) ; -GrB_Info GrB_Type_set_VOID (GrB_Type, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_INT32 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + int32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Global_set_Scalar (GrB_Global, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Global_set_String (GrB_Global, char * , GrB_Field) ; -GrB_Info GrB_Global_set_INT32 (GrB_Global, int32_t , GrB_Field) ; -GrB_Info GrB_Global_set_VOID (GrB_Global, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_UINT32 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + uint32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GxB_Context_set_Scalar (GxB_Context, GrB_Scalar, GrB_Field) ; -GrB_Info GxB_Context_set_String (GxB_Context, char * , GrB_Field) ; -GrB_Info GxB_Context_set_INT (GxB_Context, int32_t , GrB_Field) ; -GrB_Info GxB_Context_set_VOID (GxB_Context, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_INT64 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + int64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -// GrB_set (object, value, field) or (object, value, field, size) for _VOID -#if GxB_STDC_VERSION >= 201112L -#define GrB_set(object,value,...) \ - _Generic \ - ( \ - (object), \ - GrB_Scalar : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Scalar_set_Scalar , \ - char * : GrB_Scalar_set_String , \ - int32_t : GrB_Scalar_set_INT32 , \ - void * : GrB_Scalar_set_VOID \ - ) , \ - GrB_Vector : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Vector_set_Scalar , \ - char * : GrB_Vector_set_String , \ - int32_t : GrB_Vector_set_INT32 , \ - void * : GrB_Vector_set_VOID \ - ) , \ - GrB_Matrix : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Matrix_set_Scalar , \ - char * : GrB_Matrix_set_String , \ - int32_t : GrB_Matrix_set_INT32 , \ - void * : GrB_Matrix_set_VOID \ - ) , \ - GrB_UnaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_UnaryOp_set_Scalar , \ - char * : GrB_UnaryOp_set_String , \ - int32_t : GrB_UnaryOp_set_INT32 , \ - void * : GrB_UnaryOp_set_VOID \ - ) , \ - GrB_IndexUnaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_IndexUnaryOp_set_Scalar , \ - char * : GrB_IndexUnaryOp_set_String , \ - int32_t : GrB_IndexUnaryOp_set_INT32 , \ - void * : GrB_IndexUnaryOp_set_VOID \ - ) , \ - GrB_BinaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_BinaryOp_set_Scalar , \ - char * : GrB_BinaryOp_set_String , \ - int32_t : GrB_BinaryOp_set_INT32 , \ - void * : GrB_BinaryOp_set_VOID \ - ) , \ - GrB_Monoid : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Monoid_set_Scalar , \ - char * : GrB_Monoid_set_String , \ - int32_t : GrB_Monoid_set_INT32 , \ - void * : GrB_Monoid_set_VOID \ - ) , \ - GrB_Semiring : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Semiring_set_Scalar , \ - char * : GrB_Semiring_set_String , \ - int32_t : GrB_Semiring_set_INT32 , \ - void * : GrB_Semiring_set_VOID \ - ) , \ - GrB_Type : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Type_set_Scalar , \ - char * : GrB_Type_set_String , \ - int32_t : GrB_Type_set_INT32 , \ - void * : GrB_Type_set_VOID \ - ) , \ - GrB_Descriptor : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Descriptor_set_Scalar , \ - char * : GrB_Descriptor_set_String , \ - int32_t : GrB_Descriptor_set_INT32 , \ - void * : GrB_Descriptor_set_VOID \ - ) , \ - GrB_Global : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Global_set_Scalar , \ - char * : GrB_Global_set_String , \ - int32_t : GrB_Global_set_INT32 , \ - void * : GrB_Global_set_VOID \ - ) , \ - GxB_Context : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GxB_Context_set_Scalar , \ - char * : GxB_Context_set_String , \ - int32_t : GxB_Context_set_INT , \ - void * : GxB_Context_set_VOID \ - ) \ - ) (object, value, __VA_ARGS__) -#endif - -#endif +GrB_Info GrB_Vector_extractTuples_UINT64 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + uint64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -//============================================================================== -// GrB_free: free any GraphBLAS object -//============================================================================== +GrB_Info GrB_Vector_extractTuples_FP32 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + float *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -// for null and invalid objects -#define GrB_NULL NULL -#define GrB_INVALID_HANDLE NULL +GrB_Info GrB_Vector_extractTuples_FP64 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + double *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -#if GxB_STDC_VERSION >= 201112L -#define GrB_free(object) \ - _Generic \ - ( \ - (object), \ - GrB_Type *: GrB_Type_free , \ - GrB_UnaryOp *: GrB_UnaryOp_free , \ - GrB_BinaryOp *: GrB_BinaryOp_free , \ - GrB_IndexUnaryOp *: GrB_IndexUnaryOp_free , \ - GrB_Monoid *: GrB_Monoid_free , \ - GrB_Semiring *: GrB_Semiring_free , \ - GrB_Scalar *: GrB_Scalar_free , \ - GrB_Vector *: GrB_Vector_free , \ - GrB_Matrix *: GrB_Matrix_free , \ - GrB_Descriptor *: GrB_Descriptor_free , \ - GxB_Context *: GxB_Context_free , \ - GxB_Iterator *: GxB_Iterator_free \ - ) \ - (object) -#endif +GrB_Info GxB_Vector_extractTuples_FC32 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + GxB_FC32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -//============================================================================== -// GrB_wait: finish computations -//============================================================================== +GrB_Info GxB_Vector_extractTuples_FC64 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + GxB_FC64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -typedef enum -{ - GrB_COMPLETE = 0, // establishes a happens-before relation - GrB_MATERIALIZE = 1 // object is complete -} -GrB_WaitMode ; +GrB_Info GrB_Vector_extractTuples_UDT // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + void *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -// Finish all pending work in a specific object. +// Type-generic version: X can be a pointer to any supported C type or void * +// for a user-defined type. -GrB_Info GrB_Type_wait (GrB_Type type , GrB_WaitMode waitmode); -GrB_Info GrB_UnaryOp_wait (GrB_UnaryOp op , GrB_WaitMode waitmode); -GrB_Info GrB_BinaryOp_wait (GrB_BinaryOp op , GrB_WaitMode waitmode); -GrB_Info GrB_IndexUnaryOp_wait (GrB_IndexUnaryOp op , GrB_WaitMode waitmode); -GrB_Info GrB_Monoid_wait (GrB_Monoid monoid , GrB_WaitMode waitmode); -GrB_Info GrB_Semiring_wait (GrB_Semiring semiring, GrB_WaitMode waitmode); -GrB_Info GrB_Descriptor_wait (GrB_Descriptor desc , GrB_WaitMode waitmode); -GrB_Info GrB_Scalar_wait (GrB_Scalar s , GrB_WaitMode waitmode); -GrB_Info GrB_Vector_wait (GrB_Vector v , GrB_WaitMode waitmode); -GrB_Info GrB_Matrix_wait (GrB_Matrix A , GrB_WaitMode waitmode); -GrB_Info GxB_Context_wait (GxB_Context Context , GrB_WaitMode waitmode); +/* +GrB_Info GrB_Vector_extractTuples // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; +*/ -// GrB_wait (object,waitmode) polymorphic function: #if GxB_STDC_VERSION >= 201112L -#define GrB_wait(object,waitmode) \ +#define GrB_Vector_extractTuples(Ilist,X,nvals,v) \ _Generic \ ( \ - (object), \ - GrB_Type : GrB_Type_wait , \ - GrB_UnaryOp : GrB_UnaryOp_wait , \ - GrB_BinaryOp : GrB_BinaryOp_wait , \ - GrB_IndexUnaryOp : GrB_IndexUnaryOp_wait , \ - GrB_Monoid : GrB_Monoid_wait , \ - GrB_Semiring : GrB_Semiring_wait , \ - GrB_Scalar : GrB_Scalar_wait , \ - GrB_Vector : GrB_Vector_wait , \ - GrB_Matrix : GrB_Matrix_wait , \ - GxB_Context : GxB_Context_wait , \ - GrB_Descriptor : GrB_Descriptor_wait \ + (X), \ + GB_PCASES (GrB, Vector_extractTuples) \ ) \ - (object, waitmode) + (Ilist, X, nvals, v) #endif - -// NOTE: GxB_Scalar_wait is historical; use GrB_Scalar_wait instead -GrB_Info GxB_Scalar_wait (GrB_Scalar *s) ; - //============================================================================== -// GrB_error: error handling +// GrB_Matrix: a GraphBLAS matrix //============================================================================== -// Each GraphBLAS method and operation returns a GrB_Info error code. -// GrB_error returns additional information on the error in a thread-safe -// null-terminated string. The string returned by GrB_error is owned by -// the GraphBLAS library and must not be free'd. +// These methods create, free, copy, and clear a matrix. The nrows, ncols, +// nvals, and type methods return basic information about a matrix. -GrB_Info GrB_Type_error (const char **error, const GrB_Type type) ; -GrB_Info GrB_UnaryOp_error (const char **error, const GrB_UnaryOp op) ; -GrB_Info GrB_BinaryOp_error (const char **error, const GrB_BinaryOp op) ; -GrB_Info GrB_IndexUnaryOp_error (const char **error, const GrB_IndexUnaryOp op) ; -GrB_Info GrB_Monoid_error (const char **error, const GrB_Monoid monoid) ; -GrB_Info GrB_Semiring_error (const char **error, const GrB_Semiring semiring) ; -GrB_Info GrB_Scalar_error (const char **error, const GrB_Scalar s) ; -GrB_Info GrB_Vector_error (const char **error, const GrB_Vector v) ; -GrB_Info GrB_Matrix_error (const char **error, const GrB_Matrix A) ; -GrB_Info GrB_Descriptor_error (const char **error, const GrB_Descriptor d) ; -// GxB_Scalar_error is historical: use GrB_Scalar_error instead -GrB_Info GxB_Scalar_error (const char **error, const GrB_Scalar s) ; -GrB_Info GxB_Context_error (const char **error, const GxB_Context Context); +GrB_Info GrB_Matrix_new // create a new matrix with no entries +( + GrB_Matrix *A, // handle of matrix to create + GrB_Type type, // type of matrix to create + GrB_Index nrows, // matrix dimension is nrows-by-ncols + GrB_Index ncols // (nrows and ncols must be <= GrB_INDEX_MAX+1) +) ; -// GrB_error (error,object) polymorphic function: -#if GxB_STDC_VERSION >= 201112L -#define GrB_error(error,object) \ - _Generic \ - ( \ - (object), \ - GrB_Type : GrB_Type_error , \ - GrB_UnaryOp : GrB_UnaryOp_error , \ - GrB_BinaryOp : GrB_BinaryOp_error , \ - GrB_IndexUnaryOp : GrB_IndexUnaryOp_error , \ - GrB_Monoid : GrB_Monoid_error , \ - GrB_Semiring : GrB_Semiring_error , \ - GrB_Scalar : GrB_Scalar_error , \ - GrB_Vector : GrB_Vector_error , \ - GrB_Matrix : GrB_Matrix_error , \ - GxB_Context : GxB_Context_error , \ - GrB_Descriptor : GrB_Descriptor_error \ - ) \ - (error, object) -#endif - -//============================================================================== -// GrB_mxm, vxm, mxv: matrix multiplication over a semiring -//============================================================================== - -GrB_Info GrB_mxm // C = accum (C, A*B) +GrB_Info GrB_Matrix_dup // make an exact copy of a matrix ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Semiring semiring, // defines '+' and '*' for A*B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix *C, // handle of output matrix to create + const GrB_Matrix A // input matrix to copy ) ; -GrB_Info GrB_vxm // w' = accum (w, u'*A) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Semiring semiring, // defines '+' and '*' for u'*A - const GrB_Vector u, // first input: vector u - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for w, mask, and A +GrB_Info GrB_Matrix_clear // clear a matrix of all entries; +( // type and dimensions remain unchanged + GrB_Matrix A // matrix to clear ) ; -GrB_Info GrB_mxv // w = accum (w, A*u) +GrB_Info GrB_Matrix_nrows // get the number of rows of a matrix ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Semiring semiring, // defines '+' and '*' for A*B - const GrB_Matrix A, // first input: matrix A - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w, mask, and A + GrB_Index *nrows, // matrix has nrows rows + const GrB_Matrix A // matrix to query ) ; -//============================================================================== -// GrB_eWiseMult: element-wise matrix and vector operations, set intersection -//============================================================================== - -// GrB_eWiseMult computes C = accum (C, A.*B), where ".*" is the Hadamard -// product, and where pairs of elements in two matrices (or vectors) are -// pairwise "multiplied" with C(i,j) = mult (A(i,j),B(i,j)). - -GrB_Info GrB_Vector_eWiseMult_Semiring // w = accum (w, u.*v) +GrB_Info GrB_Matrix_ncols // get the number of columns of a matrix ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Semiring semiring, // defines '.*' for t=u.*v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Index *ncols, // matrix has ncols columns + const GrB_Matrix A // matrix to query ) ; -GrB_Info GrB_Vector_eWiseMult_Monoid // w = accum (w, u.*v) +GrB_Info GrB_Matrix_nvals // get the number of entries in a matrix ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Monoid monoid, // defines '.*' for t=u.*v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Index *nvals, // matrix has nvals entries + const GrB_Matrix A // matrix to query ) ; -GrB_Info GrB_Vector_eWiseMult_BinaryOp // w = accum (w, u.*v) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp mult, // defines '.*' for t=u.*v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask -) ; +// historical; use GrB_get instead: +GrB_Info GxB_Matrix_type (GrB_Type *type, const GrB_Matrix A) ; +GrB_Info GxB_Matrix_type_name (char *type_name, const GrB_Matrix A) ; -GrB_Info GrB_Matrix_eWiseMult_Semiring // C = accum (C, A.*B) +GrB_Info GxB_Matrix_memoryUsage // return # of bytes used for a matrix ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Semiring semiring, // defines '.*' for T=A.*B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + size_t *size, // # of bytes used by the matrix A + const GrB_Matrix A // matrix to query ) ; -GrB_Info GrB_Matrix_eWiseMult_Monoid // C = accum (C, A.*B) +GrB_Info GxB_Matrix_iso // return iso status of a matrix ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Monoid monoid, // defines '.*' for T=A.*B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + bool *iso, // true if the matrix is iso-valued + const GrB_Matrix A // matrix to query ) ; -GrB_Info GrB_Matrix_eWiseMult_BinaryOp // C = accum (C, A.*B) +GrB_Info GrB_Matrix_free // free a matrix ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp mult, // defines '.*' for T=A.*B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix *A // handle of matrix to free ) ; -// All 6 of the above type-specific functions are captured in a single -// type-generic function, GrB_eWiseMult: - -#if GxB_STDC_VERSION >= 201112L -#define GrB_eWiseMult(C,Mask,accum,op,A,B,desc) \ - _Generic \ - ( \ - (C), \ - GrB_Matrix : \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Matrix_eWiseMult_Semiring , \ - GrB_Monoid : GrB_Matrix_eWiseMult_Monoid , \ - GrB_BinaryOp : GrB_Matrix_eWiseMult_BinaryOp \ - ), \ - GrB_Vector : \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Vector_eWiseMult_Semiring , \ - GrB_Monoid : GrB_Vector_eWiseMult_Monoid , \ - GrB_BinaryOp : GrB_Vector_eWiseMult_BinaryOp \ - ) \ - ) \ - (C, Mask, accum, op, A, B, desc) -#endif +//------------------------------------------------------------------------------ +// GrB_Matrix_build +//------------------------------------------------------------------------------ -//============================================================================== -// GrB_eWiseAdd: element-wise matrix and vector operations, set union -//============================================================================== +// GrB_Matrix_build: C = sparse (I,J,X), but using any +// associative operator to assemble duplicate entries. -// GrB_eWiseAdd computes C = accum (C, A+B), where pairs of elements in -// two matrices (or two vectors) are pairwise "added". +GrB_Info GrB_Matrix_build_BOOL // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const bool *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -GrB_Info GrB_Vector_eWiseAdd_Semiring // w = accum (w, u+v) +GrB_Info GrB_Matrix_build_INT8 // build a matrix from (I,J,X) tuples ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Semiring semiring, // defines '+' for t=u+v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const int8_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Vector_eWiseAdd_Monoid // w = accum (w, u+v) +GrB_Info GrB_Matrix_build_UINT8 // build a matrix from (I,J,X) tuples ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Monoid monoid, // defines '+' for t=u+v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const uint8_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Vector_eWiseAdd_BinaryOp // w = accum (w, u+v) +GrB_Info GrB_Matrix_build_INT16 // build a matrix from (I,J,X) tuples ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp add, // defines '+' for t=u+v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const int16_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Matrix_eWiseAdd_Semiring // C = accum (C, A+B) +GrB_Info GrB_Matrix_build_UINT16 // build a matrix from (I,J,X) tuples ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Semiring semiring, // defines '+' for T=A+B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const uint16_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Matrix_eWiseAdd_Monoid // C = accum (C, A+B) +GrB_Info GrB_Matrix_build_INT32 // build a matrix from (I,J,X) tuples ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Monoid monoid, // defines '+' for T=A+B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const int32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Matrix_eWiseAdd_BinaryOp // C = accum (C, A+B) +GrB_Info GrB_Matrix_build_UINT32 // build a matrix from (I,J,X) tuples ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp add, // defines '+' for T=A+B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const uint32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -#if GxB_STDC_VERSION >= 201112L -#define GrB_eWiseAdd(C,Mask,accum,op,A,B,desc) \ - _Generic \ - ( \ - (C), \ - GrB_Matrix : \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Matrix_eWiseAdd_Semiring , \ - GrB_Monoid : GrB_Matrix_eWiseAdd_Monoid , \ - GrB_BinaryOp : GrB_Matrix_eWiseAdd_BinaryOp \ - ), \ - GrB_Vector : \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Vector_eWiseAdd_Semiring , \ - GrB_Monoid : GrB_Vector_eWiseAdd_Monoid , \ - GrB_BinaryOp : GrB_Vector_eWiseAdd_BinaryOp \ - ) \ - ) \ - (C, Mask, accum, op, A, B, desc) -#endif +GrB_Info GrB_Matrix_build_INT64 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const int64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -//============================================================================== -// GxB_eWiseUnion: a variant of GrB_eWiseAdd -//============================================================================== +GrB_Info GrB_Matrix_build_UINT64 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const uint64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// GxB_eWiseUnion is a variant of eWiseAdd. The methods create a result with -// the same sparsity structure. They differ when an entry is present in A but -// not B, or in B but not A. +GrB_Info GrB_Matrix_build_FP32 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const float *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// eWiseAdd does the following, for a matrix, where "+" is the add binary op: +GrB_Info GrB_Matrix_build_FP64 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const double *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// if A(i,j) and B(i,j) are both present: -// C(i,j) = A(i,j) + B(i,j) -// else if A(i,j) is present but not B(i,j) -// C(i,j) = A(i,j) -// else if B(i,j) is present but not A(i,j) -// C(i,j) = B(i,j) +GrB_Info GxB_Matrix_build_FC32 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const GxB_FC32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// by contrast, eWiseUnion always applies the operator: +GrB_Info GxB_Matrix_build_FC64 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const GxB_FC64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// if A(i,j) and B(i,j) are both present: -// C(i,j) = A(i,j) + B(i,j) -// else if A(i,j) is present but not B(i,j) -// C(i,j) = A(i,j) + beta -// else if B(i,j) is present but not A(i,j) -// C(i,j) = alpha + B(i,j) +GrB_Info GrB_Matrix_build_UDT // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const void *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -GrB_Info GxB_Vector_eWiseUnion // w = accum (w, u+v) +GrB_Info GxB_Matrix_build_Scalar // build a matrix from (I,J,scalar) tuples ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp add, // defines '+' for t=u+v - const GrB_Vector u, // first input: vector u - const GrB_Scalar alpha, - const GrB_Vector v, // second input: vector v - const GrB_Scalar beta, - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + GrB_Scalar scalar, // value for all tuples + GrB_Index nvals // number of tuples ) ; -GrB_Info GxB_Matrix_eWiseUnion // C = accum (C, A+B) +// Type-generic version: X can be a pointer to any supported C type or void * +// for a user-defined type. + +/* +GrB_Info GrB_Matrix_build // build a matrix from (I,J,X) tuples ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp add, // defines '+' for T=A+B - const GrB_Matrix A, // first input: matrix A - const GrB_Scalar alpha, - const GrB_Matrix B, // second input: matrix B - const GrB_Scalar beta, - const GrB_Descriptor desc // descriptor for C, M, A, and B + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; +*/ #if GxB_STDC_VERSION >= 201112L -#define GxB_eWiseUnion(C,Mask,accum,op,A,alpha,B,beta,desc) \ - _Generic \ - ( \ - (C), \ - GrB_Matrix : GxB_Matrix_eWiseUnion , \ - GrB_Vector : GxB_Vector_eWiseUnion \ - ) \ - (C, Mask, accum, op, A, alpha, B, beta, desc) +#define GrB_Matrix_build(C,Ilist,J,X,nvals,dup) \ + _Generic \ + ( \ + (X), \ + GB_PCASES (GrB, Matrix_build) \ + ) \ + (C, Ilist, J, ((const void *) (X)), nvals, dup) #endif -//============================================================================== -// GrB_extract: extract a submatrix or subvector -//============================================================================== - -// Extract entries from a matrix or vector; T = A(I,J). This (like most -// GraphBLAS methods) is then followed by C=accum(C,T). - -// To extract all rows of a matrix or vector, as in A (:,J), use I=GrB_ALL as -// the input argument. For all columns of a matrix, use J=GrB_ALL. - -GB_GLOBAL const uint64_t *GrB_ALL ; - -// To extract a range of rows and columns, I and J can be a list of 2 or 3 -// indices that defines a range (begin:end) or a strided range (begin:inc:end). -// To specify the colon syntax I = begin:end, the array I has size at least 2, -// where I [GxB_BEGIN] = begin and I [GxB_END] = end. The parameter ni is then -// passed as the special value GxB_RANGE. To specify the colon syntax I = -// begin:inc:end, the array I has size at least three, with the values begin, -// end, and inc (in that order), and then pass in the value ni = GxB_STRIDE. -// The same can be done for the list J and its size, nj. - -// These special values of ni and nj can be used for GrB_assign, -// GrB_extract, and GxB_subassign. -#define GxB_RANGE (INT64_MAX) -#define GxB_STRIDE (INT64_MAX-1) -#define GxB_BACKWARDS (INT64_MAX-2) - -// for the strided range begin:inc:end, I [GxB_BEGIN] is the value of begin, I -// [GxB_END] is the value end, I [GxB_INC] is the magnitude of the stride. If -// the stride is negative, use ni = GxB_BACKWARDS. -#define GxB_BEGIN (0) -#define GxB_END (1) -#define GxB_INC (2) +//------------------------------------------------------------------------------ +// GrB_Matrix_setElement +//------------------------------------------------------------------------------ -// For example, the notation 10:-2:1 defines a sequence [10 8 6 4 2]. -// The end point of the sequence (1) need not appear in the sequence, if -// the last increment goes past it. To specify the same in GraphBLAS, -// use: +// Set a single entry in a matrix, C(i,j) = x, typecasting +// from the type of x to the type of C, as needed. -// GrB_Index I [3], ni = GxB_BACKWARDS ; -// I [GxB_BEGIN ] = 10 ; // the start of the sequence -// I [GxB_INC ] = 2 ; // the magnitude of the increment -// I [GxB_END ] = 1 ; // the end of the sequence +GrB_Info GrB_Matrix_setElement_BOOL // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + bool x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -GrB_Info GrB_Vector_extract // w = accum (w, u(I)) +GrB_Info GrB_Matrix_setElement_INT8 // C (i,j) = x ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Vector u, // first input: vector u - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to modify + int8_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GrB_Matrix_extract // C = accum (C, A(I,J)) +GrB_Info GrB_Matrix_setElement_UINT8 // C (i,j) = x ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Matrix A, // first input: matrix A - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C, Mask, and A + GrB_Matrix C, // matrix to modify + uint8_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GrB_Col_extract // w = accum (w, A(I,j)) +GrB_Info GrB_Matrix_setElement_INT16 // C (i,j) = x ( - GrB_Vector w, // input/output matrix for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Matrix A, // first input: matrix A - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - GrB_Index j, // column index - const GrB_Descriptor desc // descriptor for w, mask, and A + GrB_Matrix C, // matrix to modify + int16_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -//------------------------------------------------------------------------------ -// GrB_extract: generic matrix/vector extraction -//------------------------------------------------------------------------------ +GrB_Info GrB_Matrix_setElement_UINT16 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + uint16_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// GrB_extract is a generic interface to the following functions: - -// GrB_Vector_extract (w,mask,acc,u,I,ni,d) // w = acc (w, u(I)) -// GrB_Col_extract (w,mask,acc,A,I,ni,j,d) // w = acc (w, A(I,j)) -// GrB_Matrix_extract (C,Mask,acc,A,I,ni,J,nj,d) // C = acc (C, A(I,J)) - -#if GxB_STDC_VERSION >= 201112L -#define GrB_extract(arg1,Mask,accum,arg4,...) \ - _Generic \ - ( \ - (arg1), \ - GrB_Vector : \ - _Generic \ - ( \ - (arg4), \ - GrB_Vector : GrB_Vector_extract , \ - GrB_Matrix : GrB_Col_extract \ - ), \ - GrB_Matrix : GrB_Matrix_extract \ - ) \ - (arg1, Mask, accum, arg4, __VA_ARGS__) -#endif +GrB_Info GrB_Matrix_setElement_INT32 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + int32_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -//============================================================================== -// GxB_subassign: matrix and vector subassign: C(I,J) = accum (C(I,J), A) -//============================================================================== +GrB_Info GrB_Matrix_setElement_UINT32 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + uint32_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// Assign entries in a matrix or vector; C(I,J) = A. +GrB_Info GrB_Matrix_setElement_INT64 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + int64_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// Each GxB_subassign function is very similar to its corresponding GrB_assign -// function in the spec, but they differ in two ways: (1) the mask in -// GxB_subassign has the same size as w(I) for vectors and C(I,J) for matrices, -// and (2) they differ in the GrB_REPLACE option. See the user guide for -// details. +GrB_Info GrB_Matrix_setElement_UINT64 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + uint64_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// In GraphBLAS notation, the two methods can be described as follows: +GrB_Info GrB_Matrix_setElement_FP32 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + float x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// matrix and vector subassign: C(I,J) = accum (C(I,J), A) -// matrix and vector assign: C(I,J) = accum (C(I,J), A) +GrB_Info GrB_Matrix_setElement_FP64 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + double x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// --- assign ------------------------------------------------------------------ -// -// GrB_Matrix_assign C(I,J) += A M same size as matrix C. -// A is |I|-by-|J| -// -// GrB_Vector_assign w(I) += u m same size as column vector w. -// u is |I|-by-1 -// -// GrB_Row_assign C(i,J) += u' m is a column vector the same -// size as a row of C. -// u is |J|-by-1, i is a scalar. -// -// GrB_Col_assign C(I,j) += u m is a column vector the same -// size as a column of C. -// u is |I|-by-1, j is a scalar. -// -// --- subassign --------------------------------------------------------------- -// -// GxB_Matrix_subassign C(I,J) += A M same size as matrix A. -// A is |I|-by-|J| -// -// GxB_Vector_subassign w(I) += u m same size as column vector u. -// u is |I|-by-1 -// -// GxB_Row_subassign C(i,J) += u' m same size as column vector u. -// u is |J|-by-1, i is a scalar. -// -// GxB_Col_subassign C(I,j) += u m same size as column vector u. -// u is |I|-by-1, j is a scalar. +GrB_Info GxB_Matrix_setElement_FC32 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + GxB_FC32_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -GrB_Info GxB_Vector_subassign // w(I) = accum (w(I),u) +GrB_Info GxB_Matrix_setElement_FC64 // C (i,j) = x ( - GrB_Vector w, // input/output matrix for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w(I),t) - const GrB_Vector u, // first input: vector u - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + GrB_Matrix C, // matrix to modify + GxB_FC64_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Matrix_subassign // C(I,J) = accum (C(I,J),A) +GrB_Info GrB_Matrix_setElement_UDT // C (i,j) = x ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),T) - const GrB_Matrix A, // first input: matrix A - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J), Mask, and A + GrB_Matrix C, // matrix to modify + void *x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Col_subassign // C(I,j) = accum (C(I,j),u) +GrB_Info GrB_Matrix_setElement_Scalar // C (i,j) = x ( - GrB_Matrix C, // input/output matrix for results - const GrB_Vector mask, // optional mask for C(I,j), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(C(I,j),t) - const GrB_Vector u, // input vector - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - GrB_Index j, // column index - const GrB_Descriptor desc // descriptor for C(I,j) and mask + GrB_Matrix C, // matrix to modify + GrB_Scalar x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Row_subassign // C(i,J) = accum (C(i,J),u') +// Type-generic version: x can be any supported C type or void * for a +// user-defined type. + +/* +GrB_Info GrB_Matrix_setElement // C (i,j) = x ( - GrB_Matrix C, // input/output matrix for results - const GrB_Vector mask, // optional mask for C(i,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(C(i,J),t) - const GrB_Vector u, // input vector - GrB_Index i, // row index - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(i,J) and mask + GrB_Matrix C, // matrix to modify + x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; +*/ + +#if GxB_STDC_VERSION >= 201112L +#define GrB_Matrix_setElement(C,x,i,j) \ + _Generic \ + ( \ + (x), \ + GB_CASES (GrB, Matrix_setElement), \ + default: GrB_Matrix_setElement_Scalar \ + ) \ + (C, x, i, j) +#endif //------------------------------------------------------------------------------ -// GxB_Vector_subassign_[SCALAR]: scalar expansion assignment to subvector +// GrB_Matrix_extractElement //------------------------------------------------------------------------------ -// Assigns a single scalar to a subvector, w(I) = accum(w(I),x). The -// scalar x is implicitly expanded into a vector u of size ni-by-1, with each -// entry in u equal to x, and then w(I) = accum(w(I),u) is done. +// Extract a single entry from a matrix, x = A(i,j), typecasting from the type +// of A to the type of x, as needed. -GrB_Info GxB_Vector_subassign_BOOL // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_BOOL // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w(I),x) - bool x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + bool *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_INT8 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_INT8 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int8_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + int8_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UINT8 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UINT8 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint8_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + uint8_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_INT16 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_INT16 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int16_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + int16_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UINT16 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UINT16 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint16_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + uint16_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_INT32 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_INT32 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + int32_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UINT32 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UINT32 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + uint32_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_INT64 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_INT64 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + int64_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UINT64 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UINT64 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + uint64_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_FP32 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_FP32 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - float x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + float *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_FP64 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_FP64 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - double x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + double *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_FC32 // w(I) = accum (w(I),x) +GrB_Info GxB_Matrix_extractElement_FC32 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GxB_FC32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + GxB_FC32_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_FC64 // w(I) = accum (w(I),x) +GrB_Info GxB_Matrix_extractElement_FC64 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GxB_FC64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + GxB_FC64_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UDT // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UDT // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - void *x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + void *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_Scalar // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_Scalar // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GrB_Scalar x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + GrB_Scalar x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -//------------------------------------------------------------------------------ -// GxB_Matrix_subassign_[SCALAR]: scalar expansion assignment to submatrix -//------------------------------------------------------------------------------ +// Type-generic version: x can be a pointer to any supported C type or void * +// for a user-defined type. -// Assigns a single scalar to a submatrix, C(I,J) = accum(C(I,J),x). The -// scalar x is implicitly expanded into a matrix A of size ni-by-nj, with each -// entry in A equal to x, and then C(I,J) = accum(C(I,J),A) is done. +/* +GrB_Info GrB_Matrix_extractElement // x = A(i,j) +( + *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index +) ; +*/ -GrB_Info GxB_Matrix_subassign_BOOL // C(I,J) = accum (C(I,J),x) +#if GxB_STDC_VERSION >= 201112L +#define GrB_Matrix_extractElement(x,A,i,j) \ + _Generic \ + ( \ + (x), \ + GB_PCASES (GrB, Matrix_extractElement), \ + default: GrB_Matrix_extractElement_Scalar \ + ) \ + (x, A, i, j) +#endif + +// GxB_Matrix_isStoredElement determines if A(i,j) is present in the structure +// of the matrix A, as a stored element. It does not return the value. It +// returns GrB_SUCCESS if the element is present, or GrB_NO_VALUE otherwise. + +GrB_Info GxB_Matrix_isStoredElement // determine if A(i,j) is a stored element ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - bool x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + const GrB_Matrix A, // matrix to check + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Matrix_subassign_INT8 // C(I,J) = accum (C(I,J),x) +//------------------------------------------------------------------------------ +// GrB_Matrix_removeElement +//------------------------------------------------------------------------------ + +// GrB_Matrix_removeElement (A,i,j) removes the entry A(i,j) from the matrix A. + +GrB_Info GrB_Matrix_removeElement ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int8_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Matrix C, // matrix to remove entry from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Matrix_subassign_UINT8 // C(I,J) = accum (C(I,J),x) +//------------------------------------------------------------------------------ +// GrB_Matrix_extractTuples +//------------------------------------------------------------------------------ + +// Extracts all tuples from a matrix, like [I,J,X] = find (A). If +// any parameter I, J and/or X is NULL, then that component is not extracted. +// For example, to extract just the row and col indices, pass I and J as +// non-NULL, and X as NULL. This is like [I,J,~] = find (A). + +GrB_Info GrB_Matrix_extractTuples_BOOL // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint8_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + bool *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_INT16 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_INT8 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int16_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + int8_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_UINT16 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_UINT8 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint16_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + uint8_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_INT32 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_INT16 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + int16_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_UINT32 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_UINT16 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + uint16_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_INT64 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_INT32 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + int32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_UINT64 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_UINT32 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + uint32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_FP32 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_INT64 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - float x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + int64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_FP64 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_UINT64 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - double x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + uint64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_FC32 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_FP32 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GxB_FC32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + float *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_FC64 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_FP64 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GxB_FC64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + double *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_UDT // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Matrix_extractTuples_FC32 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - void *x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + GxB_FC32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_Scalar // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Matrix_extractTuples_FC64 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GrB_Scalar x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + GxB_FC64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -//------------------------------------------------------------------------------ -// GxB_subassign: generic submatrix/subvector assignment -//------------------------------------------------------------------------------ +GrB_Info GrB_Matrix_extractTuples_UDT // [I,J,X] = find (A) +( + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + void *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from +) ; -// GxB_subassign is a generic function that provides access to all specific -// GxB_*_subassign* functions: +// Type-generic version: X can be a pointer to any supported C type or void * +// for a user-defined type. -// GxB_Vector_subassign (w,m,acc,u,I,ni,d) // w(I) = acc(w(I),u) -// GxB_Matrix_subassign (C,M,acc,A,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),A) -// GxB_Col_subassign (C,m,acc,u,I,ni,j,d) // C(I,j) = acc(C(I,j),u) -// GxB_Row_subassign (C,m,acc,u,i,J,nj,d) // C(i,J) = acc(C(i,J),u') -// GxB_Vector_subassign_T (w,m,acc,x,I,ni,d) // w(I) = acc(w(I),x) -// GxB_Matrix_subassign_T (C,M,acc,x,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),x) +/* +GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) +( + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from +) ; +*/ #if GxB_STDC_VERSION >= 201112L -#define GxB_subassign(arg1,Mask,accum,arg4,arg5,...) \ - _Generic \ - ( \ - (arg1), \ - GrB_Vector : \ - _Generic \ - ( \ - (arg4), \ - GB_CASES (GxB, Vector_subassign) , \ - GrB_Scalar : GxB_Vector_subassign_Scalar, \ - default: GxB_Vector_subassign \ - ), \ - default: \ - _Generic \ - ( \ - (arg4), \ - GB_CASES (GxB, Matrix_subassign) , \ - GrB_Scalar : GxB_Matrix_subassign_Scalar, \ - GrB_Vector : \ - _Generic \ - ( \ - (arg5), \ - const GrB_Index *: GxB_Col_subassign , \ - GrB_Index *: GxB_Col_subassign , \ - default: GxB_Row_subassign \ - ), \ - default: GxB_Matrix_subassign \ - ) \ - ) \ - (arg1, Mask, accum, arg4, arg5, __VA_ARGS__) +#define GrB_Matrix_extractTuples(Ilist,J,X,nvals,A) \ + _Generic \ + ( \ + (X), \ + GB_PCASES (GrB, Matrix_extractTuples) \ + ) \ + (Ilist, J, X, nvals, A) #endif -//============================================================================== -// GrB_assign: matrix and vector assign: C(I,J) = accum (C(I,J), A) -//============================================================================== +//------------------------------------------------------------------------------ +// GxB_Matrix_concat and GxB_Matrix_split +//------------------------------------------------------------------------------ -// Assign entries in a matrix or vector; C(I,J) = A. -// Each of these can be used with their generic name, GrB_assign. +// GxB_Matrix_concat concatenates an array of matrices (Tiles) into a single +// GrB_Matrix C. -GrB_Info GrB_Vector_assign // w(I) = accum (w(I),u) -( - GrB_Vector w, // input/output matrix for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w(I),t) - const GrB_Vector u, // first input: vector u - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// Tiles is an m-by-n dense array of matrices held in row-major format, where +// Tiles [i*n+j] is the (i,j)th tile, and where m > 0 and n > 0 must hold. Let +// A{i,j} denote the (i,j)th tile. The matrix C is constructed by +// concatenating these tiles together, as: -GrB_Info GrB_Matrix_assign // C(I,J) = accum (C(I,J),A) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),T) - const GrB_Matrix A, // first input: matrix A - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C, Mask, and A -) ; +// C = [ A{0,0} A{0,1} A{0,2} ... A{0,n-1} +// A{1,0} A{1,1} A{1,2} ... A{1,n-1} +// ... +// A{m-1,0} A{m-1,1} A{m-1,2} ... A{m-1,n-1} ] -GrB_Info GrB_Col_assign // C(I,j) = accum (C(I,j),u) +// On input, the matrix C must already exist. Any existing entries in C are +// discarded. C must have dimensions nrows by ncols where nrows is the sum of +// # of rows in the matrices A{i,0} for all i, and ncols is the sum of the # of +// columns in the matrices A{0,j} for all j. All matrices in any given tile +// row i must have the same number of rows (that is, nrows(A{i,0}) must equal +// nrows(A{i,j}) for all j), and all matrices in any given tile column j must +// have the same number of columns (that is, ncols(A{0,j}) must equal +// ncols(A{i,j}) for all i). + +// The type of C is unchanged, and all matrices A{i,j} are typecasted into the +// type of C. Any settings made to C by GrB_set (format by row +// or by column, bitmap switch, hyper switch, and sparsity control) are +// unchanged. + +GrB_Info GxB_Matrix_concat // concatenate a 2D array of matrices ( GrB_Matrix C, // input/output matrix for results - const GrB_Vector mask, // optional mask for C(:,j), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(C(I,j),t) - const GrB_Vector u, // input vector - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - GrB_Index j, // column index - const GrB_Descriptor desc // descriptor for C(:,j) and mask + const GrB_Matrix *Tiles, // 2D row-major array of size m-by-n + const GrB_Index m, + const GrB_Index n, + const GrB_Descriptor desc // unused, except threading control ) ; -GrB_Info GrB_Row_assign // C(i,J) = accum (C(i,J),u') +// GxB_Matrix_split does the opposite of GxB_Matrix_concat. It splits a single +// input matrix A into a 2D array of tiles. On input, the Tiles array must be +// a non-NULL pointer to a previously allocated array of size at least m*n +// where both m and n must be > 0. The Tiles_nrows array has size m, and +// Tiles_ncols has size n. The (i,j)th tile has dimension +// Tiles_nrows[i]-by-Tiles_ncols[j]. The sum of Tiles_nrows [0:m-1] must equal +// the number of rows of A, and the sum of Tiles_ncols [0:n-1] must equal the +// number of columns of A. The type of each tile is the same as the type of A; +// no typecasting is done. + +GrB_Info GxB_Matrix_split // split a matrix into 2D array of matrices ( - GrB_Matrix C, // input/output matrix for results - const GrB_Vector mask, // optional mask for C(i,:), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(C(i,J),t) - const GrB_Vector u, // input vector - GrB_Index i, // row index - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(i,:) and mask + GrB_Matrix *Tiles, // 2D row-major array of size m-by-n + const GrB_Index m, + const GrB_Index n, + const GrB_Index *Tile_nrows, // array of size m + const GrB_Index *Tile_ncols, // array of size n + const GrB_Matrix A, // input matrix to split + const GrB_Descriptor desc // unused, except threading control ) ; //------------------------------------------------------------------------------ -// GrB_Vector_assign_[SCALAR]: scalar expansion assignment to subvector +// GxB_Matrix_diag, GxB_Vector_diag, GrB_Matrix_diag //------------------------------------------------------------------------------ -// Assigns a single scalar to a subvector, w(I) = accum(w(I),x). The -// scalar x is implicitly expanded into a vector u of size ni-by-1, with each -// entry in u equal to x, and then w(I) = accum(w(I),u) is done. - -GrB_Info GrB_Vector_assign_BOOL // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w(I),x) - bool x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; - -GrB_Info GrB_Vector_assign_INT8 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int8_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// GrB_Matrix_diag constructs a new matrix from a vector. Let n be the length +// of the v vector, from GrB_Vector_size (&n, v). If k = 0, then C is an +// n-by-n diagonal matrix with the entries from v along the main diagonal of C, +// with C(i,i) = v(i). If k is nonzero, C is square with dimension n+abs(k). +// If k is positive, it denotes diagonals above the main diagonal, with +// C(i,i+k) = v(i). If k is negative, it denotes diagonals below the main +// diagonal of C, with C(i-k,i) = v(i). C is constructed with the same type +// as v. -GrB_Info GrB_Vector_assign_UINT8 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_diag // build a diagonal matrix from a vector ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint8_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix *C, // output matrix + const GrB_Vector v, // input vector + int64_t k ) ; -GrB_Info GrB_Vector_assign_INT16 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int16_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// GrB_Matrix_diag is like GxB_Matrix_diag (&C, v, k, NULL), except that C must +// already exist on input, of the correct size. Any existing entries in C are +// discarded. The type of C is preserved, so that if the type of C and v +// differ, the entries are typecasted into the type of C. Any settings made to +// C by GrB_set (format by row or by column, bitmap switch, hyper +// switch, and sparsity control) are unchanged. -GrB_Info GrB_Vector_assign_UINT16 // w(I) = accum (w(I),x) +GrB_Info GxB_Matrix_diag // construct a diagonal matrix from a vector ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint16_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // output matrix + const GrB_Vector v, // input vector + int64_t k, + const GrB_Descriptor desc // to specify # of threads ) ; -GrB_Info GrB_Vector_assign_INT32 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// GxB_Vector_diag extracts a vector v from an input matrix A, which may be +// rectangular. If k = 0, the main diagonal of A is extracted; k > 0 denotes +// diagonals above the main diagonal of A, and k < 0 denotes diagonals below +// the main diagonal of A. Let A have dimension m-by-n. If k is in the range +// 0 to n-1, then v has length min(m,n-k). If k is negative and in the range +// -1 to -m+1, then v has length min(m+k,n). If k is outside these ranges, +// v has length 0 (this is not an error). -GrB_Info GrB_Vector_assign_UINT32 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// v must already exist on input, of the correct length; that is +// GrB_Vector_size (&len,v) must return len = 0 if k >= n or k <= -m, len = +// min(m,n-k) if k is in the range 0 to n-1, and len = min(m+k,n) if k is in +// the range -1 to -m+1. Any existing entries in v are discarded. The type of +// v is preserved, so that if the type of A and v differ, the entries are +// typecasted into the type of v. Any settings made to v by +// GrB_set (bitmap switch and sparsity control) are unchanged. -GrB_Info GrB_Vector_assign_INT64 // w(I) = accum (w(I),x) +GrB_Info GxB_Vector_diag // extract a diagonal from a matrix, as a vector ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GrB_Vector v, // output vector + const GrB_Matrix A, // input matrix + int64_t k, + const GrB_Descriptor desc // unused, except threading control ) ; -GrB_Info GrB_Vector_assign_UINT64 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +//============================================================================== +// GxB_Context: for managing computational resources +//============================================================================== -GrB_Info GrB_Vector_assign_FP32 // w(I) = accum (w(I),x) +GrB_Info GxB_Context_new // create a new Context ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - float x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GxB_Context *Context // handle of Context to create ) ; -GrB_Info GrB_Vector_assign_FP64 // w(I) = accum (w(I),x) +GrB_Info GxB_Context_free // free a Context ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - double x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GxB_Context *Context // handle of Context to free ) ; -GrB_Info GxB_Vector_assign_FC32 // w(I) = accum (w(I),x) +GrB_Info GxB_Context_engage // engage a Context ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GxB_FC32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GxB_Context Context // Context to engage ) ; -GrB_Info GxB_Vector_assign_FC64 // w(I) = accum (w(I),x) +GrB_Info GxB_Context_disengage // disengage a Context ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GxB_FC64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GxB_Context Context // Context to disengage ) ; -GrB_Info GrB_Vector_assign_UDT // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - void *x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +//============================================================================== +// GxB_set and GxB_get: historical; use GrB_set and GrB_get instead +//============================================================================== -GrB_Info GrB_Vector_assign_Scalar // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GrB_Scalar x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// historical: use GrB_set and GrB_get instead of these methods: +GrB_Info GxB_Matrix_Option_set (GrB_Matrix, GxB_Option_Field, ...) ; +GrB_Info GxB_Matrix_Option_set_INT32 (GrB_Matrix, GxB_Option_Field, int32_t) ; +GrB_Info GxB_Matrix_Option_set_FP64 (GrB_Matrix, GxB_Option_Field, double) ; +GrB_Info GxB_Matrix_Option_get (GrB_Matrix, GxB_Option_Field, ...) ; +GrB_Info GxB_Matrix_Option_get_INT32 (GrB_Matrix, GxB_Option_Field, int32_t *) ; +GrB_Info GxB_Matrix_Option_get_FP64 (GrB_Matrix, GxB_Option_Field, double *) ; +GrB_Info GxB_Vector_Option_set (GrB_Vector, GxB_Option_Field, ...) ; +GrB_Info GxB_Vector_Option_set_INT32 (GrB_Vector, GxB_Option_Field, int32_t) ; +GrB_Info GxB_Vector_Option_set_FP64 (GrB_Vector, GxB_Option_Field, double) ; +GrB_Info GxB_Vector_Option_get (GrB_Vector, GxB_Option_Field, ...) ; +GrB_Info GxB_Vector_Option_get_INT32 (GrB_Vector, GxB_Option_Field, int32_t *) ; +GrB_Info GxB_Vector_Option_get_FP64 (GrB_Vector, GxB_Option_Field, double *) ; +GrB_Info GxB_Global_Option_set (GxB_Option_Field, ...) ; +GrB_Info GxB_Global_Option_set_INT32 (GxB_Option_Field, int32_t) ; +GrB_Info GxB_Global_Option_set_FP64 (GxB_Option_Field, double) ; +GrB_Info GxB_Global_Option_set_FP64_ARRAY (GxB_Option_Field, double *) ; +GrB_Info GxB_Global_Option_set_INT64_ARRAY (GxB_Option_Field, int64_t *) ; +GrB_Info GxB_Global_Option_set_CHAR (GxB_Option_Field, const char *) ; +GrB_Info GxB_Global_Option_set_FUNCTION (GxB_Option_Field, void *) ; +GrB_Info GxB_Global_Option_get (GxB_Option_Field, ...) ; +GrB_Info GxB_Global_Option_get_INT32 (GxB_Option_Field, int32_t *) ; +GrB_Info GxB_Global_Option_get_FP64 (GxB_Option_Field, double *) ; +GrB_Info GxB_Global_Option_get_INT64 (GxB_Option_Field, int64_t *) ; +GrB_Info GxB_Global_Option_get_CHAR (GxB_Option_Field, const char **) ; +GrB_Info GxB_Global_Option_get_FUNCTION (GxB_Option_Field, void **) ; +GrB_Info GxB_Context_set_INT32 (GxB_Context, GxB_Context_Field, int32_t) ; +GrB_Info GxB_Context_set_FP64 (GxB_Context, GxB_Context_Field, double) ; +GrB_Info GxB_Context_set (GxB_Context, GxB_Context_Field, ...) ; +GrB_Info GxB_Context_get_INT32 (GxB_Context, GxB_Context_Field, int32_t *) ; +GrB_Info GxB_Context_get_FP64 (GxB_Context, GxB_Context_Field, double *) ; +GrB_Info GxB_Context_get (GxB_Context, GxB_Context_Field, ...) ; + +#if GxB_STDC_VERSION >= 201112L +#define GxB_set(arg1,...) \ + _Generic \ + ( \ + (arg1), \ + default: GxB_Global_Option_set , \ + GxB_Option_Field : GxB_Global_Option_set , \ + GrB_Vector : GxB_Vector_Option_set , \ + GrB_Matrix : GxB_Matrix_Option_set , \ + GrB_Descriptor : GxB_Desc_set , \ + GxB_Context : GxB_Context_set \ + ) \ + (arg1, __VA_ARGS__) + +#define GxB_get(arg1,...) \ + _Generic \ + ( \ + (arg1), \ + default: GxB_Global_Option_get , \ + GxB_Option_Field : GxB_Global_Option_get , \ + GrB_Vector : GxB_Vector_Option_get , \ + GrB_Matrix : GxB_Matrix_Option_get , \ + GrB_Descriptor : GxB_Desc_get , \ + GxB_Context : GxB_Context_get \ + ) \ + (arg1, __VA_ARGS__) +#endif + +//============================================================================== +// GrB_set and GrB_get +//============================================================================== //------------------------------------------------------------------------------ -// GrB_Matrix_assign_[SCALAR]: scalar expansion assignment to submatrix +// GrB_get: get a scalar, string, enum, size, or void * from an object //------------------------------------------------------------------------------ -// Assigns a single scalar to a submatrix, C(I,J) = accum(C(I,J),x). The -// scalar x is implicitly expanded into a matrix A of size ni-by-nj, with each -// entry in A equal to x, and then C(I,J) = accum(C(I,J),A) is done. +GrB_Info GrB_Scalar_get_Scalar (GrB_Scalar, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Scalar_get_String (GrB_Scalar, char * , GrB_Field) ; +GrB_Info GrB_Scalar_get_INT32 (GrB_Scalar, int32_t * , GrB_Field) ; +GrB_Info GrB_Scalar_get_SIZE (GrB_Scalar, size_t * , GrB_Field) ; +GrB_Info GrB_Scalar_get_VOID (GrB_Scalar, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_BOOL // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - bool x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Vector_get_Scalar (GrB_Vector, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Vector_get_String (GrB_Vector, char * , GrB_Field) ; +GrB_Info GrB_Vector_get_INT32 (GrB_Vector, int32_t * , GrB_Field) ; +GrB_Info GrB_Vector_get_SIZE (GrB_Vector, size_t * , GrB_Field) ; +GrB_Info GrB_Vector_get_VOID (GrB_Vector, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_INT8 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int8_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Matrix_get_Scalar (GrB_Matrix, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Matrix_get_String (GrB_Matrix, char * , GrB_Field) ; +GrB_Info GrB_Matrix_get_INT32 (GrB_Matrix, int32_t * , GrB_Field) ; +GrB_Info GrB_Matrix_get_SIZE (GrB_Matrix, size_t * , GrB_Field) ; +GrB_Info GrB_Matrix_get_VOID (GrB_Matrix, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_UINT8 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint8_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GxB_Serialized_get_Scalar (const void *, GrB_Scalar, GrB_Field, size_t) ; +GrB_Info GxB_Serialized_get_String (const void *, char * , GrB_Field, size_t) ; +GrB_Info GxB_Serialized_get_INT32 (const void *, int32_t * , GrB_Field, size_t) ; +GrB_Info GxB_Serialized_get_SIZE (const void *, size_t * , GrB_Field, size_t) ; +GrB_Info GxB_Serialized_get_VOID (const void *, void * , GrB_Field, size_t) ; -GrB_Info GrB_Matrix_assign_INT16 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int16_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_UnaryOp_get_Scalar (GrB_UnaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_UnaryOp_get_String (GrB_UnaryOp, char * , GrB_Field) ; +GrB_Info GrB_UnaryOp_get_INT32 (GrB_UnaryOp, int32_t * , GrB_Field) ; +GrB_Info GrB_UnaryOp_get_SIZE (GrB_UnaryOp, size_t * , GrB_Field) ; +GrB_Info GrB_UnaryOp_get_VOID (GrB_UnaryOp, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_UINT16 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint16_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_IndexUnaryOp_get_Scalar (GrB_IndexUnaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_get_String (GrB_IndexUnaryOp, char * , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_get_INT32 (GrB_IndexUnaryOp, int32_t * , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_get_SIZE (GrB_IndexUnaryOp, size_t * , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_get_VOID (GrB_IndexUnaryOp, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_INT32 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_BinaryOp_get_Scalar (GrB_BinaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_BinaryOp_get_String (GrB_BinaryOp, char * , GrB_Field) ; +GrB_Info GrB_BinaryOp_get_INT32 (GrB_BinaryOp, int32_t * , GrB_Field) ; +GrB_Info GrB_BinaryOp_get_SIZE (GrB_BinaryOp, size_t * , GrB_Field) ; +GrB_Info GrB_BinaryOp_get_VOID (GrB_BinaryOp, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_UINT32 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Monoid_get_Scalar (GrB_Monoid, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Monoid_get_String (GrB_Monoid, char * , GrB_Field) ; +GrB_Info GrB_Monoid_get_INT32 (GrB_Monoid, int32_t * , GrB_Field) ; +GrB_Info GrB_Monoid_get_SIZE (GrB_Monoid, size_t * , GrB_Field) ; +GrB_Info GrB_Monoid_get_VOID (GrB_Monoid, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_INT64 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Semiring_get_Scalar (GrB_Semiring, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Semiring_get_String (GrB_Semiring, char * , GrB_Field) ; +GrB_Info GrB_Semiring_get_INT32 (GrB_Semiring, int32_t * , GrB_Field) ; +GrB_Info GrB_Semiring_get_SIZE (GrB_Semiring, size_t * , GrB_Field) ; +GrB_Info GrB_Semiring_get_VOID (GrB_Semiring, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_UINT64 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Descriptor_get_Scalar (GrB_Descriptor, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Descriptor_get_String (GrB_Descriptor, char * , GrB_Field) ; +GrB_Info GrB_Descriptor_get_INT32 (GrB_Descriptor, int32_t * , GrB_Field) ; +GrB_Info GrB_Descriptor_get_SIZE (GrB_Descriptor, size_t * , GrB_Field) ; +GrB_Info GrB_Descriptor_get_VOID (GrB_Descriptor, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_FP32 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - float x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Type_get_Scalar (GrB_Type, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Type_get_String (GrB_Type, char * , GrB_Field) ; +GrB_Info GrB_Type_get_INT32 (GrB_Type, int32_t * , GrB_Field) ; +GrB_Info GrB_Type_get_SIZE (GrB_Type, size_t * , GrB_Field) ; +GrB_Info GrB_Type_get_VOID (GrB_Type, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_FP64 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - double x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices +GrB_Info GrB_Global_get_Scalar (GrB_Global, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Global_get_String (GrB_Global, char * , GrB_Field) ; +GrB_Info GrB_Global_get_INT32 (GrB_Global, int32_t * , GrB_Field) ; +GrB_Info GrB_Global_get_SIZE (GrB_Global, size_t * , GrB_Field) ; +GrB_Info GrB_Global_get_VOID (GrB_Global, void * , GrB_Field) ; + +GrB_Info GxB_Context_get_Scalar (GxB_Context, GrB_Scalar, GrB_Field) ; +GrB_Info GxB_Context_get_String (GxB_Context, char * , GrB_Field) ; +GrB_Info GxB_Context_get_INT (GxB_Context, int32_t * , GrB_Field) ; +GrB_Info GxB_Context_get_SIZE (GxB_Context, size_t * , GrB_Field) ; +GrB_Info GxB_Context_get_VOID (GxB_Context, void * , GrB_Field) ; + +// GrB_get (object, value, field): +#if GxB_STDC_VERSION >= 201112L +#define GrB_get(object,value,...) \ + _Generic \ + ( \ + (object), \ + GrB_Scalar : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Scalar_get_Scalar , \ + char * : GrB_Scalar_get_String , \ + int32_t * : GrB_Scalar_get_INT32 , \ + size_t * : GrB_Scalar_get_SIZE , \ + void * : GrB_Scalar_get_VOID \ + ) , \ + GrB_Vector : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Vector_get_Scalar , \ + char * : GrB_Vector_get_String , \ + int32_t * : GrB_Vector_get_INT32 , \ + size_t * : GrB_Vector_get_SIZE , \ + void * : GrB_Vector_get_VOID \ + ) , \ + GrB_Matrix : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Matrix_get_Scalar , \ + char * : GrB_Matrix_get_String , \ + int32_t * : GrB_Matrix_get_INT32 , \ + size_t * : GrB_Matrix_get_SIZE , \ + void * : GrB_Matrix_get_VOID \ + ) , \ + GrB_UnaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_UnaryOp_get_Scalar , \ + char * : GrB_UnaryOp_get_String , \ + int32_t * : GrB_UnaryOp_get_INT32 , \ + size_t * : GrB_UnaryOp_get_SIZE , \ + void * : GrB_UnaryOp_get_VOID \ + ) , \ + GrB_IndexUnaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_IndexUnaryOp_get_Scalar , \ + char * : GrB_IndexUnaryOp_get_String , \ + int32_t * : GrB_IndexUnaryOp_get_INT32 , \ + size_t * : GrB_IndexUnaryOp_get_SIZE , \ + void * : GrB_IndexUnaryOp_get_VOID \ + ) , \ + GrB_BinaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_BinaryOp_get_Scalar , \ + char * : GrB_BinaryOp_get_String , \ + int32_t * : GrB_BinaryOp_get_INT32 , \ + size_t * : GrB_BinaryOp_get_SIZE , \ + void * : GrB_BinaryOp_get_VOID \ + ) , \ + GrB_Monoid : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Monoid_get_Scalar , \ + char * : GrB_Monoid_get_String , \ + int32_t * : GrB_Monoid_get_INT32 , \ + size_t * : GrB_Monoid_get_SIZE , \ + void * : GrB_Monoid_get_VOID \ + ) , \ + GrB_Semiring : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Semiring_get_Scalar , \ + char * : GrB_Semiring_get_String , \ + int32_t * : GrB_Semiring_get_INT32 , \ + size_t * : GrB_Semiring_get_SIZE , \ + void * : GrB_Semiring_get_VOID \ + ) , \ + GrB_Type : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Type_get_Scalar , \ + char * : GrB_Type_get_String , \ + int32_t * : GrB_Type_get_INT32 , \ + size_t * : GrB_Type_get_SIZE , \ + void * : GrB_Type_get_VOID \ + ) , \ + GrB_Descriptor : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Descriptor_get_Scalar , \ + char * : GrB_Descriptor_get_String , \ + int32_t * : GrB_Descriptor_get_INT32 , \ + size_t * : GrB_Descriptor_get_SIZE , \ + void * : GrB_Descriptor_get_VOID \ + ) , \ + GrB_Global : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Global_get_Scalar , \ + char * : GrB_Global_get_String , \ + int32_t * : GrB_Global_get_INT32 , \ + size_t * : GrB_Global_get_SIZE , \ + void * : GrB_Global_get_VOID \ + ) , \ + GxB_Context : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GxB_Context_get_Scalar , \ + char * : GxB_Context_get_String , \ + int32_t * : GxB_Context_get_INT , \ + size_t * : GxB_Context_get_SIZE , \ + void * : GxB_Context_get_VOID \ + ) , \ + const void *: \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GxB_Serialized_get_Scalar , \ + char * : GxB_Serialized_get_String , \ + int32_t * : GxB_Serialized_get_INT32 , \ + size_t * : GxB_Serialized_get_SIZE , \ + void * : GxB_Serialized_get_VOID \ + ) , \ + void *: \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GxB_Serialized_get_Scalar , \ + char * : GxB_Serialized_get_String , \ + int32_t * : GxB_Serialized_get_INT32 , \ + size_t * : GxB_Serialized_get_SIZE , \ + void * : GxB_Serialized_get_VOID \ + ) \ + ) (object, value, __VA_ARGS__) +#endif + +//------------------------------------------------------------------------------ +// GrB_set: set a scalar, string, enum, size, or void * of an object +//------------------------------------------------------------------------------ + +GrB_Info GrB_Scalar_set_Scalar (GrB_Scalar, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Scalar_set_String (GrB_Scalar, char * , GrB_Field) ; +GrB_Info GrB_Scalar_set_INT32 (GrB_Scalar, int32_t , GrB_Field) ; +GrB_Info GrB_Scalar_set_VOID (GrB_Scalar, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Vector_set_Scalar (GrB_Vector, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Vector_set_String (GrB_Vector, char * , GrB_Field) ; +GrB_Info GrB_Vector_set_INT32 (GrB_Vector, int32_t , GrB_Field) ; +GrB_Info GrB_Vector_set_VOID (GrB_Vector, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Matrix_set_Scalar (GrB_Matrix, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Matrix_set_String (GrB_Matrix, char * , GrB_Field) ; +GrB_Info GrB_Matrix_set_INT32 (GrB_Matrix, int32_t , GrB_Field) ; +GrB_Info GrB_Matrix_set_VOID (GrB_Matrix, void * , GrB_Field, size_t) ; + +GrB_Info GrB_UnaryOp_set_Scalar (GrB_UnaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_UnaryOp_set_String (GrB_UnaryOp, char * , GrB_Field) ; +GrB_Info GrB_UnaryOp_set_INT32 (GrB_UnaryOp, int32_t , GrB_Field) ; +GrB_Info GrB_UnaryOp_set_VOID (GrB_UnaryOp, void * , GrB_Field, size_t) ; + +GrB_Info GrB_IndexUnaryOp_set_Scalar (GrB_IndexUnaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_set_String (GrB_IndexUnaryOp, char * , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_set_INT32 (GrB_IndexUnaryOp, int32_t , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_set_VOID (GrB_IndexUnaryOp, void * , GrB_Field, + size_t) ; + +GrB_Info GrB_BinaryOp_set_Scalar (GrB_BinaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_BinaryOp_set_String (GrB_BinaryOp, char * , GrB_Field) ; +GrB_Info GrB_BinaryOp_set_INT32 (GrB_BinaryOp, int32_t , GrB_Field) ; +GrB_Info GrB_BinaryOp_set_VOID (GrB_BinaryOp, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Monoid_set_Scalar (GrB_Monoid, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Monoid_set_String (GrB_Monoid, char * , GrB_Field) ; +GrB_Info GrB_Monoid_set_INT32 (GrB_Monoid, int32_t , GrB_Field) ; +GrB_Info GrB_Monoid_set_VOID (GrB_Monoid, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Semiring_set_Scalar (GrB_Semiring, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Semiring_set_String (GrB_Semiring, char * , GrB_Field) ; +GrB_Info GrB_Semiring_set_INT32 (GrB_Semiring, int32_t , GrB_Field) ; +GrB_Info GrB_Semiring_set_VOID (GrB_Semiring, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Descriptor_set_Scalar (GrB_Descriptor, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Descriptor_set_String (GrB_Descriptor, char * , GrB_Field) ; +GrB_Info GrB_Descriptor_set_INT32 (GrB_Descriptor, int32_t , GrB_Field) ; +GrB_Info GrB_Descriptor_set_VOID (GrB_Descriptor, void * , GrB_Field, + size_t) ; + +GrB_Info GrB_Type_set_Scalar (GrB_Type, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Type_set_String (GrB_Type, char * , GrB_Field) ; +GrB_Info GrB_Type_set_INT32 (GrB_Type, int32_t , GrB_Field) ; +GrB_Info GrB_Type_set_VOID (GrB_Type, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Global_set_Scalar (GrB_Global, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Global_set_String (GrB_Global, char * , GrB_Field) ; +GrB_Info GrB_Global_set_INT32 (GrB_Global, int32_t , GrB_Field) ; +GrB_Info GrB_Global_set_VOID (GrB_Global, void * , GrB_Field, size_t) ; + +GrB_Info GxB_Context_set_Scalar (GxB_Context, GrB_Scalar, GrB_Field) ; +GrB_Info GxB_Context_set_String (GxB_Context, char * , GrB_Field) ; +GrB_Info GxB_Context_set_INT (GxB_Context, int32_t , GrB_Field) ; +GrB_Info GxB_Context_set_VOID (GxB_Context, void * , GrB_Field, size_t) ; + +// GrB_set (object, value, field) or (object, value, field, size) for _VOID +#if GxB_STDC_VERSION >= 201112L +#define GrB_set(object,value,...) \ + _Generic \ + ( \ + (object), \ + GrB_Scalar : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Scalar_set_Scalar , \ + char * : GrB_Scalar_set_String , \ + int32_t : GrB_Scalar_set_INT32 , \ + void * : GrB_Scalar_set_VOID \ + ) , \ + GrB_Vector : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Vector_set_Scalar , \ + char * : GrB_Vector_set_String , \ + int32_t : GrB_Vector_set_INT32 , \ + void * : GrB_Vector_set_VOID \ + ) , \ + GrB_Matrix : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Matrix_set_Scalar , \ + char * : GrB_Matrix_set_String , \ + int32_t : GrB_Matrix_set_INT32 , \ + void * : GrB_Matrix_set_VOID \ + ) , \ + GrB_UnaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_UnaryOp_set_Scalar , \ + char * : GrB_UnaryOp_set_String , \ + int32_t : GrB_UnaryOp_set_INT32 , \ + void * : GrB_UnaryOp_set_VOID \ + ) , \ + GrB_IndexUnaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_IndexUnaryOp_set_Scalar , \ + char * : GrB_IndexUnaryOp_set_String , \ + int32_t : GrB_IndexUnaryOp_set_INT32 , \ + void * : GrB_IndexUnaryOp_set_VOID \ + ) , \ + GrB_BinaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_BinaryOp_set_Scalar , \ + char * : GrB_BinaryOp_set_String , \ + int32_t : GrB_BinaryOp_set_INT32 , \ + void * : GrB_BinaryOp_set_VOID \ + ) , \ + GrB_Monoid : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Monoid_set_Scalar , \ + char * : GrB_Monoid_set_String , \ + int32_t : GrB_Monoid_set_INT32 , \ + void * : GrB_Monoid_set_VOID \ + ) , \ + GrB_Semiring : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Semiring_set_Scalar , \ + char * : GrB_Semiring_set_String , \ + int32_t : GrB_Semiring_set_INT32 , \ + void * : GrB_Semiring_set_VOID \ + ) , \ + GrB_Type : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Type_set_Scalar , \ + char * : GrB_Type_set_String , \ + int32_t : GrB_Type_set_INT32 , \ + void * : GrB_Type_set_VOID \ + ) , \ + GrB_Descriptor : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Descriptor_set_Scalar , \ + char * : GrB_Descriptor_set_String , \ + int32_t : GrB_Descriptor_set_INT32 , \ + void * : GrB_Descriptor_set_VOID \ + ) , \ + GrB_Global : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Global_set_Scalar , \ + char * : GrB_Global_set_String , \ + int32_t : GrB_Global_set_INT32 , \ + void * : GrB_Global_set_VOID \ + ) , \ + GxB_Context : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GxB_Context_set_Scalar , \ + char * : GxB_Context_set_String , \ + int32_t : GxB_Context_set_INT , \ + void * : GxB_Context_set_VOID \ + ) \ + ) (object, value, __VA_ARGS__) +#endif + +//============================================================================== +// GrB_free: free any GraphBLAS object +//============================================================================== + +#if GxB_STDC_VERSION >= 201112L +#define GrB_free(object) \ + _Generic \ + ( \ + (object), \ + GrB_Type *: GrB_Type_free , \ + GrB_UnaryOp *: GrB_UnaryOp_free , \ + GrB_BinaryOp *: GrB_BinaryOp_free , \ + GrB_IndexUnaryOp *: GrB_IndexUnaryOp_free , \ + GrB_Monoid *: GrB_Monoid_free , \ + GrB_Semiring *: GrB_Semiring_free , \ + GrB_Scalar *: GrB_Scalar_free , \ + GrB_Vector *: GrB_Vector_free , \ + GrB_Matrix *: GrB_Matrix_free , \ + GrB_Descriptor *: GrB_Descriptor_free , \ + GxB_Context *: GxB_Context_free , \ + GxB_Iterator *: GxB_Iterator_free \ + ) \ + (object) +#endif + +//============================================================================== +// GrB_wait: finish computations +//============================================================================== + +// Finish all pending work in a specific object. + +GrB_Info GrB_Type_wait (GrB_Type type , GrB_WaitMode waitmode); +GrB_Info GrB_UnaryOp_wait (GrB_UnaryOp op , GrB_WaitMode waitmode); +GrB_Info GrB_BinaryOp_wait (GrB_BinaryOp op , GrB_WaitMode waitmode); +GrB_Info GrB_IndexUnaryOp_wait (GrB_IndexUnaryOp op , GrB_WaitMode waitmode); +GrB_Info GrB_Monoid_wait (GrB_Monoid monoid , GrB_WaitMode waitmode); +GrB_Info GrB_Semiring_wait (GrB_Semiring semiring, GrB_WaitMode waitmode); +GrB_Info GrB_Descriptor_wait (GrB_Descriptor desc , GrB_WaitMode waitmode); +GrB_Info GrB_Scalar_wait (GrB_Scalar s , GrB_WaitMode waitmode); +GrB_Info GrB_Vector_wait (GrB_Vector v , GrB_WaitMode waitmode); +GrB_Info GrB_Matrix_wait (GrB_Matrix A , GrB_WaitMode waitmode); +GrB_Info GxB_Context_wait (GxB_Context Context , GrB_WaitMode waitmode); + +// GrB_wait (object,waitmode) polymorphic function: +#if GxB_STDC_VERSION >= 201112L +#define GrB_wait(object,waitmode) \ + _Generic \ + ( \ + (object), \ + GrB_Type : GrB_Type_wait , \ + GrB_UnaryOp : GrB_UnaryOp_wait , \ + GrB_BinaryOp : GrB_BinaryOp_wait , \ + GrB_IndexUnaryOp : GrB_IndexUnaryOp_wait , \ + GrB_Monoid : GrB_Monoid_wait , \ + GrB_Semiring : GrB_Semiring_wait , \ + GrB_Scalar : GrB_Scalar_wait , \ + GrB_Vector : GrB_Vector_wait , \ + GrB_Matrix : GrB_Matrix_wait , \ + GxB_Context : GxB_Context_wait , \ + GrB_Descriptor : GrB_Descriptor_wait \ + ) \ + (object, waitmode) +#endif + +// NOTE: GxB_Scalar_wait is historical; use GrB_Scalar_wait instead +GrB_Info GxB_Scalar_wait (GrB_Scalar *s) ; + +//============================================================================== +// GrB_error: error handling +//============================================================================== + +// Each GraphBLAS method and operation returns a GrB_Info error code. +// GrB_error returns additional information on the error in a thread-safe +// null-terminated string. The string returned by GrB_error is owned by +// the GraphBLAS library and must not be free'd. + +GrB_Info GrB_Type_error (const char **error, const GrB_Type type) ; +GrB_Info GrB_UnaryOp_error (const char **error, const GrB_UnaryOp op) ; +GrB_Info GrB_BinaryOp_error (const char **error, const GrB_BinaryOp op) ; +GrB_Info GrB_IndexUnaryOp_error (const char **error, const GrB_IndexUnaryOp op) ; +GrB_Info GrB_Monoid_error (const char **error, const GrB_Monoid monoid) ; +GrB_Info GrB_Semiring_error (const char **error, const GrB_Semiring semiring) ; +GrB_Info GrB_Scalar_error (const char **error, const GrB_Scalar s) ; +GrB_Info GrB_Vector_error (const char **error, const GrB_Vector v) ; +GrB_Info GrB_Matrix_error (const char **error, const GrB_Matrix A) ; +GrB_Info GrB_Descriptor_error (const char **error, const GrB_Descriptor d) ; +// GxB_Scalar_error is historical: use GrB_Scalar_error instead +GrB_Info GxB_Scalar_error (const char **error, const GrB_Scalar s) ; +GrB_Info GxB_Context_error (const char **error, const GxB_Context Context); + +// GrB_error (error,object) polymorphic function: +#if GxB_STDC_VERSION >= 201112L +#define GrB_error(error,object) \ + _Generic \ + ( \ + (object), \ + GrB_Type : GrB_Type_error , \ + GrB_UnaryOp : GrB_UnaryOp_error , \ + GrB_BinaryOp : GrB_BinaryOp_error , \ + GrB_IndexUnaryOp : GrB_IndexUnaryOp_error , \ + GrB_Monoid : GrB_Monoid_error , \ + GrB_Semiring : GrB_Semiring_error , \ + GrB_Scalar : GrB_Scalar_error , \ + GrB_Vector : GrB_Vector_error , \ + GrB_Matrix : GrB_Matrix_error , \ + GxB_Context : GxB_Context_error , \ + GrB_Descriptor : GrB_Descriptor_error \ + ) \ + (error, object) +#endif + +//============================================================================== +// GrB_mxm, vxm, mxv: matrix multiplication over a semiring +//============================================================================== + +GrB_Info GrB_mxm // C = accum (C, A*B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Semiring semiring, // defines '+' and '*' for A*B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_vxm // w' = accum (w, u'*A) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Semiring semiring, // defines '+' and '*' for u'*A + const GrB_Vector u, // first input: vector u + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for w, mask, and A +) ; + +GrB_Info GrB_mxv // w = accum (w, A*u) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Semiring semiring, // defines '+' and '*' for A*B + const GrB_Matrix A, // first input: matrix A + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w, mask, and A +) ; + +//============================================================================== +// GrB_eWiseMult: element-wise matrix and vector operations, set intersection +//============================================================================== + +// GrB_eWiseMult computes C = accum (C, A.*B), where ".*" is the Hadamard +// product, and where pairs of elements in two matrices (or vectors) are +// pairwise "multiplied" with C(i,j) = mult (A(i,j),B(i,j)). + +GrB_Info GrB_Vector_eWiseMult_Semiring // w = accum (w, u.*v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Semiring semiring, // defines '.*' for t=u.*v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_eWiseMult_Monoid // w = accum (w, u.*v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Monoid monoid, // defines '.*' for t=u.*v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_eWiseMult_BinaryOp // w = accum (w, u.*v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp mult, // defines '.*' for t=u.*v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Matrix_eWiseMult_Semiring // C = accum (C, A.*B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Semiring semiring, // defines '.*' for T=A.*B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_Matrix_eWiseMult_Monoid // C = accum (C, A.*B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Monoid monoid, // defines '.*' for T=A.*B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_Matrix_eWiseMult_BinaryOp // C = accum (C, A.*B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp mult, // defines '.*' for T=A.*B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +// All 6 of the above type-specific functions are captured in a single +// type-generic function, GrB_eWiseMult: + +#if GxB_STDC_VERSION >= 201112L +#define GrB_eWiseMult(C,Mask,accum,op,A,B,desc) \ + _Generic \ + ( \ + (C), \ + GrB_Matrix : \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Matrix_eWiseMult_Semiring , \ + GrB_Monoid : GrB_Matrix_eWiseMult_Monoid , \ + GrB_BinaryOp : GrB_Matrix_eWiseMult_BinaryOp \ + ), \ + GrB_Vector : \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Vector_eWiseMult_Semiring , \ + GrB_Monoid : GrB_Vector_eWiseMult_Monoid , \ + GrB_BinaryOp : GrB_Vector_eWiseMult_BinaryOp \ + ) \ + ) \ + (C, Mask, accum, op, A, B, desc) +#endif + +//============================================================================== +// GrB_eWiseAdd: element-wise matrix and vector operations, set union +//============================================================================== + +// GrB_eWiseAdd computes C = accum (C, A+B), where pairs of elements in +// two matrices (or two vectors) are pairwise "added". + +GrB_Info GrB_Vector_eWiseAdd_Semiring // w = accum (w, u+v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Semiring semiring, // defines '+' for t=u+v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_eWiseAdd_Monoid // w = accum (w, u+v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Monoid monoid, // defines '+' for t=u+v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_eWiseAdd_BinaryOp // w = accum (w, u+v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp add, // defines '+' for t=u+v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Matrix_eWiseAdd_Semiring // C = accum (C, A+B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Semiring semiring, // defines '+' for T=A+B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_Matrix_eWiseAdd_Monoid // C = accum (C, A+B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Monoid monoid, // defines '+' for T=A+B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_Matrix_eWiseAdd_BinaryOp // C = accum (C, A+B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp add, // defines '+' for T=A+B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +#if GxB_STDC_VERSION >= 201112L +#define GrB_eWiseAdd(C,Mask,accum,op,A,B,desc) \ + _Generic \ + ( \ + (C), \ + GrB_Matrix : \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Matrix_eWiseAdd_Semiring , \ + GrB_Monoid : GrB_Matrix_eWiseAdd_Monoid , \ + GrB_BinaryOp : GrB_Matrix_eWiseAdd_BinaryOp \ + ), \ + GrB_Vector : \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Vector_eWiseAdd_Semiring , \ + GrB_Monoid : GrB_Vector_eWiseAdd_Monoid , \ + GrB_BinaryOp : GrB_Vector_eWiseAdd_BinaryOp \ + ) \ + ) \ + (C, Mask, accum, op, A, B, desc) +#endif + +//============================================================================== +// GxB_eWiseUnion: a variant of GrB_eWiseAdd +//============================================================================== + +// GxB_eWiseUnion is a variant of eWiseAdd. The methods create a result with +// the same sparsity structure. They differ when an entry is present in A but +// not B, or in B but not A. + +// eWiseAdd does the following, for a matrix, where "+" is the add binary op: + +// if A(i,j) and B(i,j) are both present: +// C(i,j) = A(i,j) + B(i,j) +// else if A(i,j) is present but not B(i,j) +// C(i,j) = A(i,j) +// else if B(i,j) is present but not A(i,j) +// C(i,j) = B(i,j) + +// by contrast, eWiseUnion always applies the operator: + +// if A(i,j) and B(i,j) are both present: +// C(i,j) = A(i,j) + B(i,j) +// else if A(i,j) is present but not B(i,j) +// C(i,j) = A(i,j) + beta +// else if B(i,j) is present but not A(i,j) +// C(i,j) = alpha + B(i,j) + +GrB_Info GxB_Vector_eWiseUnion // w = accum (w, u+v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp add, // defines '+' for t=u+v + const GrB_Vector u, // first input: vector u + const GrB_Scalar alpha, + const GrB_Vector v, // second input: vector v + const GrB_Scalar beta, + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GxB_Matrix_eWiseUnion // C = accum (C, A+B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp add, // defines '+' for T=A+B + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar alpha, + const GrB_Matrix B, // second input: matrix B + const GrB_Scalar beta, + const GrB_Descriptor desc // descriptor for C, M, A, and B +) ; + +#if GxB_STDC_VERSION >= 201112L +#define GxB_eWiseUnion(C,Mask,accum,op,A,alpha,B,beta,desc) \ + _Generic \ + ( \ + (C), \ + GrB_Matrix : GxB_Matrix_eWiseUnion , \ + GrB_Vector : GxB_Vector_eWiseUnion \ + ) \ + (C, Mask, accum, op, A, alpha, B, beta, desc) +#endif + +//============================================================================== +// GrB_extract: extract a submatrix or subvector +//============================================================================== + +GrB_Info GrB_Vector_extract // w = accum (w, u(I)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Vector u, // first input: vector u + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Matrix_extract // C = accum (C, A(I,J)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Matrix A, // first input: matrix A + const GrB_Index *Ilist, // row indices GrB_Index ni, // number of row indices const GrB_Index *J, // column indices GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + const GrB_Descriptor desc // descriptor for C, Mask, and A +) ; + +GrB_Info GrB_Col_extract // w = accum (w, A(I,j)) +( + GrB_Vector w, // input/output matrix for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Matrix A, // first input: matrix A + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + GrB_Index j, // column index + const GrB_Descriptor desc // descriptor for w, mask, and A ) ; -GrB_Info GxB_Matrix_assign_FC32 // C(I,J) = accum (C(I,J),x) +// GrB_extract is a generic interface to the following functions: + +// GrB_Vector_extract (w,mask,acc,u,I,ni,d) // w = acc (w, u(I)) +// GrB_Col_extract (w,mask,acc,A,I,ni,j,d) // w = acc (w, A(I,j)) +// GrB_Matrix_extract (C,Mask,acc,A,I,ni,J,nj,d) // C = acc (C, A(I,J)) + +#if GxB_STDC_VERSION >= 201112L +#define GrB_extract(arg1,Mask,accum,arg4,...) \ + _Generic \ + ( \ + (arg1), \ + GrB_Vector : \ + _Generic \ + ( \ + (arg4), \ + GrB_Vector : GrB_Vector_extract , \ + GrB_Matrix : GrB_Col_extract \ + ), \ + GrB_Matrix : GrB_Matrix_extract \ + ) \ + (arg1, Mask, accum, arg4, __VA_ARGS__) +#endif + +//============================================================================== +// GxB_subassign: matrix and vector subassign: C(I,J) = accum (C(I,J), A) +//============================================================================== + +// Assign entries in a matrix or vector; C(I,J) = A. + +// Each GxB_subassign function is very similar to its corresponding GrB_assign +// function in the spec, but they differ in two ways: (1) the mask in +// GxB_subassign has the same size as w(I) for vectors and C(I,J) for matrices, +// and (2) they differ in the GrB_REPLACE option. See the user guide for +// details. + +// In GraphBLAS notation, the two methods can be described as follows: + +// matrix and vector subassign: C(I,J) = accum (C(I,J), A) +// matrix and vector assign: C(I,J) = accum (C(I,J), A) + +// --- assign ------------------------------------------------------------------ +// +// GrB_Matrix_assign C(I,J) += A M same size as matrix C. +// A is |I|-by-|J| +// +// GrB_Vector_assign w(I) += u m same size as column vector w. +// u is |I|-by-1 +// +// GrB_Row_assign C(i,J) += u' m is a column vector the same +// size as a row of C. +// u is |J|-by-1, i is a scalar. +// +// GrB_Col_assign C(I,j) += u m is a column vector the same +// size as a column of C. +// u is |I|-by-1, j is a scalar. +// +// --- subassign --------------------------------------------------------------- +// +// GxB_Matrix_subassign C(I,J) += A M same size as matrix A. +// A is |I|-by-|J| +// +// GxB_Vector_subassign w(I) += u m same size as column vector u. +// u is |I|-by-1 +// +// GxB_Row_subassign C(i,J) += u' m same size as column vector u. +// u is |J|-by-1, i is a scalar. +// +// GxB_Col_subassign C(I,j) += u m same size as column vector u. +// u is |I|-by-1, j is a scalar. + +GrB_Info GxB_Vector_subassign // w(I) = accum (w(I),u) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GxB_FC32_t x, // scalar to assign to C(I,J) + GrB_Vector w, // input/output matrix for results + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w(I),t) + const GrB_Vector u, // first input: vector u const GrB_Index *Ilist, // row indices GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GxB_Matrix_assign_FC64 // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Matrix_subassign // C(I,J) = accum (C(I,J),A) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GxB_FC64_t x, // scalar to assign to C(I,J) + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),T) + const GrB_Matrix A, // first input: matrix A const GrB_Index *Ilist, // row indices GrB_Index ni, // number of row indices const GrB_Index *J, // column indices GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + const GrB_Descriptor desc // descriptor for C(I,J), Mask, and A ) ; -GrB_Info GrB_Matrix_assign_UDT // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Col_subassign // C(I,j) = accum (C(I,j),u) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - void *x, // scalar to assign to C(I,J) + const GrB_Vector mask, // optional mask for C(I,j), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(C(I,j),t) + const GrB_Vector u, // input vector const GrB_Index *Ilist, // row indices GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + GrB_Index j, // column index + const GrB_Descriptor desc // descriptor for C(I,j) and mask ) ; -GrB_Info GrB_Matrix_assign_Scalar // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Row_subassign // C(i,J) = accum (C(i,J),u') ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GrB_Scalar x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices + const GrB_Vector mask, // optional mask for C(i,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(C(i,J),t) + const GrB_Vector u, // input vector + GrB_Index i, // row index const GrB_Index *J, // column indices GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + const GrB_Descriptor desc // descriptor for C(i,J) and mask ) ; //------------------------------------------------------------------------------ -// GrB_assign: generic submatrix/subvector assignment +// GxB_Vector_subassign_[SCALAR]: scalar expansion assignment to subvector //------------------------------------------------------------------------------ -// GrB_assign is a generic function that provides access to all specific -// GrB_*_assign* functions: - -// GrB_Vector_assign_T (w,m,acc,x,I,ni,d) // w(I) = acc(w(I),x) -// GrB_Vector_assign (w,m,acc,u,I,ni,d) // w(I) = acc(w(I),u) -// GrB_Matrix_assign_T (C,M,acc,x,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),x) -// GrB_Col_assign (C,m,acc,u,I,ni,j,d) // C(I,j) = acc(C(I,j),u) -// GrB_Row_assign (C,m,acc,u,i,J,nj,d) // C(i,J) = acc(C(i,J),u') -// GrB_Matrix_assign (C,M,acc,A,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),A) - -#if GxB_STDC_VERSION >= 201112L -#define GrB_assign(arg1,Mask,accum,arg4,arg5,...) \ - _Generic \ - ( \ - (arg1), \ - GrB_Vector : \ - _Generic \ - ( \ - (arg4), \ - GB_CASES (GrB, Vector_assign) , \ - GrB_Scalar : GrB_Vector_assign_Scalar , \ - default: GrB_Vector_assign \ - ), \ - default: \ - _Generic \ - ( \ - (arg4), \ - GB_CASES (GrB, Matrix_assign) , \ - GrB_Scalar : GrB_Matrix_assign_Scalar , \ - GrB_Vector : \ - _Generic \ - ( \ - (arg5), \ - const GrB_Index *: GrB_Col_assign , \ - GrB_Index *: GrB_Col_assign , \ - default: GrB_Row_assign \ - ), \ - default: GrB_Matrix_assign \ - ) \ - ) \ - (arg1, Mask, accum, arg4, arg5, __VA_ARGS__) -#endif - -//============================================================================== -// GrB_apply: matrix and vector apply -//============================================================================== - -// Apply a unary, index_unary, or binary operator to entries in a matrix or -// vector, C = accum (C, op (A)). - -GrB_Info GrB_Vector_apply // w = accum (w, op(u)) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_UnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const GrB_Descriptor desc // descriptor for w and mask -) ; - -GrB_Info GrB_Matrix_apply // C = accum (C, op(A)) or op(A') -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_UnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -//------------------------------------------- -// vector apply: binaryop variants (bind 1st) -//------------------------------------------- - -// Apply a binary operator to the entries in a vector, binding the first -// input to a scalar x, w = accum (w, op (x,u)). +// Assigns a single scalar to a subvector, w(I) = accum(w(I),x). The +// scalar x is implicitly expanded into a vector u of size ni-by-1, with each +// entry in u equal to x, and then w(I) = accum(w(I),u) is done. -GrB_Info GrB_Vector_apply_BinaryOp1st_Scalar // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_BOOL // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Scalar x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w(I),x) + bool x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -// historical: identical to GxB_Vector_apply_BinaryOp1st -GrB_Info GxB_Vector_apply_BinaryOp1st // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_INT8 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Scalar x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int8_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_BOOL // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UINT8 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - bool x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint8_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_INT8 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_INT16 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - int8_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int16_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_INT16 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UINT16 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - int16_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint16_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_INT32 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_INT32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - int32_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_INT64 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UINT32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - int64_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UINT8 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_INT64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - uint8_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UINT16 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UINT64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - uint16_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UINT32 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_FP32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - uint32_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + float x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UINT64 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_FP64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - uint64_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + double x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_FP32 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_FC32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - float x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GxB_FC32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_FP64 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_FC64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - double x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GxB_FC64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GxB_Vector_apply_BinaryOp1st_FC32 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UDT // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - GxB_FC32_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + void *x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GxB_Vector_apply_BinaryOp1st_FC64 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_Scalar // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - GxB_FC64_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GrB_Scalar x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UDT // w = accum (w, op(x,u)) +//------------------------------------------------------------------------------ +// GxB_Matrix_subassign_[SCALAR]: scalar expansion assignment to submatrix +//------------------------------------------------------------------------------ + +// Assigns a single scalar to a submatrix, C(I,J) = accum(C(I,J),x). The +// scalar x is implicitly expanded into a matrix A of size ni-by-nj, with each +// entry in A equal to x, and then C(I,J) = accum(C(I,J),A) is done. + +GrB_Info GxB_Matrix_subassign_BOOL // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const void *x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + bool x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -//------------------------------------------- -// vector apply: binaryop variants (bind 2nd) -//------------------------------------------- +GrB_Info GxB_Matrix_subassign_INT8 // C(I,J) = accum (C(I,J),x) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int8_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask +) ; -// Apply a binary operator to the entries in a vector, binding the second -// input to a scalar y, w = accum (w, op (u,y)). +GrB_Info GxB_Matrix_subassign_UINT8 // C(I,J) = accum (C(I,J),x) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint8_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask +) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_Scalar // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_INT16 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int16_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -// historical: identical to GrB_Vector_apply_BinaryOp2nd_Scalar -GrB_Info GxB_Vector_apply_BinaryOp2nd // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_UINT16 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint16_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_BOOL // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_INT32 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - bool y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_INT8 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_UINT32 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_INT16 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_INT64 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_INT32 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_UINT64 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_INT64 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_FP32 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + float x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT8 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_FP64 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + double x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT16 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_FC32 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GxB_FC32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT32 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_FC64 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GxB_FC64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT64 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_UDT // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + void *x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_FP32 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_Scalar // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - float y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GrB_Scalar x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_FP64 // w = accum (w, op(u,y)) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - double y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask -) ; +//------------------------------------------------------------------------------ +// GxB_subassign: generic submatrix/subvector assignment +//------------------------------------------------------------------------------ -GrB_Info GxB_Vector_apply_BinaryOp2nd_FC32 // w = accum (w, op(u,y)) +// GxB_subassign is a generic function that provides access to all specific +// GxB_*_subassign* functions: + +// GxB_Vector_subassign (w,m,acc,u,I,ni,d) // w(I) = acc(w(I),u) +// GxB_Matrix_subassign (C,M,acc,A,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),A) +// GxB_Col_subassign (C,m,acc,u,I,ni,j,d) // C(I,j) = acc(C(I,j),u) +// GxB_Row_subassign (C,m,acc,u,i,J,nj,d) // C(i,J) = acc(C(i,J),u') +// GxB_Vector_subassign_T (w,m,acc,x,I,ni,d) // w(I) = acc(w(I),x) +// GxB_Matrix_subassign_T (C,M,acc,x,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),x) + +#if GxB_STDC_VERSION >= 201112L +#define GxB_subassign(arg1,Mask,accum,arg4,arg5,...) \ + _Generic \ + ( \ + (arg1), \ + GrB_Vector : \ + _Generic \ + ( \ + (arg4), \ + GB_CASES (GxB, Vector_subassign) , \ + GrB_Scalar : GxB_Vector_subassign_Scalar, \ + default: GxB_Vector_subassign \ + ), \ + default: \ + _Generic \ + ( \ + (arg4), \ + GB_CASES (GxB, Matrix_subassign) , \ + GrB_Scalar : GxB_Matrix_subassign_Scalar, \ + GrB_Vector : \ + _Generic \ + ( \ + (arg5), \ + const GrB_Index *: GxB_Col_subassign , \ + GrB_Index *: GxB_Col_subassign , \ + default: GxB_Row_subassign \ + ), \ + default: GxB_Matrix_subassign \ + ) \ + ) \ + (arg1, Mask, accum, arg4, arg5, __VA_ARGS__) +#endif + +//============================================================================== +// GrB_assign: matrix and vector assign: C(I,J) = accum (C(I,J), A) +//============================================================================== + +// Assign entries in a matrix or vector; C(I,J) = A. +// Each of these can be used with their generic name, GrB_assign. + +GrB_Info GrB_Vector_assign // w(I) = accum (w(I),u) ( - GrB_Vector w, // input/output vector for results + GrB_Vector w, // input/output matrix for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries + const GrB_BinaryOp accum, // optional accum for z=accum(w(I),t) const GrB_Vector u, // first input: vector u - GxB_FC32_t y, // second input: scalar y + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_apply_BinaryOp2nd_FC64 // w = accum (w, op(u,y)) +GrB_Info GrB_Matrix_assign // C(I,J) = accum (C(I,J),A) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - GxB_FC64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),T) + const GrB_Matrix A, // first input: matrix A + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C, Mask, and A ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UDT // w = accum (w, op(u,y)) +GrB_Info GrB_Col_assign // C(I,j) = accum (C(I,j),u) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const void *y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Vector mask, // optional mask for C(:,j), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(C(I,j),t) + const GrB_Vector u, // input vector + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + GrB_Index j, // column index + const GrB_Descriptor desc // descriptor for C(:,j) and mask ) ; -//------------------------------------------- -// vector apply: IndexUnaryOp variants -//------------------------------------------- +GrB_Info GrB_Row_assign // C(i,J) = accum (C(i,J),u') +( + GrB_Matrix C, // input/output matrix for results + const GrB_Vector mask, // optional mask for C(i,:), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(C(i,J),t) + const GrB_Vector u, // input vector + GrB_Index i, // row index + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(i,:) and mask +) ; -// Apply a GrB_IndexUnaryOp to the entries in a vector +//------------------------------------------------------------------------------ +// GrB_Vector_assign_[SCALAR]: scalar expansion assignment to subvector +//------------------------------------------------------------------------------ -GrB_Info GrB_Vector_apply_IndexOp_Scalar // w = accum (w, op(u)) +// Assigns a single scalar to a subvector, w(I) = accum(w(I),x). The +// scalar x is implicitly expanded into a vector u of size ni-by-1, with each +// entry in u equal to x, and then w(I) = accum(w(I),u) is done. + +GrB_Info GrB_Vector_assign_BOOL // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const GrB_Scalar y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for z=accum(w(I),x) + bool x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_BOOL // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_INT8 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - bool y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int8_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_INT8 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UINT8 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int8_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint8_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_INT16 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_INT16 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int16_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int16_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_INT32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UINT16 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int32_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint16_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_INT64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_INT32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int64_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UINT8 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UINT32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint8_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UINT16 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_INT64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint16_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UINT32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UINT64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint32_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UINT64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_FP32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint64_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + float x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_FP32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_FP64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - float y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + double x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_FP64 // w = accum (w, op(u)) +GrB_Info GxB_Vector_assign_FC32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - double y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GxB_FC32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_apply_IndexOp_FC32 // w = accum (w, op(u)) +GrB_Info GxB_Vector_assign_FC64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - GxB_FC32_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GxB_FC64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_apply_IndexOp_FC64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UDT // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - GxB_FC64_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + void *x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UDT // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_Scalar // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const void *y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GrB_Scalar x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -//------------------------------------------- -// matrix apply: binaryop variants (bind 1st) -//------------------------------------------- +//------------------------------------------------------------------------------ +// GrB_Matrix_assign_[SCALAR]: scalar expansion assignment to submatrix +//------------------------------------------------------------------------------ -// Apply a binary operator to the entries in a matrix, binding the first input -// to a scalar x, C = accum (C, op (x,A)), or op(x,A'). +// Assigns a single scalar to a submatrix, C(I,J) = accum(C(I,J),x). The +// scalar x is implicitly expanded into a matrix A of size ni-by-nj, with each +// entry in A equal to x, and then C(I,J) = accum(C(I,J),A) is done. -GrB_Info GrB_Matrix_apply_BinaryOp1st_Scalar // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_BOOL // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Scalar x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + bool x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -// historical: identical to GrB_Matrix_apply_BinaryOp1st_Scalar -GrB_Info GxB_Matrix_apply_BinaryOp1st // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_INT8 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Scalar x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int8_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_BOOL // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UINT8 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - bool x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint8_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_INT8 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_INT16 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - int8_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int16_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_INT16 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UINT16 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - int16_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint16_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_INT32 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_INT32 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - int32_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_INT64 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UINT32 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - int64_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT8 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_INT64 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - uint8_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT16 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UINT64 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - uint16_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT32 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_FP32 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - uint32_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + float x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT64 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_FP64 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - uint64_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + double x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_FP32 // C=accum(C,op(x,A)) +GrB_Info GxB_Matrix_assign_FC32 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - float x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GxB_FC32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_FP64 // C=accum(C,op(x,A)) +GrB_Info GxB_Matrix_assign_FC64 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - double x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GxB_FC64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GxB_Matrix_apply_BinaryOp1st_FC32 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UDT // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - GxB_FC32_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + void *x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GxB_Matrix_apply_BinaryOp1st_FC64 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_Scalar // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - GxB_FC64_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GrB_Scalar x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UDT // C=accum(C,op(x,A)) +//------------------------------------------------------------------------------ +// GrB_assign: generic submatrix/subvector assignment +//------------------------------------------------------------------------------ + +// GrB_assign is a generic function that provides access to all specific +// GrB_*_assign* functions: + +// GrB_Vector_assign_T (w,m,acc,x,I,ni,d) // w(I) = acc(w(I),x) +// GrB_Vector_assign (w,m,acc,u,I,ni,d) // w(I) = acc(w(I),u) +// GrB_Matrix_assign_T (C,M,acc,x,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),x) +// GrB_Col_assign (C,m,acc,u,I,ni,j,d) // C(I,j) = acc(C(I,j),u) +// GrB_Row_assign (C,m,acc,u,i,J,nj,d) // C(i,J) = acc(C(i,J),u') +// GrB_Matrix_assign (C,M,acc,A,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),A) + +#if GxB_STDC_VERSION >= 201112L +#define GrB_assign(arg1,Mask,accum,arg4,arg5,...) \ + _Generic \ + ( \ + (arg1), \ + GrB_Vector : \ + _Generic \ + ( \ + (arg4), \ + GB_CASES (GrB, Vector_assign) , \ + GrB_Scalar : GrB_Vector_assign_Scalar , \ + default: GrB_Vector_assign \ + ), \ + default: \ + _Generic \ + ( \ + (arg4), \ + GB_CASES (GrB, Matrix_assign) , \ + GrB_Scalar : GrB_Matrix_assign_Scalar , \ + GrB_Vector : \ + _Generic \ + ( \ + (arg5), \ + const GrB_Index *: GrB_Col_assign , \ + GrB_Index *: GrB_Col_assign , \ + default: GrB_Row_assign \ + ), \ + default: GrB_Matrix_assign \ + ) \ + ) \ + (arg1, Mask, accum, arg4, arg5, __VA_ARGS__) +#endif + +//============================================================================== +// GrB_apply: matrix and vector apply +//============================================================================== + +// Apply a unary, index_unary, or binary operator to entries in a matrix or +// vector, C = accum (C, op (A)). + +GrB_Info GrB_Vector_apply // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_UnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Matrix_apply // C = accum (C, op(A)) or op(A') ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - const void *x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A + const GrB_UnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; //------------------------------------------- -// matrix apply: binaryop variants (bind 2nd) +// vector apply: binaryop variants (bind 1st) //------------------------------------------- -// Apply a binary operator to the entries in a matrix, binding the second input -// to a scalar y, C = accum (C, op (A,y)), or op(A',y). +// Apply a binary operator to the entries in a vector, binding the first +// input to a scalar x, w = accum (w, op (x,u)). -GrB_Info GrB_Matrix_apply_BinaryOp2nd_Scalar // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_Scalar // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Scalar x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -// historical: identical to GrB_Matrix_apply_BinaryOp2nd_Scalar -GrB_Info GxB_Matrix_apply_BinaryOp2nd // C=accum(C,op(A,y)) +// historical: identical to GrB_Vector_apply_BinaryOp1st_Scalar +GrB_Info GxB_Vector_apply_BinaryOp1st // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Scalar x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_BOOL // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_BOOL // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - bool y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + bool x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT8 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_INT8 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + int8_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT16 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_INT16 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + int16_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT32 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_INT32 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + int32_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT64 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_INT64 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + int64_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT8 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UINT8 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + uint8_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT16 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UINT16 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + uint16_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT32 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UINT32 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + uint32_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT64 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UINT64 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + uint64_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP32 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_FP32 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - float y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + float x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP64 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_FP64 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - double y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + double x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC32 // C=accum(C,op(A,y)) +GrB_Info GxB_Vector_apply_BinaryOp1st_FC32 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - GxB_FC32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + GxB_FC32_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC64 // C=accum(C,op(A,y)) +GrB_Info GxB_Vector_apply_BinaryOp1st_FC64 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - GxB_FC64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + GxB_FC64_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UDT // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UDT // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const void *y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const void *x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; //------------------------------------------- -// matrix apply: IndexUnaryOp variants +// vector apply: binaryop variants (bind 2nd) //------------------------------------------- -// Apply a GrB_IndexUnaryOp to the entries in a matrix. +// Apply a binary operator to the entries in a vector, binding the second +// input to a scalar y, w = accum (w, op (u,y)). -GrB_Info GrB_Matrix_apply_IndexOp_Scalar // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_Scalar // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_BOOL // C=accum(C,op(A)) +// historical: identical to GrB_Vector_apply_BinaryOp2nd_Scalar +GrB_Info GxB_Vector_apply_BinaryOp2nd // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_apply_BinaryOp2nd_BOOL // w = accum (w, op(u,y)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u bool y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_INT8 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_INT8 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u int8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_INT16 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_INT16 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u int16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_INT32 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_INT32 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u int32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_INT64 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_INT64 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u int64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UINT8 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT8 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u uint8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UINT16 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT16 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u uint16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UINT32 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT32 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u uint32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UINT64 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT64 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u uint64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_FP32 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_FP32 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u float y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_FP64 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_FP64 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u double y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Matrix_apply_IndexOp_FC32 // C=accum(C,op(A)) +GrB_Info GxB_Vector_apply_BinaryOp2nd_FC32 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u GxB_FC32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Matrix_apply_IndexOp_FC64 // C=accum(C,op(A)) +GrB_Info GxB_Vector_apply_BinaryOp2nd_FC64 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u GxB_FC64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UDT // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UDT // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u const void *y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -//------------------------------------------------------------------------------ -// GrB_apply: generic matrix/vector apply -//------------------------------------------------------------------------------ - -// GrB_apply is a generic function for applying a unary operator to a matrix -// or vector and provides access to these functions: - -// GrB_Vector_apply (w,mask,acc,op,u,d) // w = accum (w, op(u)) -// GrB_Matrix_apply (C,Mask,acc,op,A,d) // C = accum (C, op(A)) - -// GrB_Vector_apply (w,m,acc,unop ,u,d) -// GrB_Vector_apply_BinaryOp1st_TYPE (w,m,acc,binop,x,u,d) -// GrB_Vector_apply_BinaryOp2nd_TYPE (w,m,acc,binop,u,y,d) -// GrB_Vector_apply_IndexOp_TYPE (w,m,acc,idxop,u,y,d) - -// GrB_Matrix_apply (C,M,acc,unop ,A,d) -// GrB_Matrix_apply_BinaryOp1st_TYPE (C,M,acc,binop,x,A,d) -// GrB_Matrix_apply_BinaryOp2nd_TYPE (C,M,acc,binop,A,y,d) -// GrB_Matrix_apply_IndexOp_TYPE (C,M,acc,idxop,A,y,d) - -#if GxB_STDC_VERSION >= 201112L - -#define GB_BIND(kind,x,y,...) \ - _Generic \ - ( \ - (x), \ - GrB_Scalar: GB_CONCAT ( GrB,_,kind,_apply_BinaryOp1st_Scalar), \ - GB_CASES (GrB, GB_CONCAT ( kind, _apply_BinaryOp1st,, )) , \ - default: \ - _Generic \ - ( \ - (y), \ - GB_CASES (GrB, GB_CONCAT ( kind , _apply_BinaryOp2nd,, )), \ - default: GB_CONCAT ( GrB,_,kind,_apply_BinaryOp2nd_Scalar) \ - ) \ - ) - -#define GB_IDXOP(kind,A,y,...) \ - _Generic \ - ( \ - (y), \ - GB_CASES (GrB, GB_CONCAT ( kind, _apply_IndexOp,, )), \ - default: GB_CONCAT ( GrB, _, kind, _apply_IndexOp_Scalar) \ - ) - -#define GrB_apply(C,Mask,accum,op,...) \ - _Generic \ - ( \ - (C), \ - GrB_Vector : \ - _Generic \ - ( \ - (op), \ - GrB_UnaryOp : GrB_Vector_apply , \ - GrB_BinaryOp : GB_BIND (Vector, __VA_ARGS__), \ - GrB_IndexUnaryOp : GB_IDXOP (Vector, __VA_ARGS__) \ - ), \ - GrB_Matrix : \ - _Generic \ - ( \ - (op), \ - GrB_UnaryOp : GrB_Matrix_apply , \ - GrB_BinaryOp : GB_BIND (Matrix, __VA_ARGS__), \ - GrB_IndexUnaryOp : GB_IDXOP (Matrix, __VA_ARGS__) \ - ) \ - ) \ - (C, Mask, accum, op, __VA_ARGS__) -#endif - -//============================================================================== -// GrB_select: matrix and vector selection using an IndexUnaryOp -//============================================================================== - //------------------------------------------- -// vector select using an IndexUnaryOp +// vector apply: IndexUnaryOp variants //------------------------------------------- -GrB_Info GrB_Vector_select_Scalar // w = accum (w, op(u)) +// Apply a GrB_IndexUnaryOp to the entries in a vector + +GrB_Info GrB_Vector_apply_IndexOp_Scalar // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7229,7 +7513,7 @@ GrB_Info GrB_Vector_select_Scalar // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_BOOL // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_BOOL // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7240,7 +7524,7 @@ GrB_Info GrB_Vector_select_BOOL // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_INT8 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_INT8 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7251,7 +7535,7 @@ GrB_Info GrB_Vector_select_INT8 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_INT16 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_INT16 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7262,7 +7546,7 @@ GrB_Info GrB_Vector_select_INT16 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_INT32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_INT32 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7273,7 +7557,7 @@ GrB_Info GrB_Vector_select_INT32 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_INT64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_INT64 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7284,7 +7568,7 @@ GrB_Info GrB_Vector_select_INT64 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UINT8 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UINT8 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7295,7 +7579,7 @@ GrB_Info GrB_Vector_select_UINT8 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UINT16 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UINT16 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7306,7 +7590,7 @@ GrB_Info GrB_Vector_select_UINT16 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UINT32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UINT32 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7317,7 +7601,7 @@ GrB_Info GrB_Vector_select_UINT32 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UINT64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UINT64 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7328,7 +7612,7 @@ GrB_Info GrB_Vector_select_UINT64 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_FP32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_FP32 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7339,7 +7623,7 @@ GrB_Info GrB_Vector_select_FP32 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_FP64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_FP64 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7350,7 +7634,7 @@ GrB_Info GrB_Vector_select_FP64 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_select_FC32 // w = accum (w, op(u)) +GrB_Info GxB_Vector_apply_IndexOp_FC32 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7361,7 +7645,7 @@ GrB_Info GxB_Vector_select_FC32 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_select_FC64 // w = accum (w, op(u)) +GrB_Info GxB_Vector_apply_IndexOp_FC64 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7372,7 +7656,7 @@ GrB_Info GxB_Vector_select_FC64 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UDT // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UDT // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7384,1621 +7668,1460 @@ GrB_Info GrB_Vector_select_UDT // w = accum (w, op(u)) ) ; //------------------------------------------- -// matrix select using an IndexUnaryOp +// matrix apply: binaryop variants (bind 1st) //------------------------------------------- -GrB_Info GrB_Matrix_select_Scalar // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_BOOL // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - bool y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_INT8 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_INT16 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_INT32 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_INT64 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_UINT8 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_UINT16 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_UINT32 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_UINT64 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; +// Apply a binary operator to the entries in a matrix, binding the first input +// to a scalar x, C = accum (C, op (x,A)), or op(x,A'). -GrB_Info GrB_Matrix_select_FP32 // C=accum(C,op(A)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_Scalar // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - float y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Scalar x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_select_FP64 // C=accum(C,op(A)) +// historical: identical to GrB_Matrix_apply_BinaryOp1st_Scalar +GrB_Info GxB_Matrix_apply_BinaryOp1st // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - double y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Scalar x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Matrix_select_FC32 // C=accum(C,op(A)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_BOOL // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - GxB_FC32_t y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + bool x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Matrix_select_FC64 // C=accum(C,op(A)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_INT8 // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - GxB_FC64_t y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + int8_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_select_UDT // C=accum(C,op(A)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_INT16 // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const void *y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + int16_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -// GrB_select is a generic method that applies an IndexUnaryOp to -// a matrix or vector, using any type of the scalar y. - -// GrB_Vector_select_TYPE (w,m,acc,idxop,u,y,d) -// GrB_Matrix_select_TYPE (C,M,acc,idxop,A,y,d) - -#if GxB_STDC_VERSION >= 201112L -#define GrB_select(C,Mask,accum,op,x,y,d) \ - _Generic \ - ( \ - (C), \ - GrB_Vector : \ - _Generic \ - ( \ - (y), \ - GB_CASES (GrB, Vector_select), \ - default: GrB_Vector_select_Scalar \ - ), \ - GrB_Matrix : \ - _Generic \ - ( \ - (y), \ - GB_CASES (GrB, Matrix_select), \ - default: GrB_Matrix_select_Scalar \ - ) \ - ) \ - (C, Mask, accum, op, x, y, d) -#endif - -//============================================================================== -// GxB_select: matrix and vector selection (DEPRECATED: use GrB_select instead) -//============================================================================== - -GrB_Info GxB_Vector_select (GrB_Vector w, const GrB_Vector mask, -const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Vector u, -const GrB_Scalar Thunk, const GrB_Descriptor desc) ; -GrB_Info GxB_Matrix_select (GrB_Matrix C, const GrB_Matrix Mask, -const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Matrix A, -const GrB_Scalar Thunk, const GrB_Descriptor desc) ; -#if GxB_STDC_VERSION >= 201112L -#define GxB_select(C,Mask,accum,op,A,Thunk,desc) _Generic \ -((C), GrB_Vector:GxB_Vector_select , GrB_Matrix:GxB_Matrix_select ) \ -(C, Mask, accum, op, A, Thunk, desc) -#endif - -//============================================================================== -// GrB_reduce: matrix and vector reduction -//============================================================================== - -// Reduce the entries in a matrix to a vector, a column vector t such that -// t(i) = sum (A (i,:)), and where "sum" is a commutative and associative -// monoid with an identity value. A can be transposed, which reduces down the -// columns instead of the rows. - -// For GrB_Matrix_reduce_BinaryOp, the GrB_BinaryOp op must correspond to a -// known built-in monoid: -// -// operator data-types (all built-in) -// ---------------------- --------------------------- -// MIN, MAX INT*, UINT*, FP* -// TIMES, PLUS INT*, UINT*, FP*, FC* -// ANY INT*, UINT*, FP*, FC*, BOOL -// LOR, LAND, LXOR, EQ BOOL -// BOR, BAND, BXOR, BXNOR UINT* - -GrB_Info GrB_Matrix_reduce_Monoid // w = accum (w,reduce(A)) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Monoid monoid, // reduce operator for t=reduce(A) - const GrB_Matrix A, // first input: matrix A - const GrB_Descriptor desc // descriptor for w, mask, and A -) ; - -GrB_Info GrB_Matrix_reduce_BinaryOp // w = accum (w,reduce(A)) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // reduce operator for t=reduce(A) - const GrB_Matrix A, // first input: matrix A - const GrB_Descriptor desc // descriptor for w, mask, and A -) ; - -//------------------------------------------------------------------------------ -// reduce a vector to a scalar -//------------------------------------------------------------------------------ - -// Reduce entries in a vector to a scalar, c = accum (c, reduce_to_scalar(u)) - -GrB_Info GrB_Vector_reduce_BOOL // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_INT32 // C=accum(C,op(x,A)) ( - bool *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + int32_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_INT8 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_INT64 // C=accum(C,op(x,A)) ( - int8_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + int64_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UINT8 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT8 // C=accum(C,op(x,A)) ( - uint8_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + uint8_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_INT16 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT16 // C=accum(C,op(x,A)) ( - int16_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + uint16_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UINT16 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT32 // C=accum(C,op(x,A)) ( - uint16_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + uint32_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_INT32 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT64 // C=accum(C,op(x,A)) ( - int32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + uint64_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UINT32 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_FP32 // C=accum(C,op(x,A)) ( - uint32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + float x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_INT64 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_FP64 // C=accum(C,op(x,A)) ( - int64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + double x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UINT64 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GxB_Matrix_apply_BinaryOp1st_FC32 // C=accum(C,op(x,A)) ( - uint64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + GxB_FC32_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_FP32 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GxB_Matrix_apply_BinaryOp1st_FC64 // C=accum(C,op(x,A)) ( - float *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + GxB_FC64_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_FP64 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UDT // C=accum(C,op(x,A)) ( - double *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const void *x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Vector_reduce_FC32 // c = accum (c, reduce_to_scalar (u)) +//------------------------------------------- +// matrix apply: binaryop variants (bind 2nd) +//------------------------------------------- + +// Apply a binary operator to the entries in a matrix, binding the second input +// to a scalar y, C = accum (C, op (A,y)), or op(A',y). + +GrB_Info GrB_Matrix_apply_BinaryOp2nd_Scalar // C=accum(C,op(A,y)) ( - GxB_FC32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Vector_reduce_FC64 // c = accum (c, reduce_to_scalar (u)) +// historical: identical to GrB_Matrix_apply_BinaryOp2nd_Scalar +GrB_Info GxB_Matrix_apply_BinaryOp2nd // C=accum(C,op(A,y)) ( - GxB_FC64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UDT // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_BOOL // C=accum(C,op(A,y)) ( - void *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + bool y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_Monoid_Scalar // c = accum(c,reduce_to_scalar(u)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT8 // C=accum(C,op(A,y)) ( - GrB_Scalar c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_BinaryOp_Scalar +GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT16 // C=accum(C,op(A,y)) ( - GrB_Scalar c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_BinaryOp op, // binary op to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -//------------------------------------------------------------------------------ -// reduce a matrix to a scalar -//------------------------------------------------------------------------------ - -// Reduce entries in a matrix to a scalar, c = accum (c, reduce_to_scalar(A)) - -GrB_Info GrB_Matrix_reduce_BOOL // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT32 // C=accum(C,op(A,y)) ( - bool *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_INT8 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT64 // C=accum(C,op(A,y)) ( - int8_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UINT8 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT8 // C=accum(C,op(A,y)) ( - uint8_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_INT16 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT16 // C=accum(C,op(A,y)) ( - int16_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UINT16 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT32 // C=accum(C,op(A,y)) ( - uint16_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_INT32 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT64 // C=accum(C,op(A,y)) ( - int32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UINT32 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP32 // C=accum(C,op(A,y)) ( - uint32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + float y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_INT64 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP64 // C=accum(C,op(A,y)) ( - int64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + double y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UINT64 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC32 // C=accum(C,op(A,y)) ( - uint64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_FP32 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC64 // C=accum(C,op(A,y)) ( - float *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_FP64 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UDT // C=accum(C,op(A,y)) ( - double *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const void *y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Matrix_reduce_FC32 // c = accum (c, reduce_to_scalar (A)) +//------------------------------------------- +// matrix apply: IndexUnaryOp variants +//------------------------------------------- + +// Apply a GrB_IndexUnaryOp to the entries in a matrix. + +GrB_Info GrB_Matrix_apply_IndexOp_Scalar // C=accum(C,op(A)) ( - GxB_FC32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Matrix_reduce_FC64 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_IndexOp_BOOL // C=accum(C,op(A)) ( - GxB_FC64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + bool y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UDT // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_IndexOp_INT8 // C=accum(C,op(A)) ( - void *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_Monoid_Scalar // c = accum(c,reduce_to_scalar(A)) +GrB_Info GrB_Matrix_apply_IndexOp_INT16 // C=accum(C,op(A)) ( - GrB_Scalar c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_BinaryOp_Scalar +GrB_Info GrB_Matrix_apply_IndexOp_INT32 // C=accum(C,op(A)) ( - GrB_Scalar S, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_BinaryOp op, // binary op to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -//------------------------------------------------------------------------------ -// GrB_reduce: generic matrix/vector reduction to a vector or scalar -//------------------------------------------------------------------------------ - -// GrB_reduce is a generic function that provides access to all GrB_*reduce* -// functions: - -// reduce matrix to vector: -// GrB_Matrix_reduce_Monoid (w,mask,acc,mo,A,d) // w = acc (w,reduce(A)) -// GrB_Matrix_reduce_BinaryOp (w,mask,acc,op,A,d) // w = acc (w,reduce(A)) - -// reduce matrix to scalar: -// GrB_Vector_reduce_[SCALAR] (c,acc,monoid,u,d) // c = acc (c,reduce(u)) -// GrB_Matrix_reduce_[SCALAR] (c,acc,monoid,A,d) // c = acc (c,reduce(A)) -// GrB_Vector_reduce_Monoid_Scalar (s,acc,monoid,u,d) // s = acc (s,reduce(u)) -// GrB_Matrix_reduce_Monoid_Scalar (s,acc,monoid,A,d) // s = acc (s,reduce(A)) -// GrB_Vector_reduce_BinaryOp_Scalar (s,acc,op,u,d) // s = acc (s,reduce(u)) -// GrB_Matrix_reduce_BinaryOp_Scalar (s,acc,op,A,d) // s = acc (s,reduce(A)) - -#if GxB_STDC_VERSION >= 201112L -#define GB_REDUCE_TO_SCALAR(kind,c,op) \ - _Generic \ - ( \ - (c), \ - GB_PCASES (GrB, GB_CONCAT ( kind, _reduce,, )), \ - default: \ - _Generic \ - ( \ - (op), \ - GrB_BinaryOp : \ - GB_CONCAT (GrB,_,kind,_reduce_BinaryOp_Scalar),\ - default: GB_CONCAT (GrB,_,kind,_reduce_Monoid_Scalar) \ - ) \ - ) - -#define GrB_reduce(arg1,arg2,arg3,arg4,...) \ - _Generic \ - ( \ - (arg4), \ - GrB_Vector : GB_REDUCE_TO_SCALAR (Vector, arg1, arg3), \ - GrB_Matrix : GB_REDUCE_TO_SCALAR (Matrix, arg1, arg3), \ - GrB_Monoid : GrB_Matrix_reduce_Monoid , \ - GrB_BinaryOp : GrB_Matrix_reduce_BinaryOp \ - ) \ - (arg1, arg2, arg3, arg4, __VA_ARGS__) -#endif - -//============================================================================== -// GrB_transpose: matrix transpose -//============================================================================== - -GrB_Info GrB_transpose // C = accum (C, A') +GrB_Info GrB_Matrix_apply_IndexOp_INT64 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Descriptor desc // descriptor for C, Mask, and A + int64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -//============================================================================== -// GrB_kronecker: Kronecker product -//============================================================================== - -// GxB_kron is historical; use GrB_kronecker instead -GrB_Info GxB_kron // C = accum(C,kron(A,B)) (historical) +GrB_Info GrB_Matrix_apply_IndexOp_UINT8 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // defines '*' for T=kron(A,B) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + uint8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_kronecker_BinaryOp // C = accum (C, kron(A,B)) +GrB_Info GrB_Matrix_apply_IndexOp_UINT16 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // defines '*' for T=kron(A,B) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, M, A, and B + uint16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_kronecker_Monoid // C = accum (C, kron(A,B)) +GrB_Info GrB_Matrix_apply_IndexOp_UINT32 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Monoid monoid, // defines '*' for T=kron(A,B) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, M, A, and B + uint32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_kronecker_Semiring // C = accum (C, kron(A,B)) +GrB_Info GrB_Matrix_apply_IndexOp_UINT64 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Semiring semiring, // defines '*' for T=kron(A,B) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, M, A, and B + uint64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -#if GxB_STDC_VERSION >= 201112L -#define GrB_kronecker(C,Mask,accum,op,A,B,desc) \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Matrix_kronecker_Semiring , \ - GrB_Monoid : GrB_Matrix_kronecker_Monoid , \ - GrB_BinaryOp : GrB_Matrix_kronecker_BinaryOp \ - ) \ - (C, Mask, accum, op, A, B, desc) -#endif - - -//============================================================================== -// GrB_Monoid: built-in monoids -//============================================================================== - -GB_GLOBAL GrB_Monoid - - //-------------------------------------------------------------------------- - // 10 MIN monoids: (not for complex types) - //-------------------------------------------------------------------------- - - // GxB_MIN monoids, historical, use GrB_MIN_MONOID_* instead: - GxB_MIN_INT8_MONOID, // identity: INT8_MAX terminal: INT8_MIN - GxB_MIN_INT16_MONOID, // identity: INT16_MAX terminal: INT16_MIN - GxB_MIN_INT32_MONOID, // identity: INT32_MAX terminal: INT32_MIN - GxB_MIN_INT64_MONOID, // identity: INT64_MAX terminal: INT32_MIN - GxB_MIN_UINT8_MONOID, // identity: UINT8_MAX terminal: 0 - GxB_MIN_UINT16_MONOID, // identity: UINT16_MAX terminal: 0 - GxB_MIN_UINT32_MONOID, // identity: UINT32_MAX terminal: 0 - GxB_MIN_UINT64_MONOID, // identity: UINT64_MAX terminal: 0 - GxB_MIN_FP32_MONOID, // identity: INFINITY terminal: -INFINITY - GxB_MIN_FP64_MONOID, // identity: INFINITY terminal: -INFINITY - - // preferred names from the v1.3 spec: - GrB_MIN_MONOID_INT8, // identity: INT8_MAX terminal: INT8_MIN - GrB_MIN_MONOID_INT16, // identity: INT16_MAX terminal: INT16_MIN - GrB_MIN_MONOID_INT32, // identity: INT32_MAX terminal: INT32_MIN - GrB_MIN_MONOID_INT64, // identity: INT64_MAX terminal: INT32_MIN - GrB_MIN_MONOID_UINT8, // identity: UINT8_MAX terminal: 0 - GrB_MIN_MONOID_UINT16, // identity: UINT16_MAX terminal: 0 - GrB_MIN_MONOID_UINT32, // identity: UINT32_MAX terminal: 0 - GrB_MIN_MONOID_UINT64, // identity: UINT64_MAX terminal: 0 - GrB_MIN_MONOID_FP32, // identity: INFINITY terminal: -INFINITY - GrB_MIN_MONOID_FP64, // identity: INFINITY terminal: -INFINITY - - //-------------------------------------------------------------------------- - // 10 MAX monoids: - //-------------------------------------------------------------------------- - - // GxB_MAX monoids, historical, use GrB_MAX_MONOID_* instead: - GxB_MAX_INT8_MONOID, // identity: INT8_MIN terminal: INT8_MAX - GxB_MAX_INT16_MONOID, // identity: INT16_MIN terminal: INT16_MAX - GxB_MAX_INT32_MONOID, // identity: INT32_MIN terminal: INT32_MAX - GxB_MAX_INT64_MONOID, // identity: INT64_MIN terminal: INT64_MAX - GxB_MAX_UINT8_MONOID, // identity: 0 terminal: UINT8_MAX - GxB_MAX_UINT16_MONOID, // identity: 0 terminal: UINT16_MAX - GxB_MAX_UINT32_MONOID, // identity: 0 terminal: UINT32_MAX - GxB_MAX_UINT64_MONOID, // identity: 0 terminal: UINT64_MAX - GxB_MAX_FP32_MONOID, // identity: -INFINITY terminal: INFINITY - GxB_MAX_FP64_MONOID, // identity: -INFINITY terminal: INFINITY - - // preferred names from the v1.3 spec: - GrB_MAX_MONOID_INT8, // identity: INT8_MIN terminal: INT8_MAX - GrB_MAX_MONOID_INT16, // identity: INT16_MIN terminal: INT16_MAX - GrB_MAX_MONOID_INT32, // identity: INT32_MIN terminal: INT32_MAX - GrB_MAX_MONOID_INT64, // identity: INT64_MIN terminal: INT64_MAX - GrB_MAX_MONOID_UINT8, // identity: 0 terminal: UINT8_MAX - GrB_MAX_MONOID_UINT16, // identity: 0 terminal: UINT16_MAX - GrB_MAX_MONOID_UINT32, // identity: 0 terminal: UINT32_MAX - GrB_MAX_MONOID_UINT64, // identity: 0 terminal: UINT64_MAX - GrB_MAX_MONOID_FP32, // identity: -INFINITY terminal: INFINITY - GrB_MAX_MONOID_FP64, // identity: -INFINITY terminal: INFINITY - - //-------------------------------------------------------------------------- - // 12 PLUS monoids: - //-------------------------------------------------------------------------- - - // GxB_PLUS monoids, historical, use GrB_PLUS_MONOID_* instead: - GxB_PLUS_INT8_MONOID, // identity: 0 - GxB_PLUS_INT16_MONOID, // identity: 0 - GxB_PLUS_INT32_MONOID, // identity: 0 - GxB_PLUS_INT64_MONOID, // identity: 0 - GxB_PLUS_UINT8_MONOID, // identity: 0 - GxB_PLUS_UINT16_MONOID, // identity: 0 - GxB_PLUS_UINT32_MONOID, // identity: 0 - GxB_PLUS_UINT64_MONOID, // identity: 0 - GxB_PLUS_FP32_MONOID, // identity: 0 - GxB_PLUS_FP64_MONOID, // identity: 0 - - // preferred names from the v1.3 spec: - GrB_PLUS_MONOID_INT8, // identity: 0 - GrB_PLUS_MONOID_INT16, // identity: 0 - GrB_PLUS_MONOID_INT32, // identity: 0 - GrB_PLUS_MONOID_INT64, // identity: 0 - GrB_PLUS_MONOID_UINT8, // identity: 0 - GrB_PLUS_MONOID_UINT16, // identity: 0 - GrB_PLUS_MONOID_UINT32, // identity: 0 - GrB_PLUS_MONOID_UINT64, // identity: 0 - GrB_PLUS_MONOID_FP32, // identity: 0 - GrB_PLUS_MONOID_FP64, // identity: 0 - - // complex monoids: - GxB_PLUS_FC32_MONOID, // identity: 0 - GxB_PLUS_FC64_MONOID, // identity: 0 - - //-------------------------------------------------------------------------- - // 12 TIMES monoids: identity value is 1, int* and uint* are terminal - //-------------------------------------------------------------------------- - - // GxB_TIMES monoids, historical, use GrB_TIMES_MONOID_* instead: - GxB_TIMES_INT8_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_INT16_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_INT32_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_INT64_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_UINT8_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_UINT16_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_UINT32_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_UINT64_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_FP32_MONOID, // identity: 1 - GxB_TIMES_FP64_MONOID, // identity: 1 - - // preferred names from the v1.3 spec: - GrB_TIMES_MONOID_INT8, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_INT16, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_INT32, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_INT64, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_UINT8, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_UINT16, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_UINT32, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_UINT64, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_FP32, // identity: 1 - GrB_TIMES_MONOID_FP64, // identity: 1 - - // complex monoids: - GxB_TIMES_FC32_MONOID, // identity: 1 - GxB_TIMES_FC64_MONOID, // identity: 1 - - //-------------------------------------------------------------------------- - // 13 ANY monoids: - //-------------------------------------------------------------------------- - - GxB_ANY_BOOL_MONOID, // identity: any value terminal: any value - GxB_ANY_INT8_MONOID, // identity: any value terminal: any value - GxB_ANY_INT16_MONOID, // identity: any value terminal: any value - GxB_ANY_INT32_MONOID, // identity: any value terminal: any value - GxB_ANY_INT64_MONOID, // identity: any value terminal: any value - GxB_ANY_UINT8_MONOID, // identity: any value terminal: any value - GxB_ANY_UINT16_MONOID, // identity: any value terminal: any value - GxB_ANY_UINT32_MONOID, // identity: any value terminal: any value - GxB_ANY_UINT64_MONOID, // identity: any value terminal: any value - GxB_ANY_FP32_MONOID, // identity: any value terminal: any value - GxB_ANY_FP64_MONOID, // identity: any value terminal: any value - GxB_ANY_FC32_MONOID, // identity: any value terminal: any value - GxB_ANY_FC64_MONOID, // identity: any value terminal: any value - - //-------------------------------------------------------------------------- - // 4 Boolean monoids: (see also the GxB_ANY_BOOL_MONOID above) - //-------------------------------------------------------------------------- - - // GxB_* boolean monoids, historical, use GrB_* instead: - GxB_LOR_BOOL_MONOID, // identity: false terminal: true - GxB_LAND_BOOL_MONOID, // identity: true terminal: false - GxB_LXOR_BOOL_MONOID, // identity: false - GxB_LXNOR_BOOL_MONOID, // identity: true - GxB_EQ_BOOL_MONOID, // (another name for GrB_LXNOR_MONOID_BOOL) - - // preferred names from the v1.3 spec: - GrB_LOR_MONOID_BOOL, // identity: false terminal: true - GrB_LAND_MONOID_BOOL, // identity: true terminal: false - GrB_LXOR_MONOID_BOOL, // identity: false - GrB_LXNOR_MONOID_BOOL, // identity: true - - //-------------------------------------------------------------------------- - // 16 Bitwise-or monoids: - //-------------------------------------------------------------------------- - - // BOR monoids (bitwise or): - GxB_BOR_UINT8_MONOID, // identity: 0 terminal: 0xFF - GxB_BOR_UINT16_MONOID, // identity: 0 terminal: 0xFFFF - GxB_BOR_UINT32_MONOID, // identity: 0 terminal: 0xFFFFFFFF - GxB_BOR_UINT64_MONOID, // identity: 0 terminal: 0xFFFFFFFFFFFFFFFF - - // BAND monoids (bitwise and): - GxB_BAND_UINT8_MONOID, // identity: 0xFF terminal: 0 - GxB_BAND_UINT16_MONOID, // identity: 0xFFFF terminal: 0 - GxB_BAND_UINT32_MONOID, // identity: 0xFFFFFFFF terminal: 0 - GxB_BAND_UINT64_MONOID, // identity: 0xFFFFFFFFFFFFFFFF terminal: 0 +GrB_Info GrB_Matrix_apply_IndexOp_FP32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + float y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // BXOR monoids (bitwise xor): - GxB_BXOR_UINT8_MONOID, // identity: 0 - GxB_BXOR_UINT16_MONOID, // identity: 0 - GxB_BXOR_UINT32_MONOID, // identity: 0 - GxB_BXOR_UINT64_MONOID, // identity: 0 +GrB_Info GrB_Matrix_apply_IndexOp_FP64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + double y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // BXNOR monoids (bitwise xnor): - GxB_BXNOR_UINT8_MONOID, // identity: 0xFF - GxB_BXNOR_UINT16_MONOID, // identity: 0xFFFF - GxB_BXNOR_UINT32_MONOID, // identity: 0xFFFFFFFF - GxB_BXNOR_UINT64_MONOID ; // identity: 0xFFFFFFFFFFFFFFFF +GrB_Info GxB_Matrix_apply_IndexOp_FC32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; -//============================================================================== -// GrB_Semiring: built-in semirings -//============================================================================== +GrB_Info GxB_Matrix_apply_IndexOp_FC64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; -// Using built-in types and operators, SuiteSparse:GraphBLAS provides -// 1553 pre-defined, built-in semirings: +GrB_Info GrB_Matrix_apply_IndexOp_UDT // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const void *y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; -// 1000 semirings with a multiply operator TxT -> T where T is non-Boolean, -// from the complete cross product of: +//------------------------------------------------------------------------------ +// GrB_apply: generic matrix/vector apply +//------------------------------------------------------------------------------ -// 5 monoids: MIN, MAX, PLUS, TIMES, ANY -// 20 multiply operators: -// FIRST, SECOND, PAIR (=ONEB), MIN, MAX, PLUS, MINUS, TIMES, DIV, -// RDIV, RMINUS -// ISEQ, ISNE, ISGT, ISLT, ISGE, ISLE, -// LOR, LAND, LXOR -// 10 non-Boolean real types, T -// -// Note that min_pair, max_pair, times_pair are all identical to any_pair. -// These 30 semirings are named below, but are internally remapped to -// their corresponding any_pair semiring. +// GrB_apply is a generic function for applying a unary operator to a matrix +// or vector and provides access to these functions: -// 300 semirings with a comparator TxT -> bool, where T is -// non-Boolean, from the complete cross product of: +// GrB_Vector_apply (w,mask,acc,op,u,d) // w = accum (w, op(u)) +// GrB_Matrix_apply (C,Mask,acc,op,A,d) // C = accum (C, op(A)) -// 5 Boolean monoids: LAND, LOR, LXOR, EQ (=LXNOR), ANY -// 6 multiply operators: EQ, NE, GT, LT, GE, LE -// 10 non-Boolean real types, T +// GrB_Vector_apply (w,m,acc,unop ,u,d) +// GrB_Vector_apply_BinaryOp1st_TYPE (w,m,acc,binop,x,u,d) +// GrB_Vector_apply_BinaryOp2nd_TYPE (w,m,acc,binop,u,y,d) +// GrB_Vector_apply_IndexOp_TYPE (w,m,acc,idxop,u,y,d) -// 55 semirings with purely Boolean types, bool x bool -> bool, from the -// complete cross product of: +// GrB_Matrix_apply (C,M,acc,unop ,A,d) +// GrB_Matrix_apply_BinaryOp1st_TYPE (C,M,acc,binop,x,A,d) +// GrB_Matrix_apply_BinaryOp2nd_TYPE (C,M,acc,binop,A,y,d) +// GrB_Matrix_apply_IndexOp_TYPE (C,M,acc,idxop,A,y,d) -// 5 Boolean monoids LAND, LOR, LXOR, EQ (=LXNOR), ANY -// 11 multiply operators: -// FIRST, SECOND, LOR, LAND, LXOR, EQ (=LXNOR), GT, LT, GE, LE, -// PAIR (=ONEB) -// -// Note that lor_pair, land_pair, and eq_pair are all identical to -// any_pair. These 3 semirings are named below, but are internally -// remapped to any_pair_bool semiring. +#if GxB_STDC_VERSION >= 201112L -// 54 complex semirings: TxT -> T where T is float complex or double complex: +#define GB_BIND(kind,x,y,...) \ + _Generic \ + ( \ + (x), \ + GrB_Scalar: GB_CONCAT ( GrB,_,kind,_apply_BinaryOp1st_Scalar), \ + GB_CASES (GrB, GB_CONCAT ( kind, _apply_BinaryOp1st,, )) , \ + default: \ + _Generic \ + ( \ + (y), \ + GB_CASES (GrB, GB_CONCAT ( kind , _apply_BinaryOp2nd,, )), \ + default: GB_CONCAT ( GrB,_,kind,_apply_BinaryOp2nd_Scalar) \ + ) \ + ) -// 3 complex monoids: PLUS, TIMES, ANY -// 9 complex multiply operators: -// FIRST, SECOND, PAIR (=ONEB), PLUS, MINUS, TIMES, DIV, RDIV, RMINUS -// 2 complex types -// -// Note that times_pair is identical to any_pair. -// These 2 semirings are named below, but are internally remapped to -// their corresponding any_pair semiring. +#define GB_IDXOP(kind,A,y,...) \ + _Generic \ + ( \ + (y), \ + GB_CASES (GrB, GB_CONCAT ( kind, _apply_IndexOp,, )), \ + default: GB_CONCAT ( GrB, _, kind, _apply_IndexOp_Scalar) \ + ) -// 64 bitwise semirings: TxT -> T where T is an unsigned integer: +#define GrB_apply(C,Mask,accum,op,...) \ + _Generic \ + ( \ + (C), \ + GrB_Vector : \ + _Generic \ + ( \ + (op), \ + GrB_UnaryOp : GrB_Vector_apply , \ + GrB_BinaryOp : GB_BIND (Vector, __VA_ARGS__), \ + GrB_IndexUnaryOp : GB_IDXOP (Vector, __VA_ARGS__) \ + ), \ + GrB_Matrix : \ + _Generic \ + ( \ + (op), \ + GrB_UnaryOp : GrB_Matrix_apply , \ + GrB_BinaryOp : GB_BIND (Matrix, __VA_ARGS__), \ + GrB_IndexUnaryOp : GB_IDXOP (Matrix, __VA_ARGS__) \ + ) \ + ) \ + (C, Mask, accum, op, __VA_ARGS__) +#endif -// 4 bitwise monoids: BOR, BAND, BXOR, BXNOR -// 4 bitwise multiply operators: BOR, BAND, BXOR, BXNOR -// 4 unsigned integer types: UINT8, UINT16, UINT32, UINT64 +//============================================================================== +// GrB_select: matrix and vector selection using an IndexUnaryOp +//============================================================================== -// 80 positional semirings: XxX -> T where T is int64 or int32, and the type of -// X is ignored: +//------------------------------------------- +// vector select using an IndexUnaryOp +//------------------------------------------- -// 5 monoids: MIN, MAX, PLUS, TIMES, ANY -// 8 multiply operators: -// FIRSTI, FIRSTI1, FIRSTJ, FIRSTJ1, -// SECONDI, SECONDI1, SECONDJ, SECONDJ1 -// 2 types: int32, int64 +GrB_Info GrB_Vector_select_Scalar // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -// The ANY operator is also valid to use as a multiplicative operator in a -// semiring, but serves no purpose in that case. The ANY operator is meant as -// a fast additive operator for a monoid, that terminates, or short-circuits, -// as soon as any value is found. A valid user semiring can be constructed -// with ANY as the multiply operator, but they are not predefined below. +GrB_Info GrB_Vector_select_BOOL // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + bool y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -// Likewise, additional built-in operators can be used as multiplicative -// operators for floating-point semirings (POW, ATAN2, HYPOT, ...) and many -// more semirings can be constructed from bitwise monoids and many integer -// binary (non-bitwise) multiplicative operators, but these are not -// pre-defined. +GrB_Info GrB_Vector_select_INT8 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + int8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -// In the names below, each semiring has a name of the form GxB_add_mult_T -// where add is the additive monoid, mult is the multiply operator, and T is -// the type. The type T is always the type of x and y for the z=mult(x,y) -// operator. The monoid's three types and the ztype of the mult operator are -// always the same. This is the type T for the first set, and Boolean for -// the second and third sets of semirngs. +GrB_Info GrB_Vector_select_INT16 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + int16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -// 1553 = 1000 + 300 + 55 + 54 + 64 + 80 semirings are named below, but 35 = 30 -// + 3 + 2 are identical to the corresponding any_pair semirings of the same -// type. For positional semirings, the mulitiply ops FIRSTJ and SECONDI are -// identical, as are FIRSTJ1 and SECONDI1. These semirings still appear as -// predefined, for convenience. +GrB_Info GrB_Vector_select_INT32 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + int32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -GB_GLOBAL GrB_Semiring +GrB_Info GrB_Vector_select_INT64 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + int64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -//------------------------------------------------------------------------------ -// 1000 non-Boolean semirings where all types are the same, given by suffix _T -//------------------------------------------------------------------------------ +GrB_Info GrB_Vector_select_UINT8 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + uint8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = FIRST (x,y), all types x,y,z the same: - GxB_MIN_FIRST_INT8 , GxB_MAX_FIRST_INT8 , GxB_PLUS_FIRST_INT8 , GxB_TIMES_FIRST_INT8 , GxB_ANY_FIRST_INT8 , - GxB_MIN_FIRST_INT16 , GxB_MAX_FIRST_INT16 , GxB_PLUS_FIRST_INT16 , GxB_TIMES_FIRST_INT16 , GxB_ANY_FIRST_INT16 , - GxB_MIN_FIRST_INT32 , GxB_MAX_FIRST_INT32 , GxB_PLUS_FIRST_INT32 , GxB_TIMES_FIRST_INT32 , GxB_ANY_FIRST_INT32 , - GxB_MIN_FIRST_INT64 , GxB_MAX_FIRST_INT64 , GxB_PLUS_FIRST_INT64 , GxB_TIMES_FIRST_INT64 , GxB_ANY_FIRST_INT64 , - GxB_MIN_FIRST_UINT8 , GxB_MAX_FIRST_UINT8 , GxB_PLUS_FIRST_UINT8 , GxB_TIMES_FIRST_UINT8 , GxB_ANY_FIRST_UINT8 , - GxB_MIN_FIRST_UINT16 , GxB_MAX_FIRST_UINT16 , GxB_PLUS_FIRST_UINT16 , GxB_TIMES_FIRST_UINT16 , GxB_ANY_FIRST_UINT16 , - GxB_MIN_FIRST_UINT32 , GxB_MAX_FIRST_UINT32 , GxB_PLUS_FIRST_UINT32 , GxB_TIMES_FIRST_UINT32 , GxB_ANY_FIRST_UINT32 , - GxB_MIN_FIRST_UINT64 , GxB_MAX_FIRST_UINT64 , GxB_PLUS_FIRST_UINT64 , GxB_TIMES_FIRST_UINT64 , GxB_ANY_FIRST_UINT64 , - GxB_MIN_FIRST_FP32 , GxB_MAX_FIRST_FP32 , GxB_PLUS_FIRST_FP32 , GxB_TIMES_FIRST_FP32 , GxB_ANY_FIRST_FP32 , - GxB_MIN_FIRST_FP64 , GxB_MAX_FIRST_FP64 , GxB_PLUS_FIRST_FP64 , GxB_TIMES_FIRST_FP64 , GxB_ANY_FIRST_FP64 , +GrB_Info GrB_Vector_select_UINT16 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + uint16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = SECOND (x,y), all types x,y,z the same: - GxB_MIN_SECOND_INT8 , GxB_MAX_SECOND_INT8 , GxB_PLUS_SECOND_INT8 , GxB_TIMES_SECOND_INT8 , GxB_ANY_SECOND_INT8 , - GxB_MIN_SECOND_INT16 , GxB_MAX_SECOND_INT16 , GxB_PLUS_SECOND_INT16 , GxB_TIMES_SECOND_INT16 , GxB_ANY_SECOND_INT16 , - GxB_MIN_SECOND_INT32 , GxB_MAX_SECOND_INT32 , GxB_PLUS_SECOND_INT32 , GxB_TIMES_SECOND_INT32 , GxB_ANY_SECOND_INT32 , - GxB_MIN_SECOND_INT64 , GxB_MAX_SECOND_INT64 , GxB_PLUS_SECOND_INT64 , GxB_TIMES_SECOND_INT64 , GxB_ANY_SECOND_INT64 , - GxB_MIN_SECOND_UINT8 , GxB_MAX_SECOND_UINT8 , GxB_PLUS_SECOND_UINT8 , GxB_TIMES_SECOND_UINT8 , GxB_ANY_SECOND_UINT8 , - GxB_MIN_SECOND_UINT16 , GxB_MAX_SECOND_UINT16 , GxB_PLUS_SECOND_UINT16 , GxB_TIMES_SECOND_UINT16, GxB_ANY_SECOND_UINT16 , - GxB_MIN_SECOND_UINT32 , GxB_MAX_SECOND_UINT32 , GxB_PLUS_SECOND_UINT32 , GxB_TIMES_SECOND_UINT32, GxB_ANY_SECOND_UINT32 , - GxB_MIN_SECOND_UINT64 , GxB_MAX_SECOND_UINT64 , GxB_PLUS_SECOND_UINT64 , GxB_TIMES_SECOND_UINT64, GxB_ANY_SECOND_UINT64 , - GxB_MIN_SECOND_FP32 , GxB_MAX_SECOND_FP32 , GxB_PLUS_SECOND_FP32 , GxB_TIMES_SECOND_FP32 , GxB_ANY_SECOND_FP32 , - GxB_MIN_SECOND_FP64 , GxB_MAX_SECOND_FP64 , GxB_PLUS_SECOND_FP64 , GxB_TIMES_SECOND_FP64 , GxB_ANY_SECOND_FP64 , +GrB_Info GrB_Vector_select_UINT32 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + uint32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = PAIR (x,y), all types x,y,z the same: - // (note that min_pair, max_pair, times_pair are all identical to any_pair, and are marked below) - GxB_MIN_PAIR_INT8 /**/, GxB_MAX_PAIR_INT8 /**/, GxB_PLUS_PAIR_INT8 , GxB_TIMES_PAIR_INT8 /**/, GxB_ANY_PAIR_INT8 , - GxB_MIN_PAIR_INT16 /**/, GxB_MAX_PAIR_INT16 /**/, GxB_PLUS_PAIR_INT16 , GxB_TIMES_PAIR_INT16 /**/, GxB_ANY_PAIR_INT16 , - GxB_MIN_PAIR_INT32 /**/, GxB_MAX_PAIR_INT32 /**/, GxB_PLUS_PAIR_INT32 , GxB_TIMES_PAIR_INT32 /**/, GxB_ANY_PAIR_INT32 , - GxB_MIN_PAIR_INT64 /**/, GxB_MAX_PAIR_INT64 /**/, GxB_PLUS_PAIR_INT64 , GxB_TIMES_PAIR_INT64 /**/, GxB_ANY_PAIR_INT64 , - GxB_MIN_PAIR_UINT8 /**/, GxB_MAX_PAIR_UINT8 /**/, GxB_PLUS_PAIR_UINT8 , GxB_TIMES_PAIR_UINT8 /**/, GxB_ANY_PAIR_UINT8 , - GxB_MIN_PAIR_UINT16/**/, GxB_MAX_PAIR_UINT16/**/, GxB_PLUS_PAIR_UINT16 , GxB_TIMES_PAIR_UINT16/**/, GxB_ANY_PAIR_UINT16 , - GxB_MIN_PAIR_UINT32/**/, GxB_MAX_PAIR_UINT32/**/, GxB_PLUS_PAIR_UINT32 , GxB_TIMES_PAIR_UINT32/**/, GxB_ANY_PAIR_UINT32 , - GxB_MIN_PAIR_UINT64/**/, GxB_MAX_PAIR_UINT64/**/, GxB_PLUS_PAIR_UINT64 , GxB_TIMES_PAIR_UINT64/**/, GxB_ANY_PAIR_UINT64 , - GxB_MIN_PAIR_FP32 /**/, GxB_MAX_PAIR_FP32 /**/, GxB_PLUS_PAIR_FP32 , GxB_TIMES_PAIR_FP32 /**/, GxB_ANY_PAIR_FP32 , - GxB_MIN_PAIR_FP64 /**/, GxB_MAX_PAIR_FP64 /**/, GxB_PLUS_PAIR_FP64 , GxB_TIMES_PAIR_FP64 /**/, GxB_ANY_PAIR_FP64 , +GrB_Info GrB_Vector_select_UINT64 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + uint64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = MIN (x,y), all types x,y,z the same: - GxB_MIN_MIN_INT8 , GxB_MAX_MIN_INT8 , GxB_PLUS_MIN_INT8 , GxB_TIMES_MIN_INT8 , GxB_ANY_MIN_INT8 , - GxB_MIN_MIN_INT16 , GxB_MAX_MIN_INT16 , GxB_PLUS_MIN_INT16 , GxB_TIMES_MIN_INT16 , GxB_ANY_MIN_INT16 , - GxB_MIN_MIN_INT32 , GxB_MAX_MIN_INT32 , GxB_PLUS_MIN_INT32 , GxB_TIMES_MIN_INT32 , GxB_ANY_MIN_INT32 , - GxB_MIN_MIN_INT64 , GxB_MAX_MIN_INT64 , GxB_PLUS_MIN_INT64 , GxB_TIMES_MIN_INT64 , GxB_ANY_MIN_INT64 , - GxB_MIN_MIN_UINT8 , GxB_MAX_MIN_UINT8 , GxB_PLUS_MIN_UINT8 , GxB_TIMES_MIN_UINT8 , GxB_ANY_MIN_UINT8 , - GxB_MIN_MIN_UINT16 , GxB_MAX_MIN_UINT16 , GxB_PLUS_MIN_UINT16 , GxB_TIMES_MIN_UINT16 , GxB_ANY_MIN_UINT16 , - GxB_MIN_MIN_UINT32 , GxB_MAX_MIN_UINT32 , GxB_PLUS_MIN_UINT32 , GxB_TIMES_MIN_UINT32 , GxB_ANY_MIN_UINT32 , - GxB_MIN_MIN_UINT64 , GxB_MAX_MIN_UINT64 , GxB_PLUS_MIN_UINT64 , GxB_TIMES_MIN_UINT64 , GxB_ANY_MIN_UINT64 , - GxB_MIN_MIN_FP32 , GxB_MAX_MIN_FP32 , GxB_PLUS_MIN_FP32 , GxB_TIMES_MIN_FP32 , GxB_ANY_MIN_FP32 , - GxB_MIN_MIN_FP64 , GxB_MAX_MIN_FP64 , GxB_PLUS_MIN_FP64 , GxB_TIMES_MIN_FP64 , GxB_ANY_MIN_FP64 , +GrB_Info GrB_Vector_select_FP32 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + float y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = MAX (x,y), all types x,y,z the same: - GxB_MIN_MAX_INT8 , GxB_MAX_MAX_INT8 , GxB_PLUS_MAX_INT8 , GxB_TIMES_MAX_INT8 , GxB_ANY_MAX_INT8 , - GxB_MIN_MAX_INT16 , GxB_MAX_MAX_INT16 , GxB_PLUS_MAX_INT16 , GxB_TIMES_MAX_INT16 , GxB_ANY_MAX_INT16 , - GxB_MIN_MAX_INT32 , GxB_MAX_MAX_INT32 , GxB_PLUS_MAX_INT32 , GxB_TIMES_MAX_INT32 , GxB_ANY_MAX_INT32 , - GxB_MIN_MAX_INT64 , GxB_MAX_MAX_INT64 , GxB_PLUS_MAX_INT64 , GxB_TIMES_MAX_INT64 , GxB_ANY_MAX_INT64 , - GxB_MIN_MAX_UINT8 , GxB_MAX_MAX_UINT8 , GxB_PLUS_MAX_UINT8 , GxB_TIMES_MAX_UINT8 , GxB_ANY_MAX_UINT8 , - GxB_MIN_MAX_UINT16 , GxB_MAX_MAX_UINT16 , GxB_PLUS_MAX_UINT16 , GxB_TIMES_MAX_UINT16 , GxB_ANY_MAX_UINT16 , - GxB_MIN_MAX_UINT32 , GxB_MAX_MAX_UINT32 , GxB_PLUS_MAX_UINT32 , GxB_TIMES_MAX_UINT32 , GxB_ANY_MAX_UINT32 , - GxB_MIN_MAX_UINT64 , GxB_MAX_MAX_UINT64 , GxB_PLUS_MAX_UINT64 , GxB_TIMES_MAX_UINT64 , GxB_ANY_MAX_UINT64 , - GxB_MIN_MAX_FP32 , GxB_MAX_MAX_FP32 , GxB_PLUS_MAX_FP32 , GxB_TIMES_MAX_FP32 , GxB_ANY_MAX_FP32 , - GxB_MIN_MAX_FP64 , GxB_MAX_MAX_FP64 , GxB_PLUS_MAX_FP64 , GxB_TIMES_MAX_FP64 , GxB_ANY_MAX_FP64 , +GrB_Info GrB_Vector_select_FP64 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + double y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = PLUS (x,y), all types x,y,z the same: - GxB_MIN_PLUS_INT8 , GxB_MAX_PLUS_INT8 , GxB_PLUS_PLUS_INT8 , GxB_TIMES_PLUS_INT8 , GxB_ANY_PLUS_INT8 , - GxB_MIN_PLUS_INT16 , GxB_MAX_PLUS_INT16 , GxB_PLUS_PLUS_INT16 , GxB_TIMES_PLUS_INT16 , GxB_ANY_PLUS_INT16 , - GxB_MIN_PLUS_INT32 , GxB_MAX_PLUS_INT32 , GxB_PLUS_PLUS_INT32 , GxB_TIMES_PLUS_INT32 , GxB_ANY_PLUS_INT32 , - GxB_MIN_PLUS_INT64 , GxB_MAX_PLUS_INT64 , GxB_PLUS_PLUS_INT64 , GxB_TIMES_PLUS_INT64 , GxB_ANY_PLUS_INT64 , - GxB_MIN_PLUS_UINT8 , GxB_MAX_PLUS_UINT8 , GxB_PLUS_PLUS_UINT8 , GxB_TIMES_PLUS_UINT8 , GxB_ANY_PLUS_UINT8 , - GxB_MIN_PLUS_UINT16 , GxB_MAX_PLUS_UINT16 , GxB_PLUS_PLUS_UINT16 , GxB_TIMES_PLUS_UINT16 , GxB_ANY_PLUS_UINT16 , - GxB_MIN_PLUS_UINT32 , GxB_MAX_PLUS_UINT32 , GxB_PLUS_PLUS_UINT32 , GxB_TIMES_PLUS_UINT32 , GxB_ANY_PLUS_UINT32 , - GxB_MIN_PLUS_UINT64 , GxB_MAX_PLUS_UINT64 , GxB_PLUS_PLUS_UINT64 , GxB_TIMES_PLUS_UINT64 , GxB_ANY_PLUS_UINT64 , - GxB_MIN_PLUS_FP32 , GxB_MAX_PLUS_FP32 , GxB_PLUS_PLUS_FP32 , GxB_TIMES_PLUS_FP32 , GxB_ANY_PLUS_FP32 , - GxB_MIN_PLUS_FP64 , GxB_MAX_PLUS_FP64 , GxB_PLUS_PLUS_FP64 , GxB_TIMES_PLUS_FP64 , GxB_ANY_PLUS_FP64 , +GrB_Info GxB_Vector_select_FC32 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + GxB_FC32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = MINUS (x,y), all types x,y,z the same: - GxB_MIN_MINUS_INT8 , GxB_MAX_MINUS_INT8 , GxB_PLUS_MINUS_INT8 , GxB_TIMES_MINUS_INT8 , GxB_ANY_MINUS_INT8 , - GxB_MIN_MINUS_INT16 , GxB_MAX_MINUS_INT16 , GxB_PLUS_MINUS_INT16 , GxB_TIMES_MINUS_INT16 , GxB_ANY_MINUS_INT16 , - GxB_MIN_MINUS_INT32 , GxB_MAX_MINUS_INT32 , GxB_PLUS_MINUS_INT32 , GxB_TIMES_MINUS_INT32 , GxB_ANY_MINUS_INT32 , - GxB_MIN_MINUS_INT64 , GxB_MAX_MINUS_INT64 , GxB_PLUS_MINUS_INT64 , GxB_TIMES_MINUS_INT64 , GxB_ANY_MINUS_INT64 , - GxB_MIN_MINUS_UINT8 , GxB_MAX_MINUS_UINT8 , GxB_PLUS_MINUS_UINT8 , GxB_TIMES_MINUS_UINT8 , GxB_ANY_MINUS_UINT8 , - GxB_MIN_MINUS_UINT16 , GxB_MAX_MINUS_UINT16 , GxB_PLUS_MINUS_UINT16 , GxB_TIMES_MINUS_UINT16 , GxB_ANY_MINUS_UINT16 , - GxB_MIN_MINUS_UINT32 , GxB_MAX_MINUS_UINT32 , GxB_PLUS_MINUS_UINT32 , GxB_TIMES_MINUS_UINT32 , GxB_ANY_MINUS_UINT32 , - GxB_MIN_MINUS_UINT64 , GxB_MAX_MINUS_UINT64 , GxB_PLUS_MINUS_UINT64 , GxB_TIMES_MINUS_UINT64 , GxB_ANY_MINUS_UINT64 , - GxB_MIN_MINUS_FP32 , GxB_MAX_MINUS_FP32 , GxB_PLUS_MINUS_FP32 , GxB_TIMES_MINUS_FP32 , GxB_ANY_MINUS_FP32 , - GxB_MIN_MINUS_FP64 , GxB_MAX_MINUS_FP64 , GxB_PLUS_MINUS_FP64 , GxB_TIMES_MINUS_FP64 , GxB_ANY_MINUS_FP64 , +GrB_Info GxB_Vector_select_FC64 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + GxB_FC64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = TIMES (x,y), all types x,y,z the same: - GxB_MIN_TIMES_INT8 , GxB_MAX_TIMES_INT8 , GxB_PLUS_TIMES_INT8 , GxB_TIMES_TIMES_INT8 , GxB_ANY_TIMES_INT8 , - GxB_MIN_TIMES_INT16 , GxB_MAX_TIMES_INT16 , GxB_PLUS_TIMES_INT16 , GxB_TIMES_TIMES_INT16 , GxB_ANY_TIMES_INT16 , - GxB_MIN_TIMES_INT32 , GxB_MAX_TIMES_INT32 , GxB_PLUS_TIMES_INT32 , GxB_TIMES_TIMES_INT32 , GxB_ANY_TIMES_INT32 , - GxB_MIN_TIMES_INT64 , GxB_MAX_TIMES_INT64 , GxB_PLUS_TIMES_INT64 , GxB_TIMES_TIMES_INT64 , GxB_ANY_TIMES_INT64 , - GxB_MIN_TIMES_UINT8 , GxB_MAX_TIMES_UINT8 , GxB_PLUS_TIMES_UINT8 , GxB_TIMES_TIMES_UINT8 , GxB_ANY_TIMES_UINT8 , - GxB_MIN_TIMES_UINT16 , GxB_MAX_TIMES_UINT16 , GxB_PLUS_TIMES_UINT16 , GxB_TIMES_TIMES_UINT16 , GxB_ANY_TIMES_UINT16 , - GxB_MIN_TIMES_UINT32 , GxB_MAX_TIMES_UINT32 , GxB_PLUS_TIMES_UINT32 , GxB_TIMES_TIMES_UINT32 , GxB_ANY_TIMES_UINT32 , - GxB_MIN_TIMES_UINT64 , GxB_MAX_TIMES_UINT64 , GxB_PLUS_TIMES_UINT64 , GxB_TIMES_TIMES_UINT64 , GxB_ANY_TIMES_UINT64 , - GxB_MIN_TIMES_FP32 , GxB_MAX_TIMES_FP32 , GxB_PLUS_TIMES_FP32 , GxB_TIMES_TIMES_FP32 , GxB_ANY_TIMES_FP32 , - GxB_MIN_TIMES_FP64 , GxB_MAX_TIMES_FP64 , GxB_PLUS_TIMES_FP64 , GxB_TIMES_TIMES_FP64 , GxB_ANY_TIMES_FP64 , +GrB_Info GrB_Vector_select_UDT // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + const void *y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = DIV (x,y), all types x,y,z the same: - GxB_MIN_DIV_INT8 , GxB_MAX_DIV_INT8 , GxB_PLUS_DIV_INT8 , GxB_TIMES_DIV_INT8 , GxB_ANY_DIV_INT8 , - GxB_MIN_DIV_INT16 , GxB_MAX_DIV_INT16 , GxB_PLUS_DIV_INT16 , GxB_TIMES_DIV_INT16 , GxB_ANY_DIV_INT16 , - GxB_MIN_DIV_INT32 , GxB_MAX_DIV_INT32 , GxB_PLUS_DIV_INT32 , GxB_TIMES_DIV_INT32 , GxB_ANY_DIV_INT32 , - GxB_MIN_DIV_INT64 , GxB_MAX_DIV_INT64 , GxB_PLUS_DIV_INT64 , GxB_TIMES_DIV_INT64 , GxB_ANY_DIV_INT64 , - GxB_MIN_DIV_UINT8 , GxB_MAX_DIV_UINT8 , GxB_PLUS_DIV_UINT8 , GxB_TIMES_DIV_UINT8 , GxB_ANY_DIV_UINT8 , - GxB_MIN_DIV_UINT16 , GxB_MAX_DIV_UINT16 , GxB_PLUS_DIV_UINT16 , GxB_TIMES_DIV_UINT16 , GxB_ANY_DIV_UINT16 , - GxB_MIN_DIV_UINT32 , GxB_MAX_DIV_UINT32 , GxB_PLUS_DIV_UINT32 , GxB_TIMES_DIV_UINT32 , GxB_ANY_DIV_UINT32 , - GxB_MIN_DIV_UINT64 , GxB_MAX_DIV_UINT64 , GxB_PLUS_DIV_UINT64 , GxB_TIMES_DIV_UINT64 , GxB_ANY_DIV_UINT64 , - GxB_MIN_DIV_FP32 , GxB_MAX_DIV_FP32 , GxB_PLUS_DIV_FP32 , GxB_TIMES_DIV_FP32 , GxB_ANY_DIV_FP32 , - GxB_MIN_DIV_FP64 , GxB_MAX_DIV_FP64 , GxB_PLUS_DIV_FP64 , GxB_TIMES_DIV_FP64 , GxB_ANY_DIV_FP64 , +//------------------------------------------- +// matrix select using an IndexUnaryOp +//------------------------------------------- - // semirings with multiply op: z = RDIV (x,y), all types x,y,z the same: - GxB_MIN_RDIV_INT8 , GxB_MAX_RDIV_INT8 , GxB_PLUS_RDIV_INT8 , GxB_TIMES_RDIV_INT8 , GxB_ANY_RDIV_INT8 , - GxB_MIN_RDIV_INT16 , GxB_MAX_RDIV_INT16 , GxB_PLUS_RDIV_INT16 , GxB_TIMES_RDIV_INT16 , GxB_ANY_RDIV_INT16 , - GxB_MIN_RDIV_INT32 , GxB_MAX_RDIV_INT32 , GxB_PLUS_RDIV_INT32 , GxB_TIMES_RDIV_INT32 , GxB_ANY_RDIV_INT32 , - GxB_MIN_RDIV_INT64 , GxB_MAX_RDIV_INT64 , GxB_PLUS_RDIV_INT64 , GxB_TIMES_RDIV_INT64 , GxB_ANY_RDIV_INT64 , - GxB_MIN_RDIV_UINT8 , GxB_MAX_RDIV_UINT8 , GxB_PLUS_RDIV_UINT8 , GxB_TIMES_RDIV_UINT8 , GxB_ANY_RDIV_UINT8 , - GxB_MIN_RDIV_UINT16 , GxB_MAX_RDIV_UINT16 , GxB_PLUS_RDIV_UINT16 , GxB_TIMES_RDIV_UINT16 , GxB_ANY_RDIV_UINT16 , - GxB_MIN_RDIV_UINT32 , GxB_MAX_RDIV_UINT32 , GxB_PLUS_RDIV_UINT32 , GxB_TIMES_RDIV_UINT32 , GxB_ANY_RDIV_UINT32 , - GxB_MIN_RDIV_UINT64 , GxB_MAX_RDIV_UINT64 , GxB_PLUS_RDIV_UINT64 , GxB_TIMES_RDIV_UINT64 , GxB_ANY_RDIV_UINT64 , - GxB_MIN_RDIV_FP32 , GxB_MAX_RDIV_FP32 , GxB_PLUS_RDIV_FP32 , GxB_TIMES_RDIV_FP32 , GxB_ANY_RDIV_FP32 , - GxB_MIN_RDIV_FP64 , GxB_MAX_RDIV_FP64 , GxB_PLUS_RDIV_FP64 , GxB_TIMES_RDIV_FP64 , GxB_ANY_RDIV_FP64 , +GrB_Info GrB_Matrix_select_Scalar // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = RMINUS (x,y), all types x,y,z the same: - GxB_MIN_RMINUS_INT8 , GxB_MAX_RMINUS_INT8 , GxB_PLUS_RMINUS_INT8 , GxB_TIMES_RMINUS_INT8 , GxB_ANY_RMINUS_INT8 , - GxB_MIN_RMINUS_INT16 , GxB_MAX_RMINUS_INT16 , GxB_PLUS_RMINUS_INT16 , GxB_TIMES_RMINUS_INT16 , GxB_ANY_RMINUS_INT16 , - GxB_MIN_RMINUS_INT32 , GxB_MAX_RMINUS_INT32 , GxB_PLUS_RMINUS_INT32 , GxB_TIMES_RMINUS_INT32 , GxB_ANY_RMINUS_INT32 , - GxB_MIN_RMINUS_INT64 , GxB_MAX_RMINUS_INT64 , GxB_PLUS_RMINUS_INT64 , GxB_TIMES_RMINUS_INT64 , GxB_ANY_RMINUS_INT64 , - GxB_MIN_RMINUS_UINT8 , GxB_MAX_RMINUS_UINT8 , GxB_PLUS_RMINUS_UINT8 , GxB_TIMES_RMINUS_UINT8 , GxB_ANY_RMINUS_UINT8 , - GxB_MIN_RMINUS_UINT16 , GxB_MAX_RMINUS_UINT16 , GxB_PLUS_RMINUS_UINT16 , GxB_TIMES_RMINUS_UINT16, GxB_ANY_RMINUS_UINT16 , - GxB_MIN_RMINUS_UINT32 , GxB_MAX_RMINUS_UINT32 , GxB_PLUS_RMINUS_UINT32 , GxB_TIMES_RMINUS_UINT32, GxB_ANY_RMINUS_UINT32 , - GxB_MIN_RMINUS_UINT64 , GxB_MAX_RMINUS_UINT64 , GxB_PLUS_RMINUS_UINT64 , GxB_TIMES_RMINUS_UINT64, GxB_ANY_RMINUS_UINT64 , - GxB_MIN_RMINUS_FP32 , GxB_MAX_RMINUS_FP32 , GxB_PLUS_RMINUS_FP32 , GxB_TIMES_RMINUS_FP32 , GxB_ANY_RMINUS_FP32 , - GxB_MIN_RMINUS_FP64 , GxB_MAX_RMINUS_FP64 , GxB_PLUS_RMINUS_FP64 , GxB_TIMES_RMINUS_FP64 , GxB_ANY_RMINUS_FP64 , +GrB_Info GrB_Matrix_select_BOOL // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + bool y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISEQ (x,y), all types x,y,z the same: - GxB_MIN_ISEQ_INT8 , GxB_MAX_ISEQ_INT8 , GxB_PLUS_ISEQ_INT8 , GxB_TIMES_ISEQ_INT8 , GxB_ANY_ISEQ_INT8 , - GxB_MIN_ISEQ_INT16 , GxB_MAX_ISEQ_INT16 , GxB_PLUS_ISEQ_INT16 , GxB_TIMES_ISEQ_INT16 , GxB_ANY_ISEQ_INT16 , - GxB_MIN_ISEQ_INT32 , GxB_MAX_ISEQ_INT32 , GxB_PLUS_ISEQ_INT32 , GxB_TIMES_ISEQ_INT32 , GxB_ANY_ISEQ_INT32 , - GxB_MIN_ISEQ_INT64 , GxB_MAX_ISEQ_INT64 , GxB_PLUS_ISEQ_INT64 , GxB_TIMES_ISEQ_INT64 , GxB_ANY_ISEQ_INT64 , - GxB_MIN_ISEQ_UINT8 , GxB_MAX_ISEQ_UINT8 , GxB_PLUS_ISEQ_UINT8 , GxB_TIMES_ISEQ_UINT8 , GxB_ANY_ISEQ_UINT8 , - GxB_MIN_ISEQ_UINT16 , GxB_MAX_ISEQ_UINT16 , GxB_PLUS_ISEQ_UINT16 , GxB_TIMES_ISEQ_UINT16 , GxB_ANY_ISEQ_UINT16 , - GxB_MIN_ISEQ_UINT32 , GxB_MAX_ISEQ_UINT32 , GxB_PLUS_ISEQ_UINT32 , GxB_TIMES_ISEQ_UINT32 , GxB_ANY_ISEQ_UINT32 , - GxB_MIN_ISEQ_UINT64 , GxB_MAX_ISEQ_UINT64 , GxB_PLUS_ISEQ_UINT64 , GxB_TIMES_ISEQ_UINT64 , GxB_ANY_ISEQ_UINT64 , - GxB_MIN_ISEQ_FP32 , GxB_MAX_ISEQ_FP32 , GxB_PLUS_ISEQ_FP32 , GxB_TIMES_ISEQ_FP32 , GxB_ANY_ISEQ_FP32 , - GxB_MIN_ISEQ_FP64 , GxB_MAX_ISEQ_FP64 , GxB_PLUS_ISEQ_FP64 , GxB_TIMES_ISEQ_FP64 , GxB_ANY_ISEQ_FP64 , +GrB_Info GrB_Matrix_select_INT8 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; + +GrB_Info GrB_Matrix_select_INT16 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISNE (x,y), all types x,y,z the same: - GxB_MIN_ISNE_INT8 , GxB_MAX_ISNE_INT8 , GxB_PLUS_ISNE_INT8 , GxB_TIMES_ISNE_INT8 , GxB_ANY_ISNE_INT8 , - GxB_MIN_ISNE_INT16 , GxB_MAX_ISNE_INT16 , GxB_PLUS_ISNE_INT16 , GxB_TIMES_ISNE_INT16 , GxB_ANY_ISNE_INT16 , - GxB_MIN_ISNE_INT32 , GxB_MAX_ISNE_INT32 , GxB_PLUS_ISNE_INT32 , GxB_TIMES_ISNE_INT32 , GxB_ANY_ISNE_INT32 , - GxB_MIN_ISNE_INT64 , GxB_MAX_ISNE_INT64 , GxB_PLUS_ISNE_INT64 , GxB_TIMES_ISNE_INT64 , GxB_ANY_ISNE_INT64 , - GxB_MIN_ISNE_UINT8 , GxB_MAX_ISNE_UINT8 , GxB_PLUS_ISNE_UINT8 , GxB_TIMES_ISNE_UINT8 , GxB_ANY_ISNE_UINT8 , - GxB_MIN_ISNE_UINT16 , GxB_MAX_ISNE_UINT16 , GxB_PLUS_ISNE_UINT16 , GxB_TIMES_ISNE_UINT16 , GxB_ANY_ISNE_UINT16 , - GxB_MIN_ISNE_UINT32 , GxB_MAX_ISNE_UINT32 , GxB_PLUS_ISNE_UINT32 , GxB_TIMES_ISNE_UINT32 , GxB_ANY_ISNE_UINT32 , - GxB_MIN_ISNE_UINT64 , GxB_MAX_ISNE_UINT64 , GxB_PLUS_ISNE_UINT64 , GxB_TIMES_ISNE_UINT64 , GxB_ANY_ISNE_UINT64 , - GxB_MIN_ISNE_FP32 , GxB_MAX_ISNE_FP32 , GxB_PLUS_ISNE_FP32 , GxB_TIMES_ISNE_FP32 , GxB_ANY_ISNE_FP32 , - GxB_MIN_ISNE_FP64 , GxB_MAX_ISNE_FP64 , GxB_PLUS_ISNE_FP64 , GxB_TIMES_ISNE_FP64 , GxB_ANY_ISNE_FP64 , +GrB_Info GrB_Matrix_select_INT32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISGT (x,y), all types x,y,z the same: - GxB_MIN_ISGT_INT8 , GxB_MAX_ISGT_INT8 , GxB_PLUS_ISGT_INT8 , GxB_TIMES_ISGT_INT8 , GxB_ANY_ISGT_INT8 , - GxB_MIN_ISGT_INT16 , GxB_MAX_ISGT_INT16 , GxB_PLUS_ISGT_INT16 , GxB_TIMES_ISGT_INT16 , GxB_ANY_ISGT_INT16 , - GxB_MIN_ISGT_INT32 , GxB_MAX_ISGT_INT32 , GxB_PLUS_ISGT_INT32 , GxB_TIMES_ISGT_INT32 , GxB_ANY_ISGT_INT32 , - GxB_MIN_ISGT_INT64 , GxB_MAX_ISGT_INT64 , GxB_PLUS_ISGT_INT64 , GxB_TIMES_ISGT_INT64 , GxB_ANY_ISGT_INT64 , - GxB_MIN_ISGT_UINT8 , GxB_MAX_ISGT_UINT8 , GxB_PLUS_ISGT_UINT8 , GxB_TIMES_ISGT_UINT8 , GxB_ANY_ISGT_UINT8 , - GxB_MIN_ISGT_UINT16 , GxB_MAX_ISGT_UINT16 , GxB_PLUS_ISGT_UINT16 , GxB_TIMES_ISGT_UINT16 , GxB_ANY_ISGT_UINT16 , - GxB_MIN_ISGT_UINT32 , GxB_MAX_ISGT_UINT32 , GxB_PLUS_ISGT_UINT32 , GxB_TIMES_ISGT_UINT32 , GxB_ANY_ISGT_UINT32 , - GxB_MIN_ISGT_UINT64 , GxB_MAX_ISGT_UINT64 , GxB_PLUS_ISGT_UINT64 , GxB_TIMES_ISGT_UINT64 , GxB_ANY_ISGT_UINT64 , - GxB_MIN_ISGT_FP32 , GxB_MAX_ISGT_FP32 , GxB_PLUS_ISGT_FP32 , GxB_TIMES_ISGT_FP32 , GxB_ANY_ISGT_FP32 , - GxB_MIN_ISGT_FP64 , GxB_MAX_ISGT_FP64 , GxB_PLUS_ISGT_FP64 , GxB_TIMES_ISGT_FP64 , GxB_ANY_ISGT_FP64 , +GrB_Info GrB_Matrix_select_INT64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISLT (x,y), all types x,y,z the same: - GxB_MIN_ISLT_INT8 , GxB_MAX_ISLT_INT8 , GxB_PLUS_ISLT_INT8 , GxB_TIMES_ISLT_INT8 , GxB_ANY_ISLT_INT8 , - GxB_MIN_ISLT_INT16 , GxB_MAX_ISLT_INT16 , GxB_PLUS_ISLT_INT16 , GxB_TIMES_ISLT_INT16 , GxB_ANY_ISLT_INT16 , - GxB_MIN_ISLT_INT32 , GxB_MAX_ISLT_INT32 , GxB_PLUS_ISLT_INT32 , GxB_TIMES_ISLT_INT32 , GxB_ANY_ISLT_INT32 , - GxB_MIN_ISLT_INT64 , GxB_MAX_ISLT_INT64 , GxB_PLUS_ISLT_INT64 , GxB_TIMES_ISLT_INT64 , GxB_ANY_ISLT_INT64 , - GxB_MIN_ISLT_UINT8 , GxB_MAX_ISLT_UINT8 , GxB_PLUS_ISLT_UINT8 , GxB_TIMES_ISLT_UINT8 , GxB_ANY_ISLT_UINT8 , - GxB_MIN_ISLT_UINT16 , GxB_MAX_ISLT_UINT16 , GxB_PLUS_ISLT_UINT16 , GxB_TIMES_ISLT_UINT16 , GxB_ANY_ISLT_UINT16 , - GxB_MIN_ISLT_UINT32 , GxB_MAX_ISLT_UINT32 , GxB_PLUS_ISLT_UINT32 , GxB_TIMES_ISLT_UINT32 , GxB_ANY_ISLT_UINT32 , - GxB_MIN_ISLT_UINT64 , GxB_MAX_ISLT_UINT64 , GxB_PLUS_ISLT_UINT64 , GxB_TIMES_ISLT_UINT64 , GxB_ANY_ISLT_UINT64 , - GxB_MIN_ISLT_FP32 , GxB_MAX_ISLT_FP32 , GxB_PLUS_ISLT_FP32 , GxB_TIMES_ISLT_FP32 , GxB_ANY_ISLT_FP32 , - GxB_MIN_ISLT_FP64 , GxB_MAX_ISLT_FP64 , GxB_PLUS_ISLT_FP64 , GxB_TIMES_ISLT_FP64 , GxB_ANY_ISLT_FP64 , +GrB_Info GrB_Matrix_select_UINT8 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISGE (x,y), all types x,y,z the same: - GxB_MIN_ISGE_INT8 , GxB_MAX_ISGE_INT8 , GxB_PLUS_ISGE_INT8 , GxB_TIMES_ISGE_INT8 , GxB_ANY_ISGE_INT8 , - GxB_MIN_ISGE_INT16 , GxB_MAX_ISGE_INT16 , GxB_PLUS_ISGE_INT16 , GxB_TIMES_ISGE_INT16 , GxB_ANY_ISGE_INT16 , - GxB_MIN_ISGE_INT32 , GxB_MAX_ISGE_INT32 , GxB_PLUS_ISGE_INT32 , GxB_TIMES_ISGE_INT32 , GxB_ANY_ISGE_INT32 , - GxB_MIN_ISGE_INT64 , GxB_MAX_ISGE_INT64 , GxB_PLUS_ISGE_INT64 , GxB_TIMES_ISGE_INT64 , GxB_ANY_ISGE_INT64 , - GxB_MIN_ISGE_UINT8 , GxB_MAX_ISGE_UINT8 , GxB_PLUS_ISGE_UINT8 , GxB_TIMES_ISGE_UINT8 , GxB_ANY_ISGE_UINT8 , - GxB_MIN_ISGE_UINT16 , GxB_MAX_ISGE_UINT16 , GxB_PLUS_ISGE_UINT16 , GxB_TIMES_ISGE_UINT16 , GxB_ANY_ISGE_UINT16 , - GxB_MIN_ISGE_UINT32 , GxB_MAX_ISGE_UINT32 , GxB_PLUS_ISGE_UINT32 , GxB_TIMES_ISGE_UINT32 , GxB_ANY_ISGE_UINT32 , - GxB_MIN_ISGE_UINT64 , GxB_MAX_ISGE_UINT64 , GxB_PLUS_ISGE_UINT64 , GxB_TIMES_ISGE_UINT64 , GxB_ANY_ISGE_UINT64 , - GxB_MIN_ISGE_FP32 , GxB_MAX_ISGE_FP32 , GxB_PLUS_ISGE_FP32 , GxB_TIMES_ISGE_FP32 , GxB_ANY_ISGE_FP32 , - GxB_MIN_ISGE_FP64 , GxB_MAX_ISGE_FP64 , GxB_PLUS_ISGE_FP64 , GxB_TIMES_ISGE_FP64 , GxB_ANY_ISGE_FP64 , +GrB_Info GrB_Matrix_select_UINT16 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISLE (x,y), all types x,y,z the same: - GxB_MIN_ISLE_INT8 , GxB_MAX_ISLE_INT8 , GxB_PLUS_ISLE_INT8 , GxB_TIMES_ISLE_INT8 , GxB_ANY_ISLE_INT8 , - GxB_MIN_ISLE_INT16 , GxB_MAX_ISLE_INT16 , GxB_PLUS_ISLE_INT16 , GxB_TIMES_ISLE_INT16 , GxB_ANY_ISLE_INT16 , - GxB_MIN_ISLE_INT32 , GxB_MAX_ISLE_INT32 , GxB_PLUS_ISLE_INT32 , GxB_TIMES_ISLE_INT32 , GxB_ANY_ISLE_INT32 , - GxB_MIN_ISLE_INT64 , GxB_MAX_ISLE_INT64 , GxB_PLUS_ISLE_INT64 , GxB_TIMES_ISLE_INT64 , GxB_ANY_ISLE_INT64 , - GxB_MIN_ISLE_UINT8 , GxB_MAX_ISLE_UINT8 , GxB_PLUS_ISLE_UINT8 , GxB_TIMES_ISLE_UINT8 , GxB_ANY_ISLE_UINT8 , - GxB_MIN_ISLE_UINT16 , GxB_MAX_ISLE_UINT16 , GxB_PLUS_ISLE_UINT16 , GxB_TIMES_ISLE_UINT16 , GxB_ANY_ISLE_UINT16 , - GxB_MIN_ISLE_UINT32 , GxB_MAX_ISLE_UINT32 , GxB_PLUS_ISLE_UINT32 , GxB_TIMES_ISLE_UINT32 , GxB_ANY_ISLE_UINT32 , - GxB_MIN_ISLE_UINT64 , GxB_MAX_ISLE_UINT64 , GxB_PLUS_ISLE_UINT64 , GxB_TIMES_ISLE_UINT64 , GxB_ANY_ISLE_UINT64 , - GxB_MIN_ISLE_FP32 , GxB_MAX_ISLE_FP32 , GxB_PLUS_ISLE_FP32 , GxB_TIMES_ISLE_FP32 , GxB_ANY_ISLE_FP32 , - GxB_MIN_ISLE_FP64 , GxB_MAX_ISLE_FP64 , GxB_PLUS_ISLE_FP64 , GxB_TIMES_ISLE_FP64 , GxB_ANY_ISLE_FP64 , +GrB_Info GrB_Matrix_select_UINT32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = LOR (x,y), all types x,y,z the same: - GxB_MIN_LOR_INT8 , GxB_MAX_LOR_INT8 , GxB_PLUS_LOR_INT8 , GxB_TIMES_LOR_INT8 , GxB_ANY_LOR_INT8 , - GxB_MIN_LOR_INT16 , GxB_MAX_LOR_INT16 , GxB_PLUS_LOR_INT16 , GxB_TIMES_LOR_INT16 , GxB_ANY_LOR_INT16 , - GxB_MIN_LOR_INT32 , GxB_MAX_LOR_INT32 , GxB_PLUS_LOR_INT32 , GxB_TIMES_LOR_INT32 , GxB_ANY_LOR_INT32 , - GxB_MIN_LOR_INT64 , GxB_MAX_LOR_INT64 , GxB_PLUS_LOR_INT64 , GxB_TIMES_LOR_INT64 , GxB_ANY_LOR_INT64 , - GxB_MIN_LOR_UINT8 , GxB_MAX_LOR_UINT8 , GxB_PLUS_LOR_UINT8 , GxB_TIMES_LOR_UINT8 , GxB_ANY_LOR_UINT8 , - GxB_MIN_LOR_UINT16 , GxB_MAX_LOR_UINT16 , GxB_PLUS_LOR_UINT16 , GxB_TIMES_LOR_UINT16 , GxB_ANY_LOR_UINT16 , - GxB_MIN_LOR_UINT32 , GxB_MAX_LOR_UINT32 , GxB_PLUS_LOR_UINT32 , GxB_TIMES_LOR_UINT32 , GxB_ANY_LOR_UINT32 , - GxB_MIN_LOR_UINT64 , GxB_MAX_LOR_UINT64 , GxB_PLUS_LOR_UINT64 , GxB_TIMES_LOR_UINT64 , GxB_ANY_LOR_UINT64 , - GxB_MIN_LOR_FP32 , GxB_MAX_LOR_FP32 , GxB_PLUS_LOR_FP32 , GxB_TIMES_LOR_FP32 , GxB_ANY_LOR_FP32 , - GxB_MIN_LOR_FP64 , GxB_MAX_LOR_FP64 , GxB_PLUS_LOR_FP64 , GxB_TIMES_LOR_FP64 , GxB_ANY_LOR_FP64 , +GrB_Info GrB_Matrix_select_UINT64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = LAND (x,y), all types x,y,z the same: - GxB_MIN_LAND_INT8 , GxB_MAX_LAND_INT8 , GxB_PLUS_LAND_INT8 , GxB_TIMES_LAND_INT8 , GxB_ANY_LAND_INT8 , - GxB_MIN_LAND_INT16 , GxB_MAX_LAND_INT16 , GxB_PLUS_LAND_INT16 , GxB_TIMES_LAND_INT16 , GxB_ANY_LAND_INT16 , - GxB_MIN_LAND_INT32 , GxB_MAX_LAND_INT32 , GxB_PLUS_LAND_INT32 , GxB_TIMES_LAND_INT32 , GxB_ANY_LAND_INT32 , - GxB_MIN_LAND_INT64 , GxB_MAX_LAND_INT64 , GxB_PLUS_LAND_INT64 , GxB_TIMES_LAND_INT64 , GxB_ANY_LAND_INT64 , - GxB_MIN_LAND_UINT8 , GxB_MAX_LAND_UINT8 , GxB_PLUS_LAND_UINT8 , GxB_TIMES_LAND_UINT8 , GxB_ANY_LAND_UINT8 , - GxB_MIN_LAND_UINT16 , GxB_MAX_LAND_UINT16 , GxB_PLUS_LAND_UINT16 , GxB_TIMES_LAND_UINT16 , GxB_ANY_LAND_UINT16 , - GxB_MIN_LAND_UINT32 , GxB_MAX_LAND_UINT32 , GxB_PLUS_LAND_UINT32 , GxB_TIMES_LAND_UINT32 , GxB_ANY_LAND_UINT32 , - GxB_MIN_LAND_UINT64 , GxB_MAX_LAND_UINT64 , GxB_PLUS_LAND_UINT64 , GxB_TIMES_LAND_UINT64 , GxB_ANY_LAND_UINT64 , - GxB_MIN_LAND_FP32 , GxB_MAX_LAND_FP32 , GxB_PLUS_LAND_FP32 , GxB_TIMES_LAND_FP32 , GxB_ANY_LAND_FP32 , - GxB_MIN_LAND_FP64 , GxB_MAX_LAND_FP64 , GxB_PLUS_LAND_FP64 , GxB_TIMES_LAND_FP64 , GxB_ANY_LAND_FP64 , +GrB_Info GrB_Matrix_select_FP32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + float y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = LXOR (x,y), all types x,y,z the same: - GxB_MIN_LXOR_INT8 , GxB_MAX_LXOR_INT8 , GxB_PLUS_LXOR_INT8 , GxB_TIMES_LXOR_INT8 , GxB_ANY_LXOR_INT8 , - GxB_MIN_LXOR_INT16 , GxB_MAX_LXOR_INT16 , GxB_PLUS_LXOR_INT16 , GxB_TIMES_LXOR_INT16 , GxB_ANY_LXOR_INT16 , - GxB_MIN_LXOR_INT32 , GxB_MAX_LXOR_INT32 , GxB_PLUS_LXOR_INT32 , GxB_TIMES_LXOR_INT32 , GxB_ANY_LXOR_INT32 , - GxB_MIN_LXOR_INT64 , GxB_MAX_LXOR_INT64 , GxB_PLUS_LXOR_INT64 , GxB_TIMES_LXOR_INT64 , GxB_ANY_LXOR_INT64 , - GxB_MIN_LXOR_UINT8 , GxB_MAX_LXOR_UINT8 , GxB_PLUS_LXOR_UINT8 , GxB_TIMES_LXOR_UINT8 , GxB_ANY_LXOR_UINT8 , - GxB_MIN_LXOR_UINT16 , GxB_MAX_LXOR_UINT16 , GxB_PLUS_LXOR_UINT16 , GxB_TIMES_LXOR_UINT16 , GxB_ANY_LXOR_UINT16 , - GxB_MIN_LXOR_UINT32 , GxB_MAX_LXOR_UINT32 , GxB_PLUS_LXOR_UINT32 , GxB_TIMES_LXOR_UINT32 , GxB_ANY_LXOR_UINT32 , - GxB_MIN_LXOR_UINT64 , GxB_MAX_LXOR_UINT64 , GxB_PLUS_LXOR_UINT64 , GxB_TIMES_LXOR_UINT64 , GxB_ANY_LXOR_UINT64 , - GxB_MIN_LXOR_FP32 , GxB_MAX_LXOR_FP32 , GxB_PLUS_LXOR_FP32 , GxB_TIMES_LXOR_FP32 , GxB_ANY_LXOR_FP32 , - GxB_MIN_LXOR_FP64 , GxB_MAX_LXOR_FP64 , GxB_PLUS_LXOR_FP64 , GxB_TIMES_LXOR_FP64 , GxB_ANY_LXOR_FP64 , +GrB_Info GrB_Matrix_select_FP64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + double y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; -//------------------------------------------------------------------------------ -// 300 semirings with a comparator TxT -> bool, where T is non-Boolean -//------------------------------------------------------------------------------ +GrB_Info GxB_Matrix_select_FC32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // In the 4th column the GxB_EQ_*_* semirings could also be called - // GxB_LXNOR_*_*, since the EQ and LXNOR boolean operators are identical - // but those names are not included. +GrB_Info GxB_Matrix_select_FC64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = EQ (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_EQ_INT8 , GxB_LAND_EQ_INT8 , GxB_LXOR_EQ_INT8 , GxB_EQ_EQ_INT8 , GxB_ANY_EQ_INT8 , - GxB_LOR_EQ_INT16 , GxB_LAND_EQ_INT16 , GxB_LXOR_EQ_INT16 , GxB_EQ_EQ_INT16 , GxB_ANY_EQ_INT16 , - GxB_LOR_EQ_INT32 , GxB_LAND_EQ_INT32 , GxB_LXOR_EQ_INT32 , GxB_EQ_EQ_INT32 , GxB_ANY_EQ_INT32 , - GxB_LOR_EQ_INT64 , GxB_LAND_EQ_INT64 , GxB_LXOR_EQ_INT64 , GxB_EQ_EQ_INT64 , GxB_ANY_EQ_INT64 , - GxB_LOR_EQ_UINT8 , GxB_LAND_EQ_UINT8 , GxB_LXOR_EQ_UINT8 , GxB_EQ_EQ_UINT8 , GxB_ANY_EQ_UINT8 , - GxB_LOR_EQ_UINT16 , GxB_LAND_EQ_UINT16 , GxB_LXOR_EQ_UINT16 , GxB_EQ_EQ_UINT16 , GxB_ANY_EQ_UINT16 , - GxB_LOR_EQ_UINT32 , GxB_LAND_EQ_UINT32 , GxB_LXOR_EQ_UINT32 , GxB_EQ_EQ_UINT32 , GxB_ANY_EQ_UINT32 , - GxB_LOR_EQ_UINT64 , GxB_LAND_EQ_UINT64 , GxB_LXOR_EQ_UINT64 , GxB_EQ_EQ_UINT64 , GxB_ANY_EQ_UINT64 , - GxB_LOR_EQ_FP32 , GxB_LAND_EQ_FP32 , GxB_LXOR_EQ_FP32 , GxB_EQ_EQ_FP32 , GxB_ANY_EQ_FP32 , - GxB_LOR_EQ_FP64 , GxB_LAND_EQ_FP64 , GxB_LXOR_EQ_FP64 , GxB_EQ_EQ_FP64 , GxB_ANY_EQ_FP64 , +GrB_Info GrB_Matrix_select_UDT // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const void *y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = NE (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_NE_INT8 , GxB_LAND_NE_INT8 , GxB_LXOR_NE_INT8 , GxB_EQ_NE_INT8 , GxB_ANY_NE_INT8 , - GxB_LOR_NE_INT16 , GxB_LAND_NE_INT16 , GxB_LXOR_NE_INT16 , GxB_EQ_NE_INT16 , GxB_ANY_NE_INT16 , - GxB_LOR_NE_INT32 , GxB_LAND_NE_INT32 , GxB_LXOR_NE_INT32 , GxB_EQ_NE_INT32 , GxB_ANY_NE_INT32 , - GxB_LOR_NE_INT64 , GxB_LAND_NE_INT64 , GxB_LXOR_NE_INT64 , GxB_EQ_NE_INT64 , GxB_ANY_NE_INT64 , - GxB_LOR_NE_UINT8 , GxB_LAND_NE_UINT8 , GxB_LXOR_NE_UINT8 , GxB_EQ_NE_UINT8 , GxB_ANY_NE_UINT8 , - GxB_LOR_NE_UINT16 , GxB_LAND_NE_UINT16 , GxB_LXOR_NE_UINT16 , GxB_EQ_NE_UINT16 , GxB_ANY_NE_UINT16 , - GxB_LOR_NE_UINT32 , GxB_LAND_NE_UINT32 , GxB_LXOR_NE_UINT32 , GxB_EQ_NE_UINT32 , GxB_ANY_NE_UINT32 , - GxB_LOR_NE_UINT64 , GxB_LAND_NE_UINT64 , GxB_LXOR_NE_UINT64 , GxB_EQ_NE_UINT64 , GxB_ANY_NE_UINT64 , - GxB_LOR_NE_FP32 , GxB_LAND_NE_FP32 , GxB_LXOR_NE_FP32 , GxB_EQ_NE_FP32 , GxB_ANY_NE_FP32 , - GxB_LOR_NE_FP64 , GxB_LAND_NE_FP64 , GxB_LXOR_NE_FP64 , GxB_EQ_NE_FP64 , GxB_ANY_NE_FP64 , +// GrB_select is a generic method that applies an IndexUnaryOp to +// a matrix or vector, using any type of the scalar y. - // semirings with multiply op: z = GT (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_GT_INT8 , GxB_LAND_GT_INT8 , GxB_LXOR_GT_INT8 , GxB_EQ_GT_INT8 , GxB_ANY_GT_INT8 , - GxB_LOR_GT_INT16 , GxB_LAND_GT_INT16 , GxB_LXOR_GT_INT16 , GxB_EQ_GT_INT16 , GxB_ANY_GT_INT16 , - GxB_LOR_GT_INT32 , GxB_LAND_GT_INT32 , GxB_LXOR_GT_INT32 , GxB_EQ_GT_INT32 , GxB_ANY_GT_INT32 , - GxB_LOR_GT_INT64 , GxB_LAND_GT_INT64 , GxB_LXOR_GT_INT64 , GxB_EQ_GT_INT64 , GxB_ANY_GT_INT64 , - GxB_LOR_GT_UINT8 , GxB_LAND_GT_UINT8 , GxB_LXOR_GT_UINT8 , GxB_EQ_GT_UINT8 , GxB_ANY_GT_UINT8 , - GxB_LOR_GT_UINT16 , GxB_LAND_GT_UINT16 , GxB_LXOR_GT_UINT16 , GxB_EQ_GT_UINT16 , GxB_ANY_GT_UINT16 , - GxB_LOR_GT_UINT32 , GxB_LAND_GT_UINT32 , GxB_LXOR_GT_UINT32 , GxB_EQ_GT_UINT32 , GxB_ANY_GT_UINT32 , - GxB_LOR_GT_UINT64 , GxB_LAND_GT_UINT64 , GxB_LXOR_GT_UINT64 , GxB_EQ_GT_UINT64 , GxB_ANY_GT_UINT64 , - GxB_LOR_GT_FP32 , GxB_LAND_GT_FP32 , GxB_LXOR_GT_FP32 , GxB_EQ_GT_FP32 , GxB_ANY_GT_FP32 , - GxB_LOR_GT_FP64 , GxB_LAND_GT_FP64 , GxB_LXOR_GT_FP64 , GxB_EQ_GT_FP64 , GxB_ANY_GT_FP64 , +// GrB_Vector_select_TYPE (w,m,acc,idxop,u,y,d) +// GrB_Matrix_select_TYPE (C,M,acc,idxop,A,y,d) + +#if GxB_STDC_VERSION >= 201112L +#define GrB_select(C,Mask,accum,op,x,y,d) \ + _Generic \ + ( \ + (C), \ + GrB_Vector : \ + _Generic \ + ( \ + (y), \ + GB_CASES (GrB, Vector_select), \ + default: GrB_Vector_select_Scalar \ + ), \ + GrB_Matrix : \ + _Generic \ + ( \ + (y), \ + GB_CASES (GrB, Matrix_select), \ + default: GrB_Matrix_select_Scalar \ + ) \ + ) \ + (C, Mask, accum, op, x, y, d) +#endif - // semirings with multiply op: z = LT (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_LT_INT8 , GxB_LAND_LT_INT8 , GxB_LXOR_LT_INT8 , GxB_EQ_LT_INT8 , GxB_ANY_LT_INT8 , - GxB_LOR_LT_INT16 , GxB_LAND_LT_INT16 , GxB_LXOR_LT_INT16 , GxB_EQ_LT_INT16 , GxB_ANY_LT_INT16 , - GxB_LOR_LT_INT32 , GxB_LAND_LT_INT32 , GxB_LXOR_LT_INT32 , GxB_EQ_LT_INT32 , GxB_ANY_LT_INT32 , - GxB_LOR_LT_INT64 , GxB_LAND_LT_INT64 , GxB_LXOR_LT_INT64 , GxB_EQ_LT_INT64 , GxB_ANY_LT_INT64 , - GxB_LOR_LT_UINT8 , GxB_LAND_LT_UINT8 , GxB_LXOR_LT_UINT8 , GxB_EQ_LT_UINT8 , GxB_ANY_LT_UINT8 , - GxB_LOR_LT_UINT16 , GxB_LAND_LT_UINT16 , GxB_LXOR_LT_UINT16 , GxB_EQ_LT_UINT16 , GxB_ANY_LT_UINT16 , - GxB_LOR_LT_UINT32 , GxB_LAND_LT_UINT32 , GxB_LXOR_LT_UINT32 , GxB_EQ_LT_UINT32 , GxB_ANY_LT_UINT32 , - GxB_LOR_LT_UINT64 , GxB_LAND_LT_UINT64 , GxB_LXOR_LT_UINT64 , GxB_EQ_LT_UINT64 , GxB_ANY_LT_UINT64 , - GxB_LOR_LT_FP32 , GxB_LAND_LT_FP32 , GxB_LXOR_LT_FP32 , GxB_EQ_LT_FP32 , GxB_ANY_LT_FP32 , - GxB_LOR_LT_FP64 , GxB_LAND_LT_FP64 , GxB_LXOR_LT_FP64 , GxB_EQ_LT_FP64 , GxB_ANY_LT_FP64 , +//============================================================================== +// GxB_select: matrix and vector selection (DEPRECATED: use GrB_select instead) +//============================================================================== - // semirings with multiply op: z = GE (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_GE_INT8 , GxB_LAND_GE_INT8 , GxB_LXOR_GE_INT8 , GxB_EQ_GE_INT8 , GxB_ANY_GE_INT8 , - GxB_LOR_GE_INT16 , GxB_LAND_GE_INT16 , GxB_LXOR_GE_INT16 , GxB_EQ_GE_INT16 , GxB_ANY_GE_INT16 , - GxB_LOR_GE_INT32 , GxB_LAND_GE_INT32 , GxB_LXOR_GE_INT32 , GxB_EQ_GE_INT32 , GxB_ANY_GE_INT32 , - GxB_LOR_GE_INT64 , GxB_LAND_GE_INT64 , GxB_LXOR_GE_INT64 , GxB_EQ_GE_INT64 , GxB_ANY_GE_INT64 , - GxB_LOR_GE_UINT8 , GxB_LAND_GE_UINT8 , GxB_LXOR_GE_UINT8 , GxB_EQ_GE_UINT8 , GxB_ANY_GE_UINT8 , - GxB_LOR_GE_UINT16 , GxB_LAND_GE_UINT16 , GxB_LXOR_GE_UINT16 , GxB_EQ_GE_UINT16 , GxB_ANY_GE_UINT16 , - GxB_LOR_GE_UINT32 , GxB_LAND_GE_UINT32 , GxB_LXOR_GE_UINT32 , GxB_EQ_GE_UINT32 , GxB_ANY_GE_UINT32 , - GxB_LOR_GE_UINT64 , GxB_LAND_GE_UINT64 , GxB_LXOR_GE_UINT64 , GxB_EQ_GE_UINT64 , GxB_ANY_GE_UINT64 , - GxB_LOR_GE_FP32 , GxB_LAND_GE_FP32 , GxB_LXOR_GE_FP32 , GxB_EQ_GE_FP32 , GxB_ANY_GE_FP32 , - GxB_LOR_GE_FP64 , GxB_LAND_GE_FP64 , GxB_LXOR_GE_FP64 , GxB_EQ_GE_FP64 , GxB_ANY_GE_FP64 , +GrB_Info GxB_Vector_select (GrB_Vector w, const GrB_Vector mask, + const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Vector u, + const GrB_Scalar Thunk, const GrB_Descriptor desc) ; +GrB_Info GxB_Matrix_select (GrB_Matrix C, const GrB_Matrix Mask, + const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Matrix A, + const GrB_Scalar Thunk, const GrB_Descriptor desc) ; +#if GxB_STDC_VERSION >= 201112L +#define GxB_select(C,Mask,accum,op,A,Thunk,desc) _Generic \ +((C), GrB_Vector:GxB_Vector_select , GrB_Matrix:GxB_Matrix_select ) \ +(C, Mask, accum, op, A, Thunk, desc) +#endif - // semirings with multiply op: z = LE (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_LE_INT8 , GxB_LAND_LE_INT8 , GxB_LXOR_LE_INT8 , GxB_EQ_LE_INT8 , GxB_ANY_LE_INT8 , - GxB_LOR_LE_INT16 , GxB_LAND_LE_INT16 , GxB_LXOR_LE_INT16 , GxB_EQ_LE_INT16 , GxB_ANY_LE_INT16 , - GxB_LOR_LE_INT32 , GxB_LAND_LE_INT32 , GxB_LXOR_LE_INT32 , GxB_EQ_LE_INT32 , GxB_ANY_LE_INT32 , - GxB_LOR_LE_INT64 , GxB_LAND_LE_INT64 , GxB_LXOR_LE_INT64 , GxB_EQ_LE_INT64 , GxB_ANY_LE_INT64 , - GxB_LOR_LE_UINT8 , GxB_LAND_LE_UINT8 , GxB_LXOR_LE_UINT8 , GxB_EQ_LE_UINT8 , GxB_ANY_LE_UINT8 , - GxB_LOR_LE_UINT16 , GxB_LAND_LE_UINT16 , GxB_LXOR_LE_UINT16 , GxB_EQ_LE_UINT16 , GxB_ANY_LE_UINT16 , - GxB_LOR_LE_UINT32 , GxB_LAND_LE_UINT32 , GxB_LXOR_LE_UINT32 , GxB_EQ_LE_UINT32 , GxB_ANY_LE_UINT32 , - GxB_LOR_LE_UINT64 , GxB_LAND_LE_UINT64 , GxB_LXOR_LE_UINT64 , GxB_EQ_LE_UINT64 , GxB_ANY_LE_UINT64 , - GxB_LOR_LE_FP32 , GxB_LAND_LE_FP32 , GxB_LXOR_LE_FP32 , GxB_EQ_LE_FP32 , GxB_ANY_LE_FP32 , - GxB_LOR_LE_FP64 , GxB_LAND_LE_FP64 , GxB_LXOR_LE_FP64 , GxB_EQ_LE_FP64 , GxB_ANY_LE_FP64 , +//============================================================================== +// GrB_reduce: matrix and vector reduction +//============================================================================== -//------------------------------------------------------------------------------ -// 55 semirings with purely Boolean types, bool x bool -> bool -//------------------------------------------------------------------------------ +// Reduce the entries in a matrix to a vector, a column vector t such that +// t(i) = sum (A (i,:)), and where "sum" is a commutative and associative +// monoid with an identity value. A can be transposed, which reduces down the +// columns instead of the rows. - // Note that lor_pair, land_pair, and eq_pair are all identical to any_pair. - // These 3 are marked below. GxB_EQ_*_BOOL could be called - // GxB_LXNOR_*_BOOL, and GxB_*_EQ_BOOL could be called GxB_*_LXNOR_BOOL, - // but those names are not included. +// For GrB_Matrix_reduce_BinaryOp, the GrB_BinaryOp op must correspond to a +// known built-in monoid: +// +// operator data-types (all built-in) +// ---------------------- --------------------------- +// MIN, MAX INT*, UINT*, FP* +// TIMES, PLUS INT*, UINT*, FP*, FC* +// ANY INT*, UINT*, FP*, FC*, BOOL +// LOR, LAND, LXOR, EQ BOOL +// BOR, BAND, BXOR, BXNOR UINT* - // purely boolean semirings in the form GxB_(add monoid)_(multiply operator)_BOOL: - GxB_LOR_FIRST_BOOL , GxB_LAND_FIRST_BOOL , GxB_LXOR_FIRST_BOOL , GxB_EQ_FIRST_BOOL , GxB_ANY_FIRST_BOOL , - GxB_LOR_SECOND_BOOL , GxB_LAND_SECOND_BOOL , GxB_LXOR_SECOND_BOOL , GxB_EQ_SECOND_BOOL , GxB_ANY_SECOND_BOOL , - GxB_LOR_PAIR_BOOL/**/ , GxB_LAND_PAIR_BOOL/**/ , GxB_LXOR_PAIR_BOOL , GxB_EQ_PAIR_BOOL/**/ , GxB_ANY_PAIR_BOOL , - GxB_LOR_LOR_BOOL , GxB_LAND_LOR_BOOL , GxB_LXOR_LOR_BOOL , GxB_EQ_LOR_BOOL , GxB_ANY_LOR_BOOL , - GxB_LOR_LAND_BOOL , GxB_LAND_LAND_BOOL , GxB_LXOR_LAND_BOOL , GxB_EQ_LAND_BOOL , GxB_ANY_LAND_BOOL , - GxB_LOR_LXOR_BOOL , GxB_LAND_LXOR_BOOL , GxB_LXOR_LXOR_BOOL , GxB_EQ_LXOR_BOOL , GxB_ANY_LXOR_BOOL , - GxB_LOR_EQ_BOOL , GxB_LAND_EQ_BOOL , GxB_LXOR_EQ_BOOL , GxB_EQ_EQ_BOOL , GxB_ANY_EQ_BOOL , - GxB_LOR_GT_BOOL , GxB_LAND_GT_BOOL , GxB_LXOR_GT_BOOL , GxB_EQ_GT_BOOL , GxB_ANY_GT_BOOL , - GxB_LOR_LT_BOOL , GxB_LAND_LT_BOOL , GxB_LXOR_LT_BOOL , GxB_EQ_LT_BOOL , GxB_ANY_LT_BOOL , - GxB_LOR_GE_BOOL , GxB_LAND_GE_BOOL , GxB_LXOR_GE_BOOL , GxB_EQ_GE_BOOL , GxB_ANY_GE_BOOL , - GxB_LOR_LE_BOOL , GxB_LAND_LE_BOOL , GxB_LXOR_LE_BOOL , GxB_EQ_LE_BOOL , GxB_ANY_LE_BOOL , +GrB_Info GrB_Matrix_reduce_Monoid // w = accum (w,reduce(A)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Monoid monoid, // reduce operator for t=reduce(A) + const GrB_Matrix A, // first input: matrix A + const GrB_Descriptor desc // descriptor for w, mask, and A +) ; + +GrB_Info GrB_Matrix_reduce_BinaryOp // w = accum (w,reduce(A)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // reduce operator for t=reduce(A) + const GrB_Matrix A, // first input: matrix A + const GrB_Descriptor desc // descriptor for w, mask, and A +) ; //------------------------------------------------------------------------------ -// 54 complex semirings +// reduce a vector to a scalar //------------------------------------------------------------------------------ - // 3 monoids (plus, times, any), 2 types (FC32 and FC64), and 9 - // multiplicative operators. +// Reduce entries in a vector to a scalar, c = accum (c, reduce_to_scalar(u)) - // Note that times_pair is identical to any_pair. - // These 2 are marked below. +GrB_Info GrB_Vector_reduce_BOOL // c = accum (c, reduce_to_scalar (u)) +( + bool *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_FIRST_FC32 , GxB_TIMES_FIRST_FC32 , GxB_ANY_FIRST_FC32 , - GxB_PLUS_FIRST_FC64 , GxB_TIMES_FIRST_FC64 , GxB_ANY_FIRST_FC64 , +GrB_Info GrB_Vector_reduce_INT8 // c = accum (c, reduce_to_scalar (u)) +( + int8_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_SECOND_FC32 , GxB_TIMES_SECOND_FC32 , GxB_ANY_SECOND_FC32 , - GxB_PLUS_SECOND_FC64 , GxB_TIMES_SECOND_FC64 , GxB_ANY_SECOND_FC64 , +GrB_Info GrB_Vector_reduce_UINT8 // c = accum (c, reduce_to_scalar (u)) +( + uint8_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_PAIR_FC32 , GxB_TIMES_PAIR_FC32/**/, GxB_ANY_PAIR_FC32 , - GxB_PLUS_PAIR_FC64 , GxB_TIMES_PAIR_FC64/**/, GxB_ANY_PAIR_FC64 , +GrB_Info GrB_Vector_reduce_INT16 // c = accum (c, reduce_to_scalar (u)) +( + int16_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_PLUS_FC32 , GxB_TIMES_PLUS_FC32 , GxB_ANY_PLUS_FC32 , - GxB_PLUS_PLUS_FC64 , GxB_TIMES_PLUS_FC64 , GxB_ANY_PLUS_FC64 , +GrB_Info GrB_Vector_reduce_UINT16 // c = accum (c, reduce_to_scalar (u)) +( + uint16_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_MINUS_FC32 , GxB_TIMES_MINUS_FC32 , GxB_ANY_MINUS_FC32 , - GxB_PLUS_MINUS_FC64 , GxB_TIMES_MINUS_FC64 , GxB_ANY_MINUS_FC64 , +GrB_Info GrB_Vector_reduce_INT32 // c = accum (c, reduce_to_scalar (u)) +( + int32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_TIMES_FC32 , GxB_TIMES_TIMES_FC32 , GxB_ANY_TIMES_FC32 , - GxB_PLUS_TIMES_FC64 , GxB_TIMES_TIMES_FC64 , GxB_ANY_TIMES_FC64 , +GrB_Info GrB_Vector_reduce_UINT32 // c = accum (c, reduce_to_scalar (u)) +( + uint32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_DIV_FC32 , GxB_TIMES_DIV_FC32 , GxB_ANY_DIV_FC32 , - GxB_PLUS_DIV_FC64 , GxB_TIMES_DIV_FC64 , GxB_ANY_DIV_FC64 , +GrB_Info GrB_Vector_reduce_INT64 // c = accum (c, reduce_to_scalar (u)) +( + int64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_RDIV_FC32 , GxB_TIMES_RDIV_FC32 , GxB_ANY_RDIV_FC32 , - GxB_PLUS_RDIV_FC64 , GxB_TIMES_RDIV_FC64 , GxB_ANY_RDIV_FC64 , +GrB_Info GrB_Vector_reduce_UINT64 // c = accum (c, reduce_to_scalar (u)) +( + uint64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_RMINUS_FC32 , GxB_TIMES_RMINUS_FC32 , GxB_ANY_RMINUS_FC32 , - GxB_PLUS_RMINUS_FC64 , GxB_TIMES_RMINUS_FC64 , GxB_ANY_RMINUS_FC64 , +GrB_Info GrB_Vector_reduce_FP32 // c = accum (c, reduce_to_scalar (u)) +( + float *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; -//------------------------------------------------------------------------------ -// 64 bitwise semirings -//------------------------------------------------------------------------------ +GrB_Info GrB_Vector_reduce_FP64 // c = accum (c, reduce_to_scalar (u)) +( + double *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - // monoids: (BOR, BAND, BXOR, BXNOR) x - // mult: (BOR, BAND, BXOR, BXNOR) x - // types: (UINT8, UINT16, UINT32, UINT64) +GrB_Info GxB_Vector_reduce_FC32 // c = accum (c, reduce_to_scalar (u)) +( + GxB_FC32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_BOR_BOR_UINT8 , GxB_BOR_BOR_UINT16 , GxB_BOR_BOR_UINT32 , GxB_BOR_BOR_UINT64 , - GxB_BOR_BAND_UINT8 , GxB_BOR_BAND_UINT16 , GxB_BOR_BAND_UINT32 , GxB_BOR_BAND_UINT64 , - GxB_BOR_BXOR_UINT8 , GxB_BOR_BXOR_UINT16 , GxB_BOR_BXOR_UINT32 , GxB_BOR_BXOR_UINT64 , - GxB_BOR_BXNOR_UINT8 , GxB_BOR_BXNOR_UINT16 , GxB_BOR_BXNOR_UINT32 , GxB_BOR_BXNOR_UINT64 , +GrB_Info GxB_Vector_reduce_FC64 // c = accum (c, reduce_to_scalar (u)) +( + GxB_FC64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_BAND_BOR_UINT8 , GxB_BAND_BOR_UINT16 , GxB_BAND_BOR_UINT32 , GxB_BAND_BOR_UINT64 , - GxB_BAND_BAND_UINT8 , GxB_BAND_BAND_UINT16 , GxB_BAND_BAND_UINT32 , GxB_BAND_BAND_UINT64 , - GxB_BAND_BXOR_UINT8 , GxB_BAND_BXOR_UINT16 , GxB_BAND_BXOR_UINT32 , GxB_BAND_BXOR_UINT64 , - GxB_BAND_BXNOR_UINT8 , GxB_BAND_BXNOR_UINT16 , GxB_BAND_BXNOR_UINT32 , GxB_BAND_BXNOR_UINT64 , +GrB_Info GrB_Vector_reduce_UDT // c = accum (c, reduce_to_scalar (u)) +( + void *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_BXOR_BOR_UINT8 , GxB_BXOR_BOR_UINT16 , GxB_BXOR_BOR_UINT32 , GxB_BXOR_BOR_UINT64 , - GxB_BXOR_BAND_UINT8 , GxB_BXOR_BAND_UINT16 , GxB_BXOR_BAND_UINT32 , GxB_BXOR_BAND_UINT64 , - GxB_BXOR_BXOR_UINT8 , GxB_BXOR_BXOR_UINT16 , GxB_BXOR_BXOR_UINT32 , GxB_BXOR_BXOR_UINT64 , - GxB_BXOR_BXNOR_UINT8 , GxB_BXOR_BXNOR_UINT16 , GxB_BXOR_BXNOR_UINT32 , GxB_BXOR_BXNOR_UINT64 , +GrB_Info GrB_Vector_reduce_Monoid_Scalar // c = accum(c,reduce_to_scalar(u)) +( + GrB_Scalar c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_BXNOR_BOR_UINT8 , GxB_BXNOR_BOR_UINT16 , GxB_BXNOR_BOR_UINT32 , GxB_BXNOR_BOR_UINT64 , - GxB_BXNOR_BAND_UINT8 , GxB_BXNOR_BAND_UINT16 , GxB_BXNOR_BAND_UINT32 , GxB_BXNOR_BAND_UINT64 , - GxB_BXNOR_BXOR_UINT8 , GxB_BXNOR_BXOR_UINT16 , GxB_BXNOR_BXOR_UINT32 , GxB_BXNOR_BXOR_UINT64 , - GxB_BXNOR_BXNOR_UINT8 , GxB_BXNOR_BXNOR_UINT16 , GxB_BXNOR_BXNOR_UINT32 , GxB_BXNOR_BXNOR_UINT64 , +GrB_Info GrB_Vector_reduce_BinaryOp_Scalar +( + GrB_Scalar c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_BinaryOp op, // binary op to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; //------------------------------------------------------------------------------ -// 80 positional semirings +// reduce a matrix to a scalar //------------------------------------------------------------------------------ - // monoids: (MIN, MAX, ANY, PLUS, TIMES) x - // mult: (FIRSTI, FIRSTI1, FIRSTJ, FIRSTJ1, SECONDI, SECONDI1, SECONDJ, SECONDJ1) - // types: (INT32, INT64) - - GxB_MIN_FIRSTI_INT32, GxB_MIN_FIRSTI_INT64, - GxB_MAX_FIRSTI_INT32, GxB_MAX_FIRSTI_INT64, - GxB_ANY_FIRSTI_INT32, GxB_ANY_FIRSTI_INT64, - GxB_PLUS_FIRSTI_INT32, GxB_PLUS_FIRSTI_INT64, - GxB_TIMES_FIRSTI_INT32, GxB_TIMES_FIRSTI_INT64, - - GxB_MIN_FIRSTI1_INT32, GxB_MIN_FIRSTI1_INT64, - GxB_MAX_FIRSTI1_INT32, GxB_MAX_FIRSTI1_INT64, - GxB_ANY_FIRSTI1_INT32, GxB_ANY_FIRSTI1_INT64, - GxB_PLUS_FIRSTI1_INT32, GxB_PLUS_FIRSTI1_INT64, - GxB_TIMES_FIRSTI1_INT32, GxB_TIMES_FIRSTI1_INT64, - - GxB_MIN_FIRSTJ_INT32, GxB_MIN_FIRSTJ_INT64, - GxB_MAX_FIRSTJ_INT32, GxB_MAX_FIRSTJ_INT64, - GxB_ANY_FIRSTJ_INT32, GxB_ANY_FIRSTJ_INT64, - GxB_PLUS_FIRSTJ_INT32, GxB_PLUS_FIRSTJ_INT64, - GxB_TIMES_FIRSTJ_INT32, GxB_TIMES_FIRSTJ_INT64, - - GxB_MIN_FIRSTJ1_INT32, GxB_MIN_FIRSTJ1_INT64, - GxB_MAX_FIRSTJ1_INT32, GxB_MAX_FIRSTJ1_INT64, - GxB_ANY_FIRSTJ1_INT32, GxB_ANY_FIRSTJ1_INT64, - GxB_PLUS_FIRSTJ1_INT32, GxB_PLUS_FIRSTJ1_INT64, - GxB_TIMES_FIRSTJ1_INT32, GxB_TIMES_FIRSTJ1_INT64, - - GxB_MIN_SECONDI_INT32, GxB_MIN_SECONDI_INT64, - GxB_MAX_SECONDI_INT32, GxB_MAX_SECONDI_INT64, - GxB_ANY_SECONDI_INT32, GxB_ANY_SECONDI_INT64, - GxB_PLUS_SECONDI_INT32, GxB_PLUS_SECONDI_INT64, - GxB_TIMES_SECONDI_INT32, GxB_TIMES_SECONDI_INT64, +// Reduce entries in a matrix to a scalar, c = accum (c, reduce_to_scalar(A)) - GxB_MIN_SECONDI1_INT32, GxB_MIN_SECONDI1_INT64, - GxB_MAX_SECONDI1_INT32, GxB_MAX_SECONDI1_INT64, - GxB_ANY_SECONDI1_INT32, GxB_ANY_SECONDI1_INT64, - GxB_PLUS_SECONDI1_INT32, GxB_PLUS_SECONDI1_INT64, - GxB_TIMES_SECONDI1_INT32, GxB_TIMES_SECONDI1_INT64, +GrB_Info GrB_Matrix_reduce_BOOL // c = accum (c, reduce_to_scalar (A)) +( + bool *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - GxB_MIN_SECONDJ_INT32, GxB_MIN_SECONDJ_INT64, - GxB_MAX_SECONDJ_INT32, GxB_MAX_SECONDJ_INT64, - GxB_ANY_SECONDJ_INT32, GxB_ANY_SECONDJ_INT64, - GxB_PLUS_SECONDJ_INT32, GxB_PLUS_SECONDJ_INT64, - GxB_TIMES_SECONDJ_INT32, GxB_TIMES_SECONDJ_INT64, +GrB_Info GrB_Matrix_reduce_INT8 // c = accum (c, reduce_to_scalar (A)) +( + int8_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - GxB_MIN_SECONDJ1_INT32, GxB_MIN_SECONDJ1_INT64, - GxB_MAX_SECONDJ1_INT32, GxB_MAX_SECONDJ1_INT64, - GxB_ANY_SECONDJ1_INT32, GxB_ANY_SECONDJ1_INT64, - GxB_PLUS_SECONDJ1_INT32, GxB_PLUS_SECONDJ1_INT64, - GxB_TIMES_SECONDJ1_INT32, GxB_TIMES_SECONDJ1_INT64 ; +GrB_Info GrB_Matrix_reduce_UINT8 // c = accum (c, reduce_to_scalar (A)) +( + uint8_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -//------------------------------------------------------------------------------ -// GrB_* semirings -//------------------------------------------------------------------------------ +GrB_Info GrB_Matrix_reduce_INT16 // c = accum (c, reduce_to_scalar (A)) +( + int16_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -// The v1.3 C API for GraphBLAS adds the following 124 predefined semirings, -// with GrB_* names. They are identical to 124 GxB_* semirings defined above, -// with the same name, except that GrB_LXNOR_LOR_SEMIRING_BOOL is identical to -// GxB_EQ_LOR_BOOL (since GrB_EQ_BOOL == GrB_LXNOR). The old names are listed -// below alongside each new name; the new GrB_* names are preferred. +GrB_Info GrB_Matrix_reduce_UINT16 // c = accum (c, reduce_to_scalar (A)) +( + uint16_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -// 12 kinds of GrB_* semirings are available for all 10 real non-boolean types: +GrB_Info GrB_Matrix_reduce_INT32 // c = accum (c, reduce_to_scalar (A)) +( + int32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // PLUS_TIMES, PLUS_MIN, - // MIN_PLUS, MIN_TIMES, MIN_FIRST, MIN_SECOND, MIN_MAX, - // MAX_PLUS, MAX_TIMES, MAX_FIRST, MAX_SECOND, MAX_MIN +GrB_Info GrB_Matrix_reduce_UINT32 // c = accum (c, reduce_to_scalar (A)) +( + uint32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -// and 4 semirings for boolean only: +GrB_Info GrB_Matrix_reduce_INT64 // c = accum (c, reduce_to_scalar (A)) +( + int64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // LOR_LAND, LAND_LOR, LXOR_LAND, LXNOR_LOR. +GrB_Info GrB_Matrix_reduce_UINT64 // c = accum (c, reduce_to_scalar (A)) +( + uint64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -// GxB_* semirings corresponding to the equivalent GrB_* semiring are -// historical. +GrB_Info GrB_Matrix_reduce_FP32 // c = accum (c, reduce_to_scalar (A)) +( + float *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -GB_GLOBAL GrB_Semiring +GrB_Info GrB_Matrix_reduce_FP64 // c = accum (c, reduce_to_scalar (A)) +( + double *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - //-------------------------------------------------------------------------- - // 20 semirings with PLUS monoids - //-------------------------------------------------------------------------- +GrB_Info GxB_Matrix_reduce_FC32 // c = accum (c, reduce_to_scalar (A)) +( + GxB_FC32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // PLUS_TIMES semirings for all 10 real, non-boolean types: - GrB_PLUS_TIMES_SEMIRING_INT8, // GxB_PLUS_TIMES_INT8 - GrB_PLUS_TIMES_SEMIRING_INT16, // GxB_PLUS_TIMES_INT16 - GrB_PLUS_TIMES_SEMIRING_INT32, // GxB_PLUS_TIMES_INT32 - GrB_PLUS_TIMES_SEMIRING_INT64, // GxB_PLUS_TIMES_INT64 - GrB_PLUS_TIMES_SEMIRING_UINT8, // GxB_PLUS_TIMES_UINT8 - GrB_PLUS_TIMES_SEMIRING_UINT16, // GxB_PLUS_TIMES_UINT16 - GrB_PLUS_TIMES_SEMIRING_UINT32, // GxB_PLUS_TIMES_UINT32 - GrB_PLUS_TIMES_SEMIRING_UINT64, // GxB_PLUS_TIMES_UINT64 - GrB_PLUS_TIMES_SEMIRING_FP32, // GxB_PLUS_TIMES_FP32 - GrB_PLUS_TIMES_SEMIRING_FP64, // GxB_PLUS_TIMES_FP64 +GrB_Info GxB_Matrix_reduce_FC64 // c = accum (c, reduce_to_scalar (A)) +( + GxB_FC64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // PLUS_MIN semirings for all 10 real, non-boolean types: - GrB_PLUS_MIN_SEMIRING_INT8, // GxB_PLUS_MIN_INT8 - GrB_PLUS_MIN_SEMIRING_INT16, // GxB_PLUS_MIN_INT16 - GrB_PLUS_MIN_SEMIRING_INT32, // GxB_PLUS_MIN_INT32 - GrB_PLUS_MIN_SEMIRING_INT64, // GxB_PLUS_MIN_INT64 - GrB_PLUS_MIN_SEMIRING_UINT8, // GxB_PLUS_MIN_UINT8 - GrB_PLUS_MIN_SEMIRING_UINT16, // GxB_PLUS_MIN_UINT16 - GrB_PLUS_MIN_SEMIRING_UINT32, // GxB_PLUS_MIN_UINT32 - GrB_PLUS_MIN_SEMIRING_UINT64, // GxB_PLUS_MIN_UINT64 - GrB_PLUS_MIN_SEMIRING_FP32, // GxB_PLUS_MIN_FP32 - GrB_PLUS_MIN_SEMIRING_FP64, // GxB_PLUS_MIN_FP64 +GrB_Info GrB_Matrix_reduce_UDT // c = accum (c, reduce_to_scalar (A)) +( + void *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - //-------------------------------------------------------------------------- - // 50 semirings with MIN monoids - //-------------------------------------------------------------------------- +GrB_Info GrB_Matrix_reduce_Monoid_Scalar // c = accum(c,reduce_to_scalar(A)) +( + GrB_Scalar c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // MIN_PLUS semirings for all 10 real, non-boolean types: - GrB_MIN_PLUS_SEMIRING_INT8, // GxB_MIN_PLUS_INT8 - GrB_MIN_PLUS_SEMIRING_INT16, // GxB_MIN_PLUS_INT16 - GrB_MIN_PLUS_SEMIRING_INT32, // GxB_MIN_PLUS_INT32 - GrB_MIN_PLUS_SEMIRING_INT64, // GxB_MIN_PLUS_INT64 - GrB_MIN_PLUS_SEMIRING_UINT8, // GxB_MIN_PLUS_UINT8 - GrB_MIN_PLUS_SEMIRING_UINT16, // GxB_MIN_PLUS_UINT16 - GrB_MIN_PLUS_SEMIRING_UINT32, // GxB_MIN_PLUS_UINT32 - GrB_MIN_PLUS_SEMIRING_UINT64, // GxB_MIN_PLUS_UINT64 - GrB_MIN_PLUS_SEMIRING_FP32, // GxB_MIN_PLUS_FP32 - GrB_MIN_PLUS_SEMIRING_FP64, // GxB_MIN_PLUS_FP64 +GrB_Info GrB_Matrix_reduce_BinaryOp_Scalar +( + GrB_Scalar S, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_BinaryOp op, // binary op to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // MIN_TIMES semirings for all 10 real, non-boolean types: - GrB_MIN_TIMES_SEMIRING_INT8, // GxB_MIN_TIMES_INT8 - GrB_MIN_TIMES_SEMIRING_INT16, // GxB_MIN_TIMES_INT16 - GrB_MIN_TIMES_SEMIRING_INT32, // GxB_MIN_TIMES_INT32 - GrB_MIN_TIMES_SEMIRING_INT64, // GxB_MIN_TIMES_INT64 - GrB_MIN_TIMES_SEMIRING_UINT8, // GxB_MIN_TIMES_UINT8 - GrB_MIN_TIMES_SEMIRING_UINT16, // GxB_MIN_TIMES_UINT16 - GrB_MIN_TIMES_SEMIRING_UINT32, // GxB_MIN_TIMES_UINT32 - GrB_MIN_TIMES_SEMIRING_UINT64, // GxB_MIN_TIMES_UINT64 - GrB_MIN_TIMES_SEMIRING_FP32, // GxB_MIN_TIMES_FP32 - GrB_MIN_TIMES_SEMIRING_FP64, // GxB_MIN_TIMES_FP64 +//------------------------------------------------------------------------------ +// GrB_reduce: generic matrix/vector reduction to a vector or scalar +//------------------------------------------------------------------------------ - // MIN_FIRST semirings for all 10 real, non-boolean types: - GrB_MIN_FIRST_SEMIRING_INT8, // GxB_MIN_FIRST_INT8 - GrB_MIN_FIRST_SEMIRING_INT16, // GxB_MIN_FIRST_INT16 - GrB_MIN_FIRST_SEMIRING_INT32, // GxB_MIN_FIRST_INT32 - GrB_MIN_FIRST_SEMIRING_INT64, // GxB_MIN_FIRST_INT64 - GrB_MIN_FIRST_SEMIRING_UINT8, // GxB_MIN_FIRST_UINT8 - GrB_MIN_FIRST_SEMIRING_UINT16, // GxB_MIN_FIRST_UINT16 - GrB_MIN_FIRST_SEMIRING_UINT32, // GxB_MIN_FIRST_UINT32 - GrB_MIN_FIRST_SEMIRING_UINT64, // GxB_MIN_FIRST_UINT64 - GrB_MIN_FIRST_SEMIRING_FP32, // GxB_MIN_FIRST_FP32 - GrB_MIN_FIRST_SEMIRING_FP64, // GxB_MIN_FIRST_FP64 +// GrB_reduce is a generic function that provides access to all GrB_*reduce* +// functions: - // MIN_SECOND semirings for all 10 real, non-boolean types: - GrB_MIN_SECOND_SEMIRING_INT8, // GxB_MIN_SECOND_INT8 - GrB_MIN_SECOND_SEMIRING_INT16, // GxB_MIN_SECOND_INT16 - GrB_MIN_SECOND_SEMIRING_INT32, // GxB_MIN_SECOND_INT32 - GrB_MIN_SECOND_SEMIRING_INT64, // GxB_MIN_SECOND_INT64 - GrB_MIN_SECOND_SEMIRING_UINT8, // GxB_MIN_SECOND_UINT8 - GrB_MIN_SECOND_SEMIRING_UINT16, // GxB_MIN_SECOND_UINT16 - GrB_MIN_SECOND_SEMIRING_UINT32, // GxB_MIN_SECOND_UINT32 - GrB_MIN_SECOND_SEMIRING_UINT64, // GxB_MIN_SECOND_UINT64 - GrB_MIN_SECOND_SEMIRING_FP32, // GxB_MIN_SECOND_FP32 - GrB_MIN_SECOND_SEMIRING_FP64, // GxB_MIN_SECOND_FP64 +// reduce matrix to vector: +// GrB_Matrix_reduce_Monoid (w,mask,acc,mo,A,d) // w = acc (w,reduce(A)) +// GrB_Matrix_reduce_BinaryOp (w,mask,acc,op,A,d) // w = acc (w,reduce(A)) - // MIN_MAX semirings for all 10 real, non-boolean types: - GrB_MIN_MAX_SEMIRING_INT8, // GxB_MIN_MAX_INT8 - GrB_MIN_MAX_SEMIRING_INT16, // GxB_MIN_MAX_INT16 - GrB_MIN_MAX_SEMIRING_INT32, // GxB_MIN_MAX_INT32 - GrB_MIN_MAX_SEMIRING_INT64, // GxB_MIN_MAX_INT64 - GrB_MIN_MAX_SEMIRING_UINT8, // GxB_MIN_MAX_UINT8 - GrB_MIN_MAX_SEMIRING_UINT16, // GxB_MIN_MAX_UINT16 - GrB_MIN_MAX_SEMIRING_UINT32, // GxB_MIN_MAX_UINT32 - GrB_MIN_MAX_SEMIRING_UINT64, // GxB_MIN_MAX_UINT64 - GrB_MIN_MAX_SEMIRING_FP32, // GxB_MIN_MAX_FP32 - GrB_MIN_MAX_SEMIRING_FP64, // GxB_MIN_MAX_FP64 +// reduce matrix to scalar: +// GrB_Vector_reduce_[SCALAR] (c,acc,monoid,u,d) // c = acc (c,reduce(u)) +// GrB_Matrix_reduce_[SCALAR] (c,acc,monoid,A,d) // c = acc (c,reduce(A)) +// GrB_Vector_reduce_Monoid_Scalar (s,acc,monoid,u,d) // s = acc (s,reduce(u)) +// GrB_Matrix_reduce_Monoid_Scalar (s,acc,monoid,A,d) // s = acc (s,reduce(A)) +// GrB_Vector_reduce_BinaryOp_Scalar (s,acc,op,u,d) // s = acc (s,reduce(u)) +// GrB_Matrix_reduce_BinaryOp_Scalar (s,acc,op,A,d) // s = acc (s,reduce(A)) - //-------------------------------------------------------------------------- - // 50 semirings with MAX monoids - //-------------------------------------------------------------------------- +#if GxB_STDC_VERSION >= 201112L +#define GB_REDUCE_TO_SCALAR(kind,c,op) \ + _Generic \ + ( \ + (c), \ + GB_PCASES (GrB, GB_CONCAT ( kind, _reduce,, )), \ + default: \ + _Generic \ + ( \ + (op), \ + GrB_BinaryOp : \ + GB_CONCAT (GrB,_,kind,_reduce_BinaryOp_Scalar),\ + default: GB_CONCAT (GrB,_,kind,_reduce_Monoid_Scalar) \ + ) \ + ) - // MAX_PLUS semirings for all 10 real, non-boolean types - GrB_MAX_PLUS_SEMIRING_INT8, // GxB_MAX_PLUS_INT8 - GrB_MAX_PLUS_SEMIRING_INT16, // GxB_MAX_PLUS_INT16 - GrB_MAX_PLUS_SEMIRING_INT32, // GxB_MAX_PLUS_INT32 - GrB_MAX_PLUS_SEMIRING_INT64, // GxB_MAX_PLUS_INT64 - GrB_MAX_PLUS_SEMIRING_UINT8, // GxB_MAX_PLUS_UINT8 - GrB_MAX_PLUS_SEMIRING_UINT16, // GxB_MAX_PLUS_UINT16 - GrB_MAX_PLUS_SEMIRING_UINT32, // GxB_MAX_PLUS_UINT32 - GrB_MAX_PLUS_SEMIRING_UINT64, // GxB_MAX_PLUS_UINT64 - GrB_MAX_PLUS_SEMIRING_FP32, // GxB_MAX_PLUS_FP32 - GrB_MAX_PLUS_SEMIRING_FP64, // GxB_MAX_PLUS_FP64 +#define GrB_reduce(arg1,arg2,arg3,arg4,...) \ + _Generic \ + ( \ + (arg4), \ + GrB_Vector : GB_REDUCE_TO_SCALAR (Vector, arg1, arg3), \ + GrB_Matrix : GB_REDUCE_TO_SCALAR (Matrix, arg1, arg3), \ + GrB_Monoid : GrB_Matrix_reduce_Monoid , \ + GrB_BinaryOp : GrB_Matrix_reduce_BinaryOp \ + ) \ + (arg1, arg2, arg3, arg4, __VA_ARGS__) +#endif - // MAX_TIMES semirings for all 10 real, non-boolean types: - GrB_MAX_TIMES_SEMIRING_INT8, // GxB_MAX_TIMES_INT8 - GrB_MAX_TIMES_SEMIRING_INT16, // GxB_MAX_TIMES_INT16 - GrB_MAX_TIMES_SEMIRING_INT32, // GxB_MAX_TIMES_INT32 - GrB_MAX_TIMES_SEMIRING_INT64, // GxB_MAX_TIMES_INT64 - GrB_MAX_TIMES_SEMIRING_UINT8, // GxB_MAX_TIMES_UINT8 - GrB_MAX_TIMES_SEMIRING_UINT16, // GxB_MAX_TIMES_UINT16 - GrB_MAX_TIMES_SEMIRING_UINT32, // GxB_MAX_TIMES_UINT32 - GrB_MAX_TIMES_SEMIRING_UINT64, // GxB_MAX_TIMES_UINT64 - GrB_MAX_TIMES_SEMIRING_FP32, // GxB_MAX_TIMES_FP32 - GrB_MAX_TIMES_SEMIRING_FP64, // GxB_MAX_TIMES_FP64 +//============================================================================== +// GrB_transpose: matrix transpose +//============================================================================== - // MAX_FIRST semirings for all 10 real, non-boolean types: - GrB_MAX_FIRST_SEMIRING_INT8, // GxB_MAX_FIRST_INT8 - GrB_MAX_FIRST_SEMIRING_INT16, // GxB_MAX_FIRST_INT16 - GrB_MAX_FIRST_SEMIRING_INT32, // GxB_MAX_FIRST_INT32 - GrB_MAX_FIRST_SEMIRING_INT64, // GxB_MAX_FIRST_INT64 - GrB_MAX_FIRST_SEMIRING_UINT8, // GxB_MAX_FIRST_UINT8 - GrB_MAX_FIRST_SEMIRING_UINT16, // GxB_MAX_FIRST_UINT16 - GrB_MAX_FIRST_SEMIRING_UINT32, // GxB_MAX_FIRST_UINT32 - GrB_MAX_FIRST_SEMIRING_UINT64, // GxB_MAX_FIRST_UINT64 - GrB_MAX_FIRST_SEMIRING_FP32, // GxB_MAX_FIRST_FP32 - GrB_MAX_FIRST_SEMIRING_FP64, // GxB_MAX_FIRST_FP64 +GrB_Info GrB_transpose // C = accum (C, A') +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Matrix A, // first input: matrix A + const GrB_Descriptor desc // descriptor for C, Mask, and A +) ; - // MAX_SECOND semirings for all 10 real, non-boolean types: - GrB_MAX_SECOND_SEMIRING_INT8, // GxB_MAX_SECOND_INT8 - GrB_MAX_SECOND_SEMIRING_INT16, // GxB_MAX_SECOND_INT16 - GrB_MAX_SECOND_SEMIRING_INT32, // GxB_MAX_SECOND_INT32 - GrB_MAX_SECOND_SEMIRING_INT64, // GxB_MAX_SECOND_INT64 - GrB_MAX_SECOND_SEMIRING_UINT8, // GxB_MAX_SECOND_UINT8 - GrB_MAX_SECOND_SEMIRING_UINT16, // GxB_MAX_SECOND_UINT16 - GrB_MAX_SECOND_SEMIRING_UINT32, // GxB_MAX_SECOND_UINT32 - GrB_MAX_SECOND_SEMIRING_UINT64, // GxB_MAX_SECOND_UINT64 - GrB_MAX_SECOND_SEMIRING_FP32, // GxB_MAX_SECOND_FP32 - GrB_MAX_SECOND_SEMIRING_FP64, // GxB_MAX_SECOND_FP64 +//============================================================================== +// GrB_kronecker: Kronecker product +//============================================================================== - // MAX_MIN semirings for all 10 real, non-boolean types: - GrB_MAX_MIN_SEMIRING_INT8, // GxB_MAX_MIN_INT8 - GrB_MAX_MIN_SEMIRING_INT16, // GxB_MAX_MIN_INT16 - GrB_MAX_MIN_SEMIRING_INT32, // GxB_MAX_MIN_INT32 - GrB_MAX_MIN_SEMIRING_INT64, // GxB_MAX_MIN_INT64 - GrB_MAX_MIN_SEMIRING_UINT8, // GxB_MAX_MIN_UINT8 - GrB_MAX_MIN_SEMIRING_UINT16, // GxB_MAX_MIN_UINT16 - GrB_MAX_MIN_SEMIRING_UINT32, // GxB_MAX_MIN_UINT32 - GrB_MAX_MIN_SEMIRING_UINT64, // GxB_MAX_MIN_UINT64 - GrB_MAX_MIN_SEMIRING_FP32, // GxB_MAX_MIN_FP32 - GrB_MAX_MIN_SEMIRING_FP64, // GxB_MAX_MIN_FP64 +// GxB_kron is historical; use GrB_kronecker instead +GrB_Info GxB_kron // C = accum(C,kron(A,B)) (historical) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // defines '*' for T=kron(A,B) + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; - //-------------------------------------------------------------------------- - // 4 boolean semirings: - //-------------------------------------------------------------------------- +GrB_Info GrB_Matrix_kronecker_BinaryOp // C = accum (C, kron(A,B)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // defines '*' for T=kron(A,B) + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, M, A, and B +) ; - GrB_LOR_LAND_SEMIRING_BOOL, // GxB_LOR_LAND_BOOL - GrB_LAND_LOR_SEMIRING_BOOL, // GxB_LAND_LOR_BOOL - GrB_LXOR_LAND_SEMIRING_BOOL, // GxB_LXOR_LAND_BOOL - GrB_LXNOR_LOR_SEMIRING_BOOL ; // GxB_EQ_LOR_BOOL (note EQ == LXNOR) +GrB_Info GrB_Matrix_kronecker_Monoid // C = accum (C, kron(A,B)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Monoid monoid, // defines '*' for T=kron(A,B) + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, M, A, and B +) ; + +GrB_Info GrB_Matrix_kronecker_Semiring // C = accum (C, kron(A,B)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Semiring semiring, // defines '*' for T=kron(A,B) + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, M, A, and B +) ; + +#if GxB_STDC_VERSION >= 201112L +#define GrB_kronecker(C,Mask,accum,op,A,B,desc) \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Matrix_kronecker_Semiring , \ + GrB_Monoid : GrB_Matrix_kronecker_Monoid , \ + GrB_BinaryOp : GrB_Matrix_kronecker_BinaryOp \ + ) \ + (C, Mask, accum, op, A, B, desc) +#endif //============================================================================== // GrB_*_resize: change the size of a matrix or vector @@ -9095,17 +9218,6 @@ GrB_Info GxB_Vector_resize // change the size of a vector (historical) // resulting output via another program. The intent of these functions is to // produce a report of the object for visual inspection. -typedef enum -{ - GxB_SILENT = 0, // nothing is printed, just check the object - GxB_SUMMARY = 1, // print a terse summary - GxB_SHORT = 2, // short description, about 30 entries of a matrix - GxB_COMPLETE = 3, // print the entire contents of the object - GxB_SHORT_VERBOSE = 4, // GxB_SHORT but with "%.15g" for doubles - GxB_COMPLETE_VERBOSE = 5 // GxB_COMPLETE but with "%.15g" for doubles -} -GxB_Print_Level ; - GrB_Info GxB_Type_fprint // print and check a GrB_Type ( GrB_Type type, // object to print and check @@ -9197,11 +9309,6 @@ GrB_Info GxB_Context_fprint // print and check a GxB_Context FILE *f // file for output ) ; -// user code should not directly use GB_STR or GB_XSTR -// GB_STR: convert the content of x into a string "x" -#define GB_XSTR(x) GB_STR(x) -#define GB_STR(x) #x - #if GxB_STDC_VERSION >= 201112L #define GxB_fprint(object,pr,f) \ _Generic \ @@ -10263,16 +10370,6 @@ GrB_Info GxB_pack_HyperHash // move Y into A->Y // No typecasting of the values is done on import or export. -// The GrB C API specification supports 3 formats: - -typedef enum -{ - GrB_CSR_FORMAT = 0, // CSR format (equiv to GxB_SPARSE with GxB_BY_ROW) - GrB_CSC_FORMAT = 1, // CSC format (equiv to GxB_SPARSE with GxB_BY_COL) - GrB_COO_FORMAT = 2 // triplet format (like input to GrB*build) -} -GrB_Format ; - GrB_Info GrB_Matrix_import_BOOL // import a GrB_BOOL matrix ( GrB_Matrix *A, // handle of matrix to create @@ -10800,13 +10897,6 @@ GrB_Info GrB_Matrix_exportHint // suggest the best export format free (blob) ; */ -// Currently implemented: no compression, LZ4, LZ4HC, and ZSTD -#define GxB_COMPRESSION_NONE -1 // no compression -#define GxB_COMPRESSION_DEFAULT 0 // ZSTD (level 1) -#define GxB_COMPRESSION_LZ4 1000 // LZ4 -#define GxB_COMPRESSION_LZ4HC 2000 // LZ4HC, with default level 9 -#define GxB_COMPRESSION_ZSTD 3000 // ZSTD, with default level 1 - // Most of the above methods have a level parameter that controls the tradeoff // between run time and the amount of compression obtained. Higher levels // result in a more compact result, at the cost of higher run time: @@ -11796,7 +11886,7 @@ GrB_Info GxB_Vector_Iterator_seek (GxB_Iterator iterator, GrB_Index p) ; #define GB_Vector_Iterator_seek(iterator, q) \ ( \ - (q >= iterator->pmax) ? \ + (((int64_t) q) >= iterator->pmax) ? \ ( \ /* the iterator is exhausted */ \ iterator->p = iterator->pmax, \ @@ -11969,9 +12059,9 @@ void GxB_Iterator_get_UDT (GxB_Iterator iterator, (iterator)->type_size) \ ) +#endif // GB_CUDA_FOLDER #if defined ( __cplusplus ) } #endif - #endif diff --git a/GraphBLAS/Demo/Program/gauss_demo.c b/GraphBLAS/Demo/Program/gauss_demo.c index b32ec76b06..24a47625f7 100644 --- a/GraphBLAS/Demo/Program/gauss_demo.c +++ b/GraphBLAS/Demo/Program/gauss_demo.c @@ -259,22 +259,27 @@ int main (void) // require a new JIT kernel to be compiled: if this is the first run of // this demo, the cache folder is empty. Otherwise, the good gauss type // will be left in the cache folder from a prior run of this program, and - // its type defintion does not match this one. The burble will say "jit: - // loaded but must recompile" in this case. - GrB_Type BadGauss = NULL ; - info = GxB_Type_new (&BadGauss, 0, "gauss", BAD_GAUSS_DEFN) ; - if (info != GrB_SUCCESS) + // its type definition does not match this one. The burble will say "jit: + // loaded but must recompile" in this case. This is skipped if the JIT + // is disabled, since trying the BadGauss type will disable the good + // PreJIT kernel. + size_t sizeof_gauss ; + if (control == GxB_JIT_ON) { - // JIT disabled - printf ("JIT: unable to determine type size: set it to %d\n", - (int) sizeof (badgauss)) ; - TRY (GrB_Type_new (&BadGauss, sizeof (badgauss))) ; + GrB_Type BadGauss = NULL ; + info = GxB_Type_new (&BadGauss, 0, "gauss", BAD_GAUSS_DEFN) ; + if (info != GrB_SUCCESS) + { + // JIT disabled + printf ("JIT: unable to determine type size: set it to %d\n", + (int) sizeof (badgauss)) ; + TRY (GrB_Type_new (&BadGauss, sizeof (badgauss))) ; + } + TRY (GxB_Type_fprint (BadGauss, "BadGauss", GxB_COMPLETE, stdout)) ; + TRY (GxB_Type_size (&sizeof_gauss, BadGauss)) ; + OK (sizeof_gauss == sizeof (badgauss)) ; + GrB_Type_free (&BadGauss) ; } - TRY (GxB_Type_fprint (BadGauss, "BadGauss", GxB_COMPLETE, stdout)) ; - size_t sizeof_gauss ; - TRY (GxB_Type_size (&sizeof_gauss, BadGauss)) ; - OK (sizeof_gauss == sizeof (badgauss)) ; - GrB_Type_free (&BadGauss) ; // the JIT should have been successful, unless it was originally off #define OK_JIT \ @@ -282,6 +287,12 @@ int main (void) OK (control == save) ; OK_JIT + // renable the JIT in case the JIT was disabled when GraphBLAS was built; + // this will enable any prejit kernels. + TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_ON)) ; + TRY (GxB_Global_Option_get (GxB_JIT_C_CONTROL, &save)) ; + printf ("jit: status %d\n", save) ; + // create the Gauss type, and let the JIT determine the size. This causes // an intentional name collision. The new 'gauss' type does not match the // old one (above), and this will be safely detected. The burble will say @@ -307,23 +318,36 @@ int main (void) OK_JIT } + printf ("JIT: off\n") ; + TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_OFF)) ; + printf ("JIT: on\n") ; + TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_ON)) ; + TRY (GxB_Global_Option_get (GxB_JIT_C_CONTROL, &control)) ; + printf ("jit: status %d\n", control) ; + // create the BadAddGauss operator; use a NULL function pointer to test the // JIT. Like the BadGauss type, this will always require a JIT // compilation, because the type will not match the good 'addgauss' - // definition from a prior run of this demo. + // definition from a prior run of this demo. Skip this if the JIT is + // disabled, to allow PreJIT kernels to be used instead. Creating + // the invalid addgauss operator will disable the good PreJIT addgauss. GrB_BinaryOp BadAddGauss = NULL ; - info = GxB_BinaryOp_new (&BadAddGauss, NULL, - Gauss, Gauss, Gauss, "addgauss", BAD_ADDGAUSS_DEFN) ; - if (info != GrB_SUCCESS) + if (control == GxB_JIT_ON) { - // JIT disabled - printf ("JIT: unable to compile the BadAddGauss kernel\n") ; - TRY (GrB_BinaryOp_new (&BadAddGauss, (void *) badaddgauss, - Gauss, Gauss, Gauss)) ; + info = GxB_BinaryOp_new (&BadAddGauss, NULL, + Gauss, Gauss, Gauss, "addgauss", BAD_ADDGAUSS_DEFN) ; + if (info != GrB_SUCCESS) + { + // JIT disabled + printf ("JIT: unable to compile the BadAddGauss kernel\n") ; + TRY (GrB_BinaryOp_new (&BadAddGauss, (void *) badaddgauss, + Gauss, Gauss, Gauss)) ; + } + TRY (GxB_BinaryOp_fprint (BadAddGauss, "BadAddGauss", GxB_COMPLETE, + stdout)) ; + GrB_BinaryOp_free (&BadAddGauss) ; } - TRY (GxB_BinaryOp_fprint (BadAddGauss, "BadAddGauss", GxB_COMPLETE, - stdout)) ; - GrB_BinaryOp_free (&BadAddGauss) ; + OK_JIT // create the AddGauss operator; use a NULL function pointer to test the @@ -349,10 +373,16 @@ int main (void) OK_JIT } -// printf ("JIT: off\n") ; -// TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_OFF)) ; -// printf ("JIT: on\n") ; -// TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_ON)) ; + printf ("JIT: off\n") ; + TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_OFF)) ; + printf ("JIT: on\n") ; + TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_ON)) ; + + // renable the JIT in case the JIT was disabled when GraphBLAS was built; + // this will enable any prejit kernels. + TRY (GxB_Global_Option_set (GxB_JIT_C_CONTROL, GxB_JIT_ON)) ; + TRY (GxB_Global_Option_get (GxB_JIT_C_CONTROL, &save)) ; + printf ("jit: status %d\n", save) ; // create the AddMonoid gauss zero ; diff --git a/GraphBLAS/Demo/Program/grow_demo.c b/GraphBLAS/Demo/Program/grow_demo.c new file mode 100644 index 0000000000..0fcdbd2fa8 --- /dev/null +++ b/GraphBLAS/Demo/Program/grow_demo.c @@ -0,0 +1,259 @@ +//------------------------------------------------------------------------------ +// GraphBLAS/Demo/Program/grow_demo.c: grow a matrix row-by-row +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// Reads in a matrix A, then does C = A one row at a time. + +#include "graphblas_demos.h" +#include "simple_rand.c" +#include "usercomplex.h" +#include "usercomplex.c" +#include "wathen.c" +#include "get_matrix.c" +#include "random_matrix.c" +#include "import_test.c" +#include "read_matrix.c" + +#include "omp.h" +#if defined ( _OPENMP ) +#define WALLCLOCK omp_get_wtime ( ) +#else +#define WALLCLOCK 0 +#endif + +// macro used by OK(...) to free workspace if an error occurs +#undef FREE_ALL +#define FREE_ALL \ + GrB_Matrix_free (&A) ; \ + GrB_Matrix_free (&C) ; \ + GrB_Matrix_free (&T) ; \ + GrB_Matrix_free (&W) ; \ + GrB_Vector_free (&w) ; \ + +GrB_Info check_result (GrB_Matrix A1, GrB_Matrix C1, GrB_BinaryOp eq) ; +GrB_Info check_result (GrB_Matrix A1, GrB_Matrix C1, GrB_BinaryOp eq) +{ + double t = WALLCLOCK ; + GrB_Info info ; + GrB_Matrix A = NULL, C = NULL, T = NULL, W = NULL ; + GrB_Vector w = NULL ; + GrB_Index anvals, cnvals, tnvals, anrows, ancols ; + OK (GrB_Matrix_nrows (&anrows, A1)) ; + OK (GrB_Matrix_ncols (&ancols, A1)) ; + OK (GrB_Matrix_nvals (&anvals, A1)) ; + OK (GrB_Matrix_nvals (&cnvals, C1)) ; + CHECK (anvals == cnvals, GrB_PANIC) ; + OK (GrB_Matrix_new (&T, GrB_BOOL, anrows, ancols)) ; + OK (GrB_Matrix_eWiseMult_BinaryOp (T, NULL, NULL, eq, A1, C1, NULL)) ; + // OK (GxB_print (T, 2)) ; + OK (GrB_Matrix_nvals (&tnvals, T)) ; + CHECK (anvals == tnvals, GrB_PANIC) ; + bool ok = true ; + OK (GrB_Matrix_reduce_BOOL (&ok, NULL, GrB_LAND_MONOID_BOOL, T, NULL)) ; + CHECK (ok, GrB_PANIC) ; + t = (WALLCLOCK - t) ; + FREE_ALL ; + printf ("A and C match, time %g\n", t) ; + return (GrB_SUCCESS) ; +} + +int main (int argc, char **argv) +{ + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GrB_Matrix A = NULL, C = NULL, T = NULL, W = NULL ; + GrB_Vector w = NULL ; + GrB_Info info ; + + OK (GrB_init (GrB_NONBLOCKING)) ; + int32_t nthreads ; + OK (GxB_Global_Option_get (GxB_GLOBAL_NTHREADS, &nthreads)) ; + fprintf (stderr, "grow demo: nthreads %d\n", nthreads) ; + + //-------------------------------------------------------------------------- + // get A matrix + //-------------------------------------------------------------------------- + + OK (get_matrix (&A, argc, argv, false, false, false)) ; + GrB_Index anrows, ancols ; + OK (GrB_Matrix_nrows (&anrows, A)) ; + OK (GrB_Matrix_ncols (&ancols, A)) ; + + int32_t type_code ; + OK (GrB_Matrix_get_INT32 (A, &type_code, GrB_EL_TYPE_CODE)) ; + GrB_Type atype = NULL ; + // OK (GxB_print (A, 5)) ; + // printf ("type_code: %d\n", type_code) ; + GrB_BinaryOp eq = NULL ; + + switch (type_code) + { + case GrB_BOOL_CODE : atype = GrB_BOOL ; eq = GrB_EQ_BOOL ; break ; + case GrB_INT8_CODE : atype = GrB_INT8 ; eq = GrB_EQ_INT8 ; break ; + case GrB_UINT8_CODE : atype = GrB_UINT8 ; eq = GrB_EQ_UINT8 ; break ; + case GrB_INT16_CODE : atype = GrB_INT16 ; eq = GrB_EQ_INT16 ; break ; + case GrB_UINT16_CODE : atype = GrB_UINT16 ; eq = GrB_EQ_UINT16 ; break ; + case GrB_INT32_CODE : atype = GrB_INT32 ; eq = GrB_EQ_INT32 ; break ; + case GrB_UINT32_CODE : atype = GrB_UINT32 ; eq = GrB_EQ_UINT32 ; break ; + case GrB_INT64_CODE : atype = GrB_INT64 ; eq = GrB_EQ_INT64 ; break ; + case GrB_UINT64_CODE : atype = GrB_UINT64 ; eq = GrB_EQ_UINT64 ; break ; + case GrB_FP32_CODE : atype = GrB_FP32 ; eq = GrB_EQ_FP32 ; break ; + case GrB_FP64_CODE : atype = GrB_FP64 ; eq = GrB_EQ_FP64 ; break ; + case GxB_FC32_CODE : atype = GxB_FC32 ; eq = GxB_EQ_FC32 ; break ; + case GxB_FC64_CODE : atype = GxB_FC64 ; eq = GxB_EQ_FC64 ; break ; + default : ; + } + + // OK (GxB_print (atype, 5)) ; + CHECK (atype != NULL, GrB_INVALID_VALUE) ; + OK (GxB_Matrix_fprint (A, "A", 1, stdout)) ; + + //-------------------------------------------------------------------------- + // C = A, one row at a time + //-------------------------------------------------------------------------- + + OK (GrB_Matrix_new (&C, atype, anrows, ancols)) ; + OK (GrB_Vector_new (&w, atype, ancols)) ; + // OK (GrB_Global_set_INT32 (GrB_GLOBAL, true, GxB_BURBLE)) ; + OK (GrB_Matrix_set_INT32 (C, (int32_t) false, GxB_HYPER_HASH)) ; + OK (GrB_Matrix_set_INT32 (C, GxB_HYPERSPARSE, GxB_SPARSITY_CONTROL)) ; + OK (GrB_Vector_set_INT32 (w, GxB_SPARSE, GxB_SPARSITY_CONTROL)) ; + // printf ("\n\nC empty:\n") ; + // OK (GxB_print (C, 1)) ; + + double t, tt [4] = {0, 0, 0, 0}, t2 [4] = {0, 0, 0, 0} ; + tt [0] = WALLCLOCK ; + + for (int64_t i = 0 ; i < anrows ; i++) + { + // printf ("\n\ni = %ld\n", i) ; + + // w = A (i,:), using A' via the descriptor + t = WALLCLOCK ; + OK (GrB_Col_extract (w, NULL, NULL, A, GrB_ALL, ancols, i, + GrB_DESC_T0)) ; + tt [1] += (WALLCLOCK - t) ; + // OK (GxB_print (w, 3)) ; + + // C (i,:) = w + t = WALLCLOCK ; + OK (GrB_Row_assign (C, NULL, NULL, w, i, GrB_ALL, ancols, NULL)) ; + tt [2] += (WALLCLOCK - t) ; + + // ensure C is finished + t = WALLCLOCK ; + OK (GrB_Matrix_wait (C, GrB_MATERIALIZE)) ; + tt [3] += (WALLCLOCK - t) ; + // OK (GxB_print (C, 1)) ; + } + + OK (GrB_Global_set_INT32 (GrB_GLOBAL, false, GxB_BURBLE)) ; + // OK (GxB_print (C, 1)) ; + + tt [0] = WALLCLOCK - tt [0] ; + printf ("one row at a time:\n") ; + printf ("total time: %g\n", tt [0]) ; + printf ("extract: %g\n", tt [1]) ; + printf ("assign: %g\n", tt [2]) ; + printf ("wait: %g\n", tt [3]) ; + + // check to see if A and C are equal + OK (check_result (A, C, eq)) ; + + //-------------------------------------------------------------------------- + // C = A, multiple rows at a time + //-------------------------------------------------------------------------- + + // OK (GrB_Global_set_INT32 (GrB_GLOBAL, true, GxB_BURBLE)) ; + GrB_Matrix_free (&C) ; + OK (GrB_Matrix_new (&C, atype, anrows, ancols)) ; + OK (GrB_Matrix_set_INT32 (C, GxB_HYPERSPARSE, GxB_SPARSITY_CONTROL)) ; + + t2 [0] = WALLCLOCK ; + int64_t i1 = 0 ; + int64_t ilast = anrows - 1 ; + while (i1 <= ilast) + { + // determine the rows i1:i2 of A to append + int64_t irows = (ilast - i1) / 2 ; + if (irows == 0) irows = 1 ; + int64_t i2 = i1 + irows - 1 ; + if (i2 > ilast) i2 = ilast ; + irows = i2 - i1 + 1 ; + // printf ("i1: %ld i2: %ld irows %ld ilast: %ld\n", + // i1, i2, irows, ilast) ; + + // W = A (i1:i2,:) + t = WALLCLOCK ; + OK (GrB_Matrix_new (&W, atype, irows, ancols)) ; + OK (GrB_Matrix_set_INT32 (W, GxB_SPARSE, GxB_SPARSITY_CONTROL)) ; + GrB_Index Icolon [3] ; + Icolon [GxB_BEGIN] = i1 ; + Icolon [GxB_INC ] = 1 ; + Icolon [GxB_END ] = i2 ; + // OK (GxB_print (W, 3)) ; + info = GrB_Matrix_extract (W, NULL, NULL, A, Icolon, GxB_RANGE, + GrB_ALL, ancols, NULL) ; + // printf ("got here: %d\n", info) ; + OK (info) ; + t2 [1] += (WALLCLOCK - t) ; + // OK (GxB_print (W, 3)) ; + + // C (i1:i2,:) = W + t = WALLCLOCK ; + OK (GrB_Matrix_assign (C, NULL, NULL, W, + Icolon, GxB_RANGE, GrB_ALL, ancols, NULL)) ; + t2 [2] += (WALLCLOCK - t) ; + + // ensure C is finished + t = WALLCLOCK ; + OK (GrB_Matrix_wait (C, GrB_MATERIALIZE)) ; + t2 [3] += (WALLCLOCK - t) ; + // OK (GxB_print (C, 1)) ; + + GrB_Matrix_free (&W) ; + + i1 += irows ; + } + OK (GrB_Global_set_INT32 (GrB_GLOBAL, false, GxB_BURBLE)) ; + + t2 [0] = WALLCLOCK - t2 [0] ; + printf ("\nmany rows at a time:\n") ; + printf ("total time: %g\n", t2 [0]) ; + printf ("extract: %g\n", t2 [1]) ; + printf ("assign: %g\n", t2 [2]) ; + printf ("wait: %g\n", t2 [3]) ; + + // check to see if A and C are equal + OK (check_result (A, C, eq)) ; + + //-------------------------------------------------------------------------- + // C = A, using dup (1 threads and all threads) + //-------------------------------------------------------------------------- + + printf ("\nsingle call to dup:\n") ; + for (int trial = 1 ; trial <= 2 ; trial++) + { + int32_t threads ; + GrB_Global_get_INT32 (GrB_GLOBAL, &threads, GxB_GLOBAL_NTHREADS) ; + GrB_Matrix_free (&T) ; + t = WALLCLOCK ; + OK (GrB_Matrix_dup (&T, A)) ; + t = (WALLCLOCK - t) ; + printf ("dup: %g (%d threads)\n", t, threads) ; + GrB_Global_set_INT32 (GrB_GLOBAL, (int) 1, GxB_GLOBAL_NTHREADS) ; + } + + printf ("grow_demo: all tests passed\n") ; + FREE_ALL ; + GrB_finalize ( ) ; + return (0) ; +} + diff --git a/GraphBLAS/Demo/demo b/GraphBLAS/Demo/demo index db8d2fa7aa..85edda157f 100755 --- a/GraphBLAS/Demo/demo +++ b/GraphBLAS/Demo/demo @@ -3,6 +3,8 @@ # SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. # SPDX-License-Identifier: Apache-2.0 +../build/grow_demo < Matrix/west0067 + ../build/simple_demo > ../build/simple_demo.out ../build/complex_demo > ../build/complex_demo_out.m ../build/complex_demo 1 > ../build/complex_demo_out2.m diff --git a/GraphBLAS/Doc/ChangeLog b/GraphBLAS/Doc/ChangeLog index 1ad36b0e6c..67d7cac6cf 100644 --- a/GraphBLAS/Doc/ChangeLog +++ b/GraphBLAS/Doc/ChangeLog @@ -1,3 +1,24 @@ +Aug 2, 2024: version 9.3.0 + + * code restructuring: Source folder split into many subfolders, and + some files and internal functions renamed. No visible external change. + * (55) bug fix: GrB_apply with user-defined index-unary op would fail if + A was iso and the JIT was disabled (failure in generic case). + Caught by Christina Koutsou. + * (54) bug fix: reducing a huge iso full matrix to a scalar resulted in + integer overflow if nrows*ncols was larger than about 2^60. + * reduced size of compiled library: int16 and uint16 types and operators + for FactoryKernels are disabled in GB_control.h. The JIT will always + be used instead. + +May 22, 2024: version 9.2.0 + + * Added graphblas_install.m: for a simpler method of compiling + the MATLAB/Octave interface for GraphBLAS. + * JIT: sanitizing the JIT cache path, better burble for compiler errors + * GrB_get/GrB_set: better handling of concurrent get/set between different + user threads + Mar 22, 2024: version 9.1.0 * minor updates to build system diff --git a/GraphBLAS/Doc/FUTURE.txt b/GraphBLAS/Doc/FUTURE.txt index 79dd37efa8..90712b3a2b 100644 --- a/GraphBLAS/Doc/FUTURE.txt +++ b/GraphBLAS/Doc/FUTURE.txt @@ -1,22 +1,22 @@ -FUTURE plans For 9.0.1: and beyond: +FUTURE plans for GraphBLAS: -GraphBLAS: + GrB_IndexBinaryOp : very important for many graph algorithms - don't just check 1st line of GraphBLAS.h when deciding to unpack - the src in user cache folder. Use a crc test. - -CUDA: - - finding src - kernel source location, and name - -Future features: + JIT package: don't just check 1st line of GraphBLAS.h when deciding to + unpack the src in user cache folder. Use a crc test. cumulative sum (or other monoid) + Raye: link-time optimization with binary for operators, for Julia + pack/unpack COO + kernel fusion + CUDA kernels + CUDA: finding src + CUDA: kernel source location, and name + distributed framework fine-grain parallelism for dot-product based mxm, mxv, vxm, @@ -24,7 +24,7 @@ Future features: (or call them GxB_outerProduct and GxB_innerProduct?) aggregators - index binary ops + GrB_extract with GrB_Vectors instead of (GrB_Index *) arrays for I and J iso: set a flag with GrB_get/set to disable iso. useful if the matrix is @@ -55,10 +55,10 @@ Future features: * check if vectorization of GrB_mxm is effective when using clang * see how HNSW vector search could be implemented in GraphBLAS -CUDA JIT: + for CUDA JIT: - https://developer.nvidia.com/blog/cuda-12-0-compiler-support-for-runtime-lto-using-nvjitlink-library/ - Developer webpage talking about ways to do nvJit with link time - optimization using CUDA 12.0 Shows precompiled path and JIT path to - generate kernels + https://developer.nvidia.com/blog/cuda-12-0-compiler-support-for-runtime-lto-using-nvjitlink-library/ + Developer webpage talking about ways to do nvJit with link time + optimization using CUDA 12.0 Shows precompiled path and JIT path to + generate kernels diff --git a/GraphBLAS/Doc/GraphBLAS_UserGuide.pdf b/GraphBLAS/Doc/GraphBLAS_UserGuide.pdf index 15a176c960..4871289bbd 100644 Binary files a/GraphBLAS/Doc/GraphBLAS_UserGuide.pdf and b/GraphBLAS/Doc/GraphBLAS_UserGuide.pdf differ diff --git a/GraphBLAS/Doc/GraphBLAS_UserGuide.tex b/GraphBLAS/Doc/GraphBLAS_UserGuide.tex index 598b4c7484..4128a5e82a 100644 --- a/GraphBLAS/Doc/GraphBLAS_UserGuide.tex +++ b/GraphBLAS/Doc/GraphBLAS_UserGuide.tex @@ -3933,7 +3933,8 @@ \subsubsection{{\sf GrB\_Vector\_build:} build a vector from a set of tu list of tuples is taken and the prior ones ignored. This is not an error. \begin{alert} -{\bf SPEC:} Results are defined even if \verb'dup' is non-associative. +{\bf SPEC:} Results are defined even if \verb'dup' is non-associative and/or +non-commutative. \end{alert} %------------------------------------------------------------------------------- @@ -4539,8 +4540,9 @@ \subsubsection{{\sf GrB\_Matrix\_build:} build a matrix from a set of tuples} list of tuples is taken and the prior ones ignored. This is not an error. \begin{alert} -{\bf SPEC:} As an extension to the specification, results are defined even if \verb'dup' -is non-associative. +{\bf SPEC:} As an extension to the specification, +results are defined even if \verb'dup' +is non-associative and/or non-commutative. \end{alert} The GraphBLAS API requires \verb'dup' to be associative so @@ -8117,8 +8119,7 @@ \section{The SuiteSparse:GraphBLAS JIT} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% kernels that used function pointers for each operator and for any typecasting required. Even built-in types and operators were sometimes handled by the generic kernels, if any typecasting was done, or if the specific operator, -monoid, or semiring was disabled by the \verb'Source/GB_control.h' file when -GraphBLAS was compiled. +monoid, or semiring was disabled when GraphBLAS was compiled. \subsection{Using the JIT} @@ -8147,6 +8148,8 @@ \subsection{Using the JIT} is not set, then JIT compilation is disabled and only PreJIT kernels can be used. The optional environment variable, \verb'GRAPHBLAS_CACHE_PATH', is also read by \verb'GrB_init' when the user application runs. +See Section~\ref{cache_path} for a description of the valid characters +that can appear in the cache path. When the user application starts, it can modify the location of the cache folder after calling \verb'GrB_init'. It can also modify the C compiler and @@ -8178,7 +8181,7 @@ \subsection{Using the JIT} \vspace{0.15in} To control the JIT in the MATLAB \verb'@GrB' interface, use the \verb'GrB.jit' -method. Refer to \verb'help GrB.jit' for details. +method. Refer to \verb'help GrB.jit' for details. Kernels compiled during one run of a user application are kept in the cache folder, so that when the user application runs again, the kernels do not have @@ -8395,6 +8398,7 @@ \subsubsection{\sf GxB\_JIT\_ERROR\_LOG} %---------------------------------------- \subsubsection{\sf GxB\_JIT\_CACHE\_PATH} +\label{cache_path} %---------------------------------------- The \verb'GxB_JIT_CACHE_PATH' string is the full path to the user's cache @@ -8406,6 +8410,20 @@ \subsubsection{\sf GxB\_JIT\_CACHE\_PATH} exists, and initializes the cache path with that value instead of using the default. +{\bf Restrictions:} the cache path is santized for security reasons. No spaces +are permitted. Backslashes are converted into forward slashes. It can contain +only charactors in the following list: + +\begin{verbatim} + abcdefghijklmnopqrstuvwxyz + ABCDEFGHIJKLMNOPQRSTUVWXYZ + 0123456789.-_/ +\end{verbatim} + +In addition, the second character in the string is allowed to be the colon +character (\verb':') to allow for the use of Windows drive letters. Any +character outside of these rules is converted into an underscore (\verb'_'). + %------------------------------------------------------------------------------- \subsection{Compilation options: {\sf GRAPHBLAS\_USE\_JIT} and {\sf GRAPHBLAS\_COMPACT}} %------------------------------------------------------------------------------- @@ -14036,7 +14054,91 @@ \section{Compiling and Installing SuiteSparse:GraphBLAS} \label{sec:install} %---------------------------------------- -\subsection{On Linux and Mac} +\subsection{Quick Start} +%---------------------------------------- + +GraphBLAS requires \verb'cmake' version 3.20 or later. +It optionally can use OpenMP for best performance. +For OpenMP on the Mac, see Section~\ref{mac_openmp}. +Without OpenMP, GraphBLAS will be significantly slower since it is a highly +parallel package. + +A \verb'cmake' build system is available for Linux, Mac, and Windows. +For Linux or Mac, a simple Makefile wrapper is available that accesses this +cmake build system. Simply do: + + {\small + \begin{verbatim} + make + sudo make install \end{verbatim} } + +For Windows, open CMake and use the provided \verb'CMakeLists.txt' file +to build GraphBLAS in the \verb'GraphBLAS/build' folder. + +Next, try the demos with \verb'make demos'. +The output of the demos will be compared with expected +output files in \verb'Demo/Output'.\footnote{ +NOTE: +DO NOT publish benchmarks of these demos, and do not link against the +demo library in any user application. These codes are sometimes slow, +and are meant as simple illustrations only, not for performance. The fastest +methods are in LAGraph, not in GraphBLAS/Demo. Benchmark LAGraph +instead. Eventually, all GraphBLAS/Demos methods will be removed, and LAGraph +will serve all uses: for illustration, benchmarking, and production uses.} + +%---------------------------------------- +\subsection{Quick Start for MATLAB/Octave} +%---------------------------------------- + +As of GraphBLAS 9.2.0, a new and simpler method for compiling GraphBLAS and its +MATLAB interface has been added. In the MATLAB/Octave Command Window, simply +type: + + {\small + \begin{verbatim} + cd GraphBLAS/GraphBLAS + graphblas_install \end{verbatim} } + +This will use \verb'cmake' to compile the GraphBLAS library. You can skip the +details in the remainder of this section. Next, add your +\verb'GraphBLAS/GraphBLAS' folder to your path, by editting your +\verb'startup.m' script (usually in your \verb'Documents/MATLAB' folder). +Add this line: + + {\small + \begin{verbatim} + addpath ('/home/me/GraphBLAS/GraphBLAS') ; \end{verbatim} } + +\noindent +where \verb'/home/me/GraphBLAS' is the top-level folder containing your +copy of GraphBLAS. + +The \verb'graphblas_install' MATLAB script may fail to run \verb'cmake'. +If it does, it will print the following workaround, where the commands it +tells you to use will differ depending on the platform: + + {\small + \begin{verbatim} + Building GraphBLAS with cmake failed. Try this outside of MATLAB: + + cd /home/me/GraphBLAS/GraphBLAS/build + cmake .. + cmake --build . --config Release -j40 + + Then do this inside MATLAB: + + cd /home/me/GraphBLAS/GraphBLAS/@GrB/private + gbmake \end{verbatim} } + +\noindent +where \verb'/home/me/GraphBLAS' is your copy of GraphBLAS. + +%---------------------------------------- +\subsection{More details} +%---------------------------------------- + +%---------------------------------------- +\subsubsection{On Linux and Mac} %---------------------------------------- GraphBLAS makes extensive use of features in the C11 standard, and thus a @@ -14051,17 +14153,11 @@ \subsection{On Linux and Mac} is not recommended; it results in poor performance for \verb'#pragma omp atomic'. -On the Mac (OS X), \verb'clang' 8.0.0 in \verb'Xcode' version 8.2.1 is -sufficient, although earlier versions of \verb'Xcode' may work as well. For -the GNU \verb'gcc' compiler, version 4.9 or later is required, but best -performance is obtained in 9.3 or later. Version 3.13 or later of \verb'cmake' -is required; version 3.17 is preferred. - -If you are using a pre-C11 ANSI C compiler, such as Microsoft Visual Studio, -then the \verb'_Generic' keyword is not available. SuiteSparse:GraphBLAS -will still compile, but you will not have access to polymorphic functions -such as \verb'GrB_assign'. You will need to use the non-polymorphic functions -instead. +If you are using a C compiler that does not support the C11 standard, such as +\verb'cl' in Microsoft Visual Studio, then the \verb'_Generic' keyword is not +available. SuiteSparse:GraphBLAS will still compile, but you will not have +access to polymorphic functions such as \verb'GrB_assign'. You will need to +use the non-polymorphic functions instead. To compile SuiteSparse:GraphBLAS, simply type \verb'make' in the main GraphBLAS folder, which compiles the library with your default system compiler. This @@ -14136,163 +14232,53 @@ \subsection{On Linux and Mac} JOBS=32 CC=gcc make \end{verbatim} } %---------------------------------------- -\subsection{More details on the Mac (Intel-based) using gcc} +\subsubsection{On the Mac (Intel or ARM)} %---------------------------------------- -SuiteSparse:GraphBLAS requires OpenMP for its internal parallelism, but -OpenMP is not on the Mac by default. - -If you have the Intel compiler and OpenMP library, then use the following -in the top-level \verb'GraphBLAS' folder. OpenMP will be found automatically: - - {\small - \begin{verbatim} - make CC=icc CXX=icpc \end{verbatim} } - -The following instructions work on MacOS Big Sur (v11.3) -and MacOS Monterey (12.1), using -cmake 3.13 or later: - +GraphBLAS requires \verb'cmake' v3.20 or later, and it optionally uses +\verb'make' to simplify the use of the cmake build system. It also needs +other Apple Command Line Tools from Xcode. First install Xcode (see \url{https://developer.apple.com/xcode}), and then install the command line tools for Xcode: {\small \begin{verbatim} - cd /Applications/Utilities - xcode-select —install \end{verbatim} } - -Next, install brew, at \url{https://brew.sh}. - -If not used for the MATLAB mexFunction interface, a recent update of the Apple -Clang compiler now works with \verb'libomp' and the -\verb'GraphBLAS/CMakeLists.txt'. To use the MATLAB mexFunction, however, you -must use \verb'gcc' (\verb'gcc-11' is recommended). Using Clang will result in -a segfault when you attempt to use the \verb'@GrB' interface in MATLAB. - -With MacOS Big Sur install \verb'gcc-11', \verb'cmake', and OpenMP, and then -compile GraphBLAS. cmake 3.13 or later is required. For the MATLAB -mexFunctions, you must use \verb'gcc-11'; the \verb'libomp' from \verb'brew' -will allow you to compile the mexFunctions but they will not work properly. - - {\small - \begin{verbatim} - brew install cmake - brew install libomp - brew install gcc - cd GraphBLAS/GraphBLAS - make CC=gcc-11 CXX=g++-11 JOBS=8 \end{verbatim} } - -The above instructions assume MATLAB, using -\verb'libgraphblas_matlab.dylib', since MATLAB includes its -own copy of SuiteSparse:GraphBLAS (\verb'libmwgraphblas.dylib') but at version -v3.3.3, not the latest version. + xcode-select --install \end{verbatim} } -Next, compile the MATLAB mexFunctions. I had to edit this file first: - -{\small -\begin{verbatim} -/Users/davis/Library/Application Support/MathWorks/MATLAB/R2021a/mex_C_maci64.xml \end{verbatim} } - -where you would replace \verb'davis' with your MacOS user name. -Change lines 4 and 18, where both cases of \verb'MACOSX_DEPLOYMENT_TARGET=10.14' -must become \verb"MACOSX_DEPLOYMENT_TARGET=11.3". Otherwise, MATLAB -complains that the \verb'libgraphblas_matlab.dylib' was built for 11.3 but -linked for 10.14. - -Next, type the following in the MATLAB Command Window: - - {\small - \begin{verbatim} - cd GraphBLAS/GraphBLAS/@GrB/private - gbmake \end{verbatim} } - -Then add the paths to your \verb'startup.m' file (usually in -\verb'~/Documents/MATLAB/startup.m'). For example, my path is: - - {\small - \begin{verbatim} - addpath ('/Users/davis/GraphBLAS/GraphBLAS') ; - addpath ('/Users/davis/GraphBLAS/GraphBLAS/build') ; \end{verbatim} } - -Finally, you can run the tests to see if your installation works: - - {\small - \begin{verbatim} - cd ../../test - gbtest \end{verbatim} } +Next, install brew, at \url{https://brew.sh}, or \verb'spack'. +Use brew or spack to install cmake version 3.20 or later. %---------------------------------------- -\subsection{More details for MATLAB on the Mac (Apple Silicon based)} +\subsubsection{On the Intel-based Mac} %---------------------------------------- -MATLAB on the Apple-Silicon-based Mac (M1, M2) is not yet a native ARM64 -application (as of R2022b). +If you have the Intel compiler and its OpenMP library, then use the following +in the top-level \verb'GraphBLAS' folder. The Intel OpenMP library +will be found automatically: -For MATLAB on the M1 Mac, you must compile the x86 version of -\verb'libgraphblas_matlab.so'. This requires the x86 version of \verb'brew'. -First, install it in \verb'/usr/local/bin/brew' with these 2 commands (the 2nd -as a single line). - -\begin{verbatim} -arch -x86_64 zsh -arch -x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com - /Homebrew/install/master/install.sh)" -\end{verbatim} - -If you install the default arm64 \verb'brew', it is located in -\verb'/opt/homebrew/bin/brew'. I created these two aliases in my \verb'.zshrc' -file: - -\begin{verbatim} -alias brew_arm='arch -arm64 /opt/homebrew/bin/brew' -alias brew_x86='arch -x86_64 /usr/local/bin/brew' -\end{verbatim} - -Next, use \verb'brew_86' to install \verb'gcc-12' and \verb'libomp'. - -\begin{verbatim} -brew_x86 install gcc -brew_x86 install libomp -\end{verbatim} - -In the \verb'GraphBLAS/GraphBLAS' folder, do the following to compile -\verb'libgraphblas_matlab.so': - -\begin{verbatim} -make CC=/usr/local/bin/gcc-12 CXX=/usr/local/bin/g++-12 JOBS=8 -sudo make install -\end{verbatim} - -Ignore the \verb'"-arch option ignored..."' warnings. - -You can now start MATLAB and install the MATLAB interface with -\verb'gbmake' as described in the previous section. + {\small + \begin{verbatim} + make CC=icc CXX=icpc \end{verbatim} } %---------------------------------------- -\subsection{On the ARM64 architecture} +\subsubsection{MATLAB on the Mac (Apple Silicon based)} %---------------------------------------- -You may encounter a compiler error on the ARM64 architecture when using the -\verb'gcc' compiler, versions 6.x and earlier. This error was encountered on -ARM64 Linux with gcc 6.x: +MATLAB on the Apple-Silicon-based Mac is now a native ARM64 application (as of +R2023b). GraphBLAS is not supported for earlier versions of MATLAB on Apple +Silicon. -\begin{verbatim} -`In function GrB_Matrix_apply_BinaryOp1st_Scalar.part.1': -GrB_Matrix_apply.c:(.text+0x210): relocation truncated to -fit: R_AARCH64_CALL26 against `.text.unlikely' -\end{verbatim} - -For the ARM64, this error is silenced with gcc v7.x and later, at least on -Linux. +Note that GraphBLAS must use the same OpenMP library as MATLAB. This is +handled by the \verb'graphblas_install.m' script. %---------------------------------------- -\subsection{On Microsoft Windows} +\subsubsection{On Microsoft Windows} \label{sec:windows} %---------------------------------------- -SuiteSparse:GraphBLAS is now ported to Microsoft Visual Studio. However, that -compiler is not C11 compliant. As a result, GraphBLAS on Windows will have -a few minor limitations. +SuiteSparse:GraphBLAS can be compiled by the Microsoft C compiler (\verb'cl') +using Microsoft Visual Studio. However, that compiler is not C11 compliant. As +a result, GraphBLAS on Windows will have a few minor limitations. \begin{itemize} \item The MS Visual Studio compiler does not support the \verb'_Generic' @@ -14328,7 +14314,7 @@ \subsection{On Microsoft Windows} Version 2019 is preferred, but earlier versions may also work. \item Open a terminal window and type this in the - \verb'SuiteSparse/GraphBLAS/build' folder: + \verb'GraphBLAS/build' folder: \vspace{-0.1in} {\small @@ -14340,7 +14326,7 @@ \subsection{On Microsoft Windows} the cmake build system for GraphBLAS. \item The \verb'cmake' command generates many files in - \verb'SuiteSparse/GraphBLAS/build', and the file \verb'graphblas.sln' in + \verb'GraphBLAS/build', and the file \verb'graphblas.sln' in particular. Open the generated \verb'graphblas.sln' file in Visual Studio. \item Optionally: right-click \verb'graphblas' in the left panel (Solution @@ -14356,10 +14342,12 @@ \subsection{On Microsoft Windows} patient; some files may take a while to compile and sometimes may appear to be stalled. Just wait. - % Alternatively, type this command in the terminal window: - % {\small - % \begin{verbatim} - % devenv graphblas.sln /build "release|x64" /project graphblas \end{verbatim}} +\item Alternatively, instead of opening Visual Studio, + type this command in the terminal window while in the \verb'build' folder: + {\small + \begin{verbatim} + cmake --build . --config Release + \end{verbatim}} \item Add the \verb'GraphBLAS/build/Release' folder to the Windows System path: @@ -14371,6 +14359,8 @@ \subsection{On Microsoft Windows} \item From the top left side of the \verb'System' window, select \verb'Advanced System Settings'. You may have to authenticate at this step. + If you cannot authenticate, try setting the User Environment Variables + instead. \item The \verb'Systems Properties' window should appear with the \verb'Advanced' tab selected; select \verb'Environment Variables'. @@ -14382,6 +14372,9 @@ \subsection{On Microsoft Windows} \item Add the full path of the \verb'GraphBLAS\build\Release' folder (typically starting with \verb'C:\Users\you\'..., where \verb'you' is your Windows username) to the \verb'Path'. + To use the MATLAB interface, add + the full path of the \verb'GraphBLAS\GraphBLAS\build\Release' folder + as well. \item If the above steps do not work, you can instead copy the \verb'graphblas.*' files from \verb'GraphBLAS\build\Release' into any existing folder listed in your \verb'Path'. @@ -14394,14 +14387,15 @@ \subsection{On Microsoft Windows} \end{enumerate} %---------------------------------------- -\subsection{Mac using clang} +\subsubsection{Mac using clang} +\label{mac_openmp} %---------------------------------------- -To use OpenMP with clang on the Mac, try installing it from the +To use OpenMP with clang on the Mac, try installing it from the \url{https://mac.r-project.org/openmp/} project. Be sure to check that page for the OpenMP version that matches your version of Apple Xcode. -If using Xcode 13.3 to 13.4.1, use: +For example, if using Xcode 13.3 to 13.4.1, use: {\scriptsize \begin{verbatim} @@ -14409,15 +14403,6 @@ \subsection{Mac using clang} sudo tar fvxz openmp-13.0.0-darwin21-Release.tar.gz -C / \end{verbatim} } - -For Xcode 14+ use the following instead. - - {\scriptsize - \begin{verbatim} - curl -O https://mac.r-project.org/openmp/openmp-14.0.6-darwin20-Release.tar.gz - sudo tar fvxz openmp-14.0.6-darwin20-Release.tar.gz -C / - \end{verbatim} } - These commands will install universal binaries (ARM and x86) for \verb'libomp.dylib', and the following files: @@ -14429,272 +14414,11 @@ \subsection{Mac using clang} /usr/local/include/omp-tools.h \end{verbatim} } - -Once you do this, the GraphBLAS Cmake should find this copy of OpenMP -for clang. - -%---------------------------------------- -\subsection{Compiling the MATLAB/Octave interface (for Octave)} -%---------------------------------------- -\label{gbmake} - -I'm working closely with John Eaton (the primary developer of Octave) to -enable SuiteSparse:GraphBLAS to work with Octave, and thus Octave 7 is -required. The latest version of Octave is 6.4.0, so you need to download and -install the development version of Octave 7 to use SuiteSparse:GraphBLAS within -Octave. - -First, compile the SuiteSparse:GraphBLAS dynamic library -(\verb'libgraphblas.so' for Linux, \verb'libgraphblas.dylib' for Mac, -or \verb'graphblas.dll' for Windows), as described in the prior two -subsections. - -On the Mac, SuiteSparse:GraphBLAS v6.1.4 and Octave 7 will work -Apple Silicon (thanks to G{\'{a}}bor Sz{\'{a}}rnyas). Here are his instructions -(replicated from -\url{https://github.com/DrTimothyAldenDavis/GraphBLAS/issues/90}); do -these in your Mac Terminal: - -\begin{itemize} -\item Building Octave. Grab the brew formula: - - {\scriptsize - \begin{verbatim} - wget https://raw.githubusercontent.com/Homebrew/homebrew-core/master/Formula/octave.rb - \end{verbatim} } - -\item Edit \verb'octave.rb'. - - Add \verb`"disable-docs"` to \verb`args` (or ensure that you have a working - texinfo installation). - Edit Mercurial (\verb`hg`) repository: switch from the \verb`default` branch - (containing code for Octave v8.0) to \verb`stable` (v7.0). Then do: - - {\small - \begin{verbatim} - brew install --head ./octave.rb - \end{verbatim} } - -\item Building the tests (\verb'gbmake'). - Grab the OpenMP binaries as described at - \url{https://mac.r-project.org/openmp/} - - {\scriptsize - \begin{verbatim} - curl -O https://mac.r-project.org/openmp/openmp-13.0.0-darwin21-Release.tar.gz - sudo tar fvxz openmp-13.0.0-darwin21-Release.tar.gz -C / - \end{verbatim} } - -\item Do the following to edit \verb'gbmake.m': - - {\scriptsize - \begin{verbatim} - sed -i.bkp 's/-fopenmp/-Xclang -fopenmp/g' @GrB/private/gbmake.m - \end{verbatim} } - -\end{itemize} - -Once Octave 7 and SuiteSparse:GraphBLAS are compiled and installed, -and \verb'gbmake.m' is modified if needed for Octave 7 on the Mac, -(or if using MATLAB) continue with the following instructions: - -\begin{enumerate} -\item In the MATLAB/Octave command window: - - {\small - \begin{verbatim} - cd GraphBLAS/GraphBLAS/@GrB/private - gbmake \end{verbatim} } - -\item Follow the remaining instructions in the - \verb'GraphBLAS/GraphBLAS/README.md' file, to revise your - MATLAB/Octave path and \verb'startup.m' file. - -\item As a quick test, try the command \verb'GrB(1)', which - creates and displays a 1-by-1 GraphBLAS matrix. For a longer test, do the - following: - - {\small - \begin{verbatim} - cd GraphBLAS/GraphBLAS/test - gbtest \end{verbatim} } - -\item In Windows, if the tests fail with an error stating that the - mex file is invalid because the module could not be found, it means - that MATLAB could not find the compiled \verb'graphblas.lib', \verb'*.dll' - or \verb'*.exp' files in the \verb'build/Release' folder. This can happen - if your Windows System path is not set properly, or if Windows is not - recognizing the \verb'GraphBLAS/build/Release' folder (see - Section~\ref{sec:windows}) Or, you might not have permission to change your - Windows System path. In this case, do the following in the MATLAB Command - \vspace{-0.1in} - Window: - - \vspace{-0.1in} - {\small - \begin{verbatim} - cd GraphBLAS/build/Release - GrB(1) \end{verbatim} } - - \vspace{-0.1in} - After this step, the GraphBLAS library will be loaded into MATLAB. You may - need to add the above lines in your \verb'Documents/MATLAB/startup.m' file, - so that they are done each time MATLAB starts. You will also need to do - this after \verb'clear all' or \verb'clear mex', since those MATLAB - commands remove all loaded libraries from MATLAB. - - You might also get an error ``the specified procedure cannot be found.'' - This can occur if you have upgraded your GraphBLAS library from a prior - version, and some of the compiled files \verb'@GrB/private/*.mex*' - are stale. Try the command \verb'gbmake all' in the MATLAB Command - Window, which forces all of the MATLAB interface to be recompiled. - Or, try deleting all \verb'@GrB/private/*.mex*' files and running - \verb'gbmake' again. - -\item On Windows, the \verb'casin', \verb'casinf', \verb'casinh', and - \verb'casinhf' functions provided by Microsoft do not return the correct - imaginary part. As a result, \verb'GxB_ASIN_FC32', \verb'GxB_ASIN_FC64' - \verb'GxB_ASINH_FC32', and \verb'GxB_ASINH_FC64' do not work properly on - Windows. This affects the \verb'GrB/asin', \verb'GrB/acsc', - \verb'GrB/asinh', and \verb'GrB/acsch', functions in the MATLAB interface. - See the MATLAB tests bypassed in \verb'gbtest76.m' for details, in the - \newline - \verb'GraphBLAS/GraphBLAS/test' folder. - %% FUTURE: fix asin and acsc on Windows for the complex case. - -\end{enumerate} - -%---------------------------------------- -\subsection{Compiling the MATLAB/Octave interface (for MATLAB)} -\label{R2021a} -%---------------------------------------- - -MATLAB R2021a includes its own copy of SuiteSparse:GraphBLAS v3.3.3, as the -file \verb'libmwgraphblas.so', which is used for the built-in \verb'C=A*B' when -both \verb'A' and \verb'B' are sparse (see the Release Notes of MATLAB R2021a, -which discusses the performance gained in MATLAB by using GraphBLAS). - -That's great news for the impact of GraphBLAS on MATLAB itself, and the domain -of high performance computing in general, but it causes a linking problem when -using this MATLAB interface for GraphBLAS. The two use different versions of -the same library, and a segfault arises if the MATLAB interface for v4.x (or -later) tries to link with the older GraphBLAS v3.3.3 library. Likewise, the -built-in \verb'C=A*B' causes a segfault if it tries to use the newer GraphBLAS -v4.x (or later) libraries. - -To resolve this issue, a second GraphBLAS library must be compiled, -\verb'libgraphblas_matlab', where the internal symbols are all renamed so they -do not conflict with the \verb'libmwgraphblas' library. Then both libraries -can co-exist in the same instance of MATLAB. - -To do this, go to the \verb'GraphBLAS/GraphBLAS' folder, containing the -MATLAB interface. That folder contains a \verb'CMakeLists.txt' file to -compile the \verb'libgraphblas_matlab' library. See the instructions -for how to compile the C library \verb'libgraphblas', and repeat them but -using the folder \newline -\verb'SuiteSparse/GraphBLAS/GraphBLAS/build' instead of \newline -\verb'SuiteSparse/GraphBLAS/build'. - -This will compile the renamed SuiteSparse:GraphBLAS dynamic library -(\verb'libgraphblas_matlab.so' for Linux, \verb'libgraphblas_matlab.dylib' -for Mac, or \verb'graphblas_matlab.dll' for Windows). These can be -placed in the same system-wide location as the standard \verb'libgraphblas' -libraries, such as \verb'/usr/local/lib' for Linux. The two pairs of -libraries share the identical \verb'GraphBLAS.h' include file. - -If you do not have system privileges to install the GraphBLAS compiled -libraries via \verb'sudo make install', then augment your -\verb'LD_LIBRARY_PATH' (Linux) or \verb'DYLD_LIBRARY_PATH' (MacOS) to point to -your personal copy of the \newline -\verb'SuiteSparse/GraphBLAS/GraphBLAS/build' folder. See \newline -\url{https://www.mathworks.com/help/matlab/matlab_external/building-on-unix-operating-systems.html} -for details. - -Next, compile the MATLAB interface as described in Section~\ref{gbmake}. For -any instructions in that Section that refer to the \verb'GraphBLAS/build' -folder (Linux and Mac) or \verb'GraphBLAS/build/Release' (Windows), use \newline -\verb'GraphBLAS/GraphBLAS/build' (Linux and Mac) or \newline -\verb'GraphBLAS/GraphBLAS/build/Release' (Windows) instead. - -The resulting functions for your \verb'@GrB' object will now work just fine; -no other changes are needed. - -%---------------------------------------- -\subsection{Setting the C flags and using CMake} -%---------------------------------------- - -Next, do \verb'make' in the \verb'build' directory. If this still fails, see -the \verb'CMakeLists.txt' file. You can edit that file to pass -compiler-specific options to your compiler. Locate this section in the -\verb'CMakeLists.txt' file. Use the \verb'set' command in \verb'cmake', as in -the example below, to set the compiler flags you need. - - {\small - \begin{verbatim} - # check which compiler is being used. If you need to make - # compiler-specific modifications, here is the place to do it. - if ("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU") - # cmake 2.8 workaround: gcc needs to be told to do C11. - # cmake 3.0 doesn't have this problem. - set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c11 -lm " ) - ... - elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "Intel") - ... - elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang") - ... - elseif ("${CMAKE_C_COMPILER_ID}" STREQUAL "MSVC") - ... - endif ( ) - \end{verbatim} } - -To compile SuiteSparse:GraphBLAS without running the demos, use \newline -\verb'make library' in the top-level directory, or \verb'make' in the -\verb'build' directory. - -Several compile-time options can be selected by editing the \verb'Source/GB.h' -file, but these are meant only for code development of SuiteSparse:GraphBLAS -itself, not for end-users of SuiteSparse:GraphBLAS. +Once you do this, the GraphBLAS cmake build system should find this copy of +OpenMP for clang. %---------------------------------------- -\subsection{Running the Demos} -%---------------------------------------- - -After \verb'make' in the top-level directory to compile the library, type -\verb'make demo' to run the demos (also in the top-level directory). -You can also run the demos after compiling with \verb'make all': - - {\small - \begin{verbatim} - make all - cd Demo - ./demo \end{verbatim} } - -The \verb'./demo' command is a script that runs the demos with various input -matrices in the \verb'Demo/Matrix' folder. The output of the demos will be -compared with expected output files in \verb'Demo/Output'. - -NOTE: -DO NOT publish benchmarks of these demos, and do not link against the -demo library in any user application. These codes are sometimes slow, -and are meant as simple illustrations only, not for performance. The fastest -methods are in LAGraph, not in SuiteSparse/GraphBLAS/Demo. Benchmark LAGraph -instead. Eventually, all GraphBLAS/Demos methods will be removed, and LAGraph -will serve all uses: for illustration, benchmarking, and production uses. - -%---------------------------------------- -\subsection{Installing SuiteSparse:GraphBLAS} -%---------------------------------------- - -To install the library (typically in \verb'/usr/local/lib' and -\verb'/usr/local/include' for Linux systems), go to the top-level GraphBLAS -folder and type: - - {\small - \begin{verbatim} - sudo make install \end{verbatim} } - -%---------------------------------------- -\subsection{Linking issues after installation} +\subsubsection{Linking issues after installation} %---------------------------------------- My Linux distro (Ubuntu 18.04) includes a copy of \verb'libgraphblas.so.1', @@ -14711,12 +14435,12 @@ \subsection{Linking issues after installation} Revising my \verb'LD_LIBRARY_PATH' to put \verb'/usr/local/lib' first in the library directory order didn't help. If you encounter this problem, try one of the following options (all four work for me, and link against the proper -version, \verb'/usr/local/lib/libgraphblas.so.6.1.4' for example): +version, \verb'/usr/local/lib/libgraphblas.so.9.2.0' for example): {\small \begin{verbatim} - gcc prog.c -l:libgraphblas.so.6 - gcc prog.c -l:libgraphblas.so.6.1.4 + gcc prog.c -l:libgraphblas.so.9 + gcc prog.c -l:libgraphblas.so.9.2.0 gcc prog.c /usr/local/lib/libgraphblas.so gcc prog.c -Wl,-v -L/usr/local/lib -lgraphblas \end{verbatim} } @@ -14733,14 +14457,14 @@ \subsection{Linking issues after installation} } \end{verbatim} } Compile the program above, then use this command to ensure -\verb'libgraphblas.so.6' appears: +\verb'libgraphblas.so.9' appears: {\small \begin{verbatim} ldd a.out \end{verbatim} } %---------------------------------------- -\subsection{Running the tests} +\subsubsection{Running the tests} %---------------------------------------- To run a short test, type \verb'make demo' at the top-level \verb'GraphBLAS' @@ -14756,7 +14480,7 @@ \subsection{Running the tests} \verb'GraphBLAS/GraphBLAS' folder for more details. %---------------------------------------- -\subsection{Cleaning up} +\subsubsection{Cleaning up} %---------------------------------------- To remove all compiled files, type \verb'make' \verb'distclean' in the top-level @@ -14768,6 +14492,30 @@ \section{Release Notes} \begin{itemize} +\item Aug 2, 2024: version 9.3.0 + + \begin{itemize} + \item code restructuring: Source folder split into many subfolders, and + some files and internal functions renamed. No visible external change. + \item (55) bug fix: \verb'GrB_apply' with user-defined index-unary op and + generic kernel. + \item (54) bug fix: reducing a huge iso full matrix to a scalar resulted in + integer overflow if nrows*ncols was larger than about $2^{60}$. + \item reduced size of compiled library: \verb'int16' and \verb'uint16' + types and operators for FactoryKernels are disabled in + \verb'GB_control.h'. The JIT will always be used instead. + \end{itemize} + +\item May 22, 2024: version 9.2.0 + + \begin{itemize} + \item Added \verb'graphblas_install.m' for a simpler method of compiling + the MATLAB/Octave interface for GraphBLAS. + \item JIT: sanitizing the JIT cache path, better burble for compiler errors. + \item \verb'GrB_get/GrB_set': better handling of concurrent get/set between + different user threads. + \end{itemize} + \item Mar 22, 2024: version 9.1.0 \begin{itemize} diff --git a/GraphBLAS/Doc/GraphBLAS_version.tex b/GraphBLAS/Doc/GraphBLAS_version.tex index c4b9b9002b..a0cfac3bf4 100644 --- a/GraphBLAS/Doc/GraphBLAS_version.tex +++ b/GraphBLAS/Doc/GraphBLAS_version.tex @@ -1,5 +1,5 @@ % version of SuiteSparse:GraphBLAS \date{VERSION -9.1.0, -Mar 22, 2024} +9.3.0, +Aug 2, 2024} diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_fc32.c index 4c5d54e042..995e8f392e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_div (a,b) ; z = x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_div_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_fc32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_div_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_fc64.c index fe05f0d77b..013112b756 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_div (a,b) ; z = x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__any_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__any_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -116,7 +118,7 @@ GrB_Info GB (_Adot3B__any_div_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_fc64) ( @@ -145,7 +147,7 @@ GrB_Info GB (_AsaxbitB__any_div_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -228,8 +230,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -237,8 +239,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -278,8 +280,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -287,8 +289,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_fp32.c index dd0d16eb34..55d59244c2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a/b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_div_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_fp32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_div_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_fp64.c index 7538baf8fd..11b7e9d722 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a/b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_div_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_fp64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_div_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_int16.c index 691e76fe66..b9c289ee9a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_div_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_div_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_int32.c index e22807f116..de8a3f1ef7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_div_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_div_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_int64.c index b6255b935f..6c245fbf31 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (a,b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_div_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_int64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_div_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_int8.c index 67ef578d28..417b5fee80 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_div_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_div_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_uint16.c index 8d47cdef15..a030d058a9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_div_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_div_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_uint32.c index 356fa3f02e..9da1a97cec 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_div_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_div_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_uint64.c index b712d9c6e3..f9b4b4c2fd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (a,b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_div_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_uint64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_div_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_div_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_div_uint8.c index d4fb4bf2a8..90d74f35e0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_div_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_div_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_div_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_div_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_div_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_div_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_bool.c index e703010e98..3c09083d51 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_bool) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_fp32.c index cbb2e24ea3..17a88f44f4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_fp32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_fp64.c index 5eac2738df..f2f71a7e61 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_fp64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_int16.c index 01c00fdbc6..f19b1cf491 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_int32.c index 9e9d3e2f22..05774c4212 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_int64.c index e39136e195..896c48c74f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_int64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_int8.c index 05fb5058a5..acd06b9f40 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint16.c index 73567ea646..4c360dd2dc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint32.c index e1ef4037fe..cbf107db02 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint64.c index 6a6873691e..de1ef0436b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_uint64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint8.c index ca6c8bae79..10baa80774 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_eq_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_eq_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_eq_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a == b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_eq_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_eq_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_eq_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_bool.c index 883b439686..64939c2795 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_first_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_bool) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_first_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_first_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_fc32.c index d85a53392f..7134402c99 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__any_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__any_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -121,7 +123,7 @@ GrB_Info GB (_Adot3B__any_first_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_fc32) ( @@ -150,7 +152,7 @@ GrB_Info GB (_AsaxbitB__any_first_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -233,8 +235,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -242,8 +244,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -283,8 +285,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -292,8 +294,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_fc64.c index 4fffec5b9e..d7aeccac28 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_first_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_fc64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_first_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_fp32.c index 6c57b96e29..412a54074a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__any_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__any_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -119,7 +121,7 @@ GrB_Info GB (_Adot3B__any_first_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_fp32) ( @@ -148,7 +150,7 @@ GrB_Info GB (_AsaxbitB__any_first_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -231,8 +233,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -240,8 +242,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -281,8 +283,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -290,8 +292,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_fp64.c index b0e92a5f1b..12a8ab7ad0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__any_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__any_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -119,7 +121,7 @@ GrB_Info GB (_Adot3B__any_first_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_fp64) ( @@ -148,7 +150,7 @@ GrB_Info GB (_AsaxbitB__any_first_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -231,8 +233,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -240,8 +242,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -281,8 +283,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -290,8 +292,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__any_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_int16.c index 853bbb0455..c00f49fa02 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_first_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_int16) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_first_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_int32.c index 2e712868f6..94994d0fb5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_first_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_int32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_first_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_int64.c index 150c0d45ef..a4fa50d4e7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__any_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__any_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -119,7 +121,7 @@ GrB_Info GB (_Adot3B__any_first_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_int64) ( @@ -148,7 +150,7 @@ GrB_Info GB (_AsaxbitB__any_first_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -231,8 +233,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -240,8 +242,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -281,8 +283,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -290,8 +292,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_int8.c index 74241d579d..a74736e1a7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_first_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_int8) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_first_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_uint16.c index cd54aded6e..4eacf468c4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_first_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_uint16) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_first_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_uint32.c index 9e2c8f26c7..9a222dc506 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_first_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_uint32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_first_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_uint64.c index 2d09c01ec0..c4ed7f7138 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__any_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__any_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -119,7 +121,7 @@ GrB_Info GB (_Adot3B__any_first_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_uint64) ( @@ -148,7 +150,7 @@ GrB_Info GB (_AsaxbitB__any_first_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -231,8 +233,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -240,8 +242,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -281,8 +283,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -290,8 +292,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_first_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_first_uint8.c index 651c5ba400..08fe6ec854 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_first_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_first_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_first_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = a @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_first_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_first_uint8) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_first_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_firsti1_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_firsti1_int32.c index 7fa06a72e6..03c9792f8f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_firsti1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_firsti1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (i+1) @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__any_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__any_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -121,7 +123,7 @@ GrB_Info GB (_Adot3B__any_firsti1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_firsti1_int32) ( @@ -150,7 +152,7 @@ GrB_Info GB (_AsaxbitB__any_firsti1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -233,8 +235,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -242,8 +244,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -283,8 +285,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -292,8 +294,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_firsti1_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_firsti1_int64.c index d762b5c803..31e5ad7dfd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_firsti1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_firsti1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (i+1) @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__any_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__any_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -122,7 +124,7 @@ GrB_Info GB (_Adot3B__any_firsti1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_firsti1_int64) ( @@ -151,7 +153,7 @@ GrB_Info GB (_AsaxbitB__any_firsti1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -234,8 +236,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -243,8 +245,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -284,8 +286,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -293,8 +295,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_firsti_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_firsti_int32.c index 3300e2a91d..29269523e2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_firsti_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_firsti_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = i @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_firsti_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_firsti_int32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_firsti_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_firsti_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_firsti_int64.c index 844aa9e45d..af5c6d8adb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firsti_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_firsti_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_firsti_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = i @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__any_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__any_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -121,7 +123,7 @@ GrB_Info GB (_Adot3B__any_firsti_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_firsti_int64) ( @@ -150,7 +152,7 @@ GrB_Info GB (_AsaxbitB__any_firsti_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -233,8 +235,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -242,8 +244,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -283,8 +285,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -292,8 +294,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__any_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_firstj1_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_firstj1_int32.c index 3e11ba53c2..1cc2dc3643 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_firstj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_firstj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (k+1) @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__any_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__any_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -122,7 +124,7 @@ GrB_Info GB (_Adot3B__any_firstj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_firstj1_int32) ( @@ -151,7 +153,7 @@ GrB_Info GB (_AsaxbitB__any_firstj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -234,8 +236,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -243,8 +245,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -284,8 +286,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -293,8 +295,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_firstj1_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_firstj1_int64.c index f886368840..4d9fca5347 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_firstj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_firstj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (k+1) @@ -70,7 +72,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -91,7 +93,7 @@ GrB_Info GB (_Adot2B__any_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_Adot3B__any_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -123,7 +125,7 @@ GrB_Info GB (_Adot3B__any_firstj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_firstj1_int64) ( @@ -152,7 +154,7 @@ GrB_Info GB (_AsaxbitB__any_firstj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -235,8 +237,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -244,8 +246,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -285,8 +287,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -294,8 +296,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_firstj_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_firstj_int32.c index 578a065514..964bdf2b97 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_firstj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_firstj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = k @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_firstj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_firstj_int32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_firstj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_firstj_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_firstj_int64.c index ca9ff09044..787d0fbec9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_firstj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_firstj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_firstj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = k @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__any_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__any_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -121,7 +123,7 @@ GrB_Info GB (_Adot3B__any_firstj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_firstj_int64) ( @@ -150,7 +152,7 @@ GrB_Info GB (_AsaxbitB__any_firstj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -233,8 +235,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -242,8 +244,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -283,8 +285,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -292,8 +294,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__any_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_bool.c index 3306c0291e..02d940b4a1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_bool) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_fp32.c index b48fe11bde..073efd23c2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_fp32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_fp64.c index 1de9394e1b..23e4aad9eb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_fp64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_int16.c index e32d16a055..4688468bd1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_int32.c index 934ecac008..2cdd62e476 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_int64.c index 5cc88228d8..012c073115 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_int64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_int8.c index c1a460d4f9..176564f172 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint16.c index af49e5e016..30af637953 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint32.c index a6b77f2c04..76df8ef9ef 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint64.c index 87ce6c56cd..11c98801d8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_uint64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint8.c index e09ed6bd02..497f5abace 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ge_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ge_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_ge_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a >= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ge_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ge_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ge_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_bool.c index 511868f346..2433f94b92 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_bool) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_fp32.c index 594ef378f6..8d2d057a63 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_fp32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_fp64.c index 5b89fe8575..dabb4d93d4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_fp64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_int16.c index ddfaf72cae..ccb46fdde1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_int32.c index 8304d59199..83969e7590 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_int64.c index 41020f4ced..7b161d510b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_int64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_int8.c index d402689456..9aa478a29c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint16.c index fcfbe65721..ff7cc5f1e6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint32.c index 6e4270ac84..ad6a03d443 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint64.c index 56ddcec68b..a733f4a067 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_uint64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint8.c index 29cc256179..48dcf9dfd4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_gt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_gt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_gt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a > b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_gt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_gt_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_gt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_land_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_land_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_land_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_land_bool.c index ef1cc5ab3f..22d750df19 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_land_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_land_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_land_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a && b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_land_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_land_bool) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_land_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_land_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_bool.c index be28865c2d..f9403b0561 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_bool) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_fp32.c index dfe98fe03f..9485df4a5f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_fp32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_fp64.c index d3c6bbd224..941775ae9c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_fp64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_int16.c index e8af8a7674..add0356aec 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_int32.c index ea9a6673ed..33a8f6d5d8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_int64.c index f51becb84f..d251159ee6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_int64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_int8.c index 1f90ac47c7..49a2e4eba3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_uint16.c index fcf7444578..d81affd9c5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_uint32.c index 968bd17ac9..3dff114bd8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_uint64.c index 621a824748..c28ab22600 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_uint64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_le_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_le_uint8.c index 6c0c1dd2b8..20fecda9a4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_le_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_le_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_le_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a <= b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_le_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_le_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_le_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lor_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lor_bool.c index 877eea227b..0e8e1bcf42 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_lor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a || b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lor_bool) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_bool.c index 6d406020cc..b20dbbfd9b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_bool) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_fp32.c index 5df96fea40..01226db186 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_fp32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_fp64.c index 9e12ae5c37..d7c77ce270 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_fp64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_int16.c index b42979b576..03a1bb227a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_int32.c index a9a1e4b0d7..e8a5c2008c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_int64.c index a03c542ca4..3453569df4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_int64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_int8.c index a4dd9adce2..93ee83b24b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint16.c index 4cc04266d6..59f52de40b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint32.c index 2286cba4d8..365f48d7e9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint64.c index 7655523a65..f3248fe6e8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_uint64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint8.c index bc491d814e..a962f0bd47 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_lt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a < b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lt_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lxor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_lxor_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_lxor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_lxor_bool.c index 57c64ff4a1..f31a4cb6fd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_lxor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_lxor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_lxor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_lxor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_lxor_bool) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_lxor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_lxor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_fp32.c index 7e2ce1fbbf..e03c2466ea 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (a,b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_max_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_fp32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_max_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_fp64.c index 61544b0387..99c812d5af 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (a,b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_max_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_fp64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_max_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_int16.c index c9c0dc7b21..cfcac8b928 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMAX (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_max_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_max_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_int32.c index 1d347c248c..4e47cd3ebe 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMAX (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_max_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_max_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_int64.c index 0e68e9fdda..bc202c07dd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMAX (a,b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_max_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_int64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_max_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_int8.c index da5680ec13..9451540946 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMAX (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_max_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_max_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_uint16.c index b635399bc6..c578ab2f96 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMAX (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_max_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_max_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_uint32.c index b908c057a6..c2bf4c08d4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMAX (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_max_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_max_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_uint64.c index cf7c0d8575..9c61444515 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMAX (a,b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_max_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_uint64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_max_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_max_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_max_uint8.c index 1cfae72d05..d10d368564 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_max_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_max_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_max_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMAX (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_max_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_max_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_max_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_fp32.c index e7edf15c01..3b89d45f61 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (a,b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_min_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_fp32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_min_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_fp64.c index c7de6daf71..004cb173db 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (a,b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_min_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_fp64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_min_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_int16.c index 1c2eefddd9..5d3efef04d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMIN (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_min_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_min_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_int32.c index e4a51a4193..fff982cead 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMIN (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_min_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_min_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_int64.c index 98fed4581e..22864e0e99 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMIN (a,b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_min_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_int64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_min_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_int8.c index 4173646d5c..fbdb081dbe 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMIN (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_min_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_min_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_uint16.c index fd8a0160aa..7df9231e50 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMIN (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_min_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_min_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_uint32.c index 80254a20c7..560a2a5c8d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMIN (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_min_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_min_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_uint64.c index 11de0126ec..9d00b51086 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMIN (a,b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_min_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_uint64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_min_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_min_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_min_uint8.c index 09fc0caea7..9c302331bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_min_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_min_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_min_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMIN (a,b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_min_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_min_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_min_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_fc32.c index 3976d3fcfd..ab4b8142a1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_minus (a,b) ; z = x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_minus_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_fc32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_minus_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_fc64.c index 85862ffc6b..1136643192 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_minus (a,b) ; z = x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__any_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__any_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -116,7 +118,7 @@ GrB_Info GB (_Adot3B__any_minus_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_fc64) ( @@ -145,7 +147,7 @@ GrB_Info GB (_AsaxbitB__any_minus_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -228,8 +230,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -237,8 +239,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -278,8 +280,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -287,8 +289,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_fp32.c index d74ce2047e..67ca970518 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a-b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_minus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_fp32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_minus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_fp64.c index b07d9b282a..32373c0e62 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a-b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_minus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_fp64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_minus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_int16.c index da6ab46f44..e01de14ee2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a-b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_minus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_minus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_int32.c index 25dbad3483..4ddd93ae0c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a-b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_minus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_minus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_int64.c index 91968dd843..229168d38a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a-b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_minus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_int64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_minus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_int8.c index 90d49200d5..7d8b64a7c1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a-b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_minus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_minus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint16.c index a12e8ce514..694aeeac9a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a-b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_minus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_minus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint32.c index dc9f672396..53e365ec53 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a-b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_minus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_minus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint64.c index af7df6f9ff..ead2e7f67e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a-b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_minus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_uint64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_minus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint8.c index 14bad44f30..07be6097bd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_minus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_minus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_minus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a-b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_minus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_minus_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_minus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_fp32.c index 3686bf5477..c86471ace8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_fp32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_fp64.c index ae1185bd0e..c86e00a893 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_fp64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_int16.c index 14faad2e0f..845ed11603 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_int32.c index 5e0393242d..248d5ab140 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_int64.c index 0834759079..3f94094a04 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_int64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_int8.c index 3f5c595001..ac114a71a2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint16.c index 6076daba06..0ec00c96ef 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint32.c index 5a77e7a346..90989196a3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint64.c index ee83015a59..a90acfc23b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_uint64) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint8.c index 44b311fba4..601f4bcf38 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_ne_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_ne_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_ne_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a != b) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_ne_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_ne_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_ne_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_fc32.c index 3da5a280fc..a763dd6a14 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_add (a,b) ; z = x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_plus_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_fc32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_plus_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_fc64.c index 725938ac5f..ad3a6cad38 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_add (a,b) ; z = x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__any_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__any_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -116,7 +118,7 @@ GrB_Info GB (_Adot3B__any_plus_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_fc64) ( @@ -145,7 +147,7 @@ GrB_Info GB (_AsaxbitB__any_plus_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -228,8 +230,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -237,8 +239,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -278,8 +280,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -287,8 +289,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_fp32.c index bef6a19f43..5b1a05a4f9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a+b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_plus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_fp32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_plus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_fp64.c index 56a5be4300..f6db4f7110 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a+b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_plus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_fp64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_plus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_int16.c index 672672834f..74c737c325 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a+b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_plus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_plus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_int32.c index b466d9df9a..1b692cfc13 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a+b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_plus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_plus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_int64.c index da43d407d7..eae29663ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a+b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_plus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_int64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_plus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_int8.c index 0dd395bc21..4a86a150e0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a+b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_plus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_plus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint16.c index 13a0100d2b..5f5f881e78 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a+b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_plus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_plus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint32.c index 4bf6634011..31883d8283 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a+b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_plus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_plus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint64.c index 3fa192e1ff..b917c1f4f9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a+b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_plus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_uint64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_plus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint8.c index 2cb0c43265..feebe070e5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_plus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_plus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_plus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a+b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_plus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_plus_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_plus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fc32.c index a803f7785c..8c0de4699a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_div (b,a) ; z = x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_rdiv_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_fc32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fc64.c index e8a7e3df21..fe98a57f30 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_div (b,a) ; z = x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__any_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__any_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -116,7 +118,7 @@ GrB_Info GB (_Adot3B__any_rdiv_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_fc64) ( @@ -145,7 +147,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -228,8 +230,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -237,8 +239,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -278,8 +280,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -287,8 +289,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fp32.c index 99d3be5b9e..183acf4afc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (b/a) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_rdiv_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_fp32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fp64.c index acdd3af506..c29cc1f371 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (b/a) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_rdiv_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_fp64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int16.c index b75231983b..660e207f92 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (b, a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rdiv_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int32.c index 80cdf6b19a..d68a5dd50a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (b, a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rdiv_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int64.c index f890352843..cfa2819d4c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (b, a) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_rdiv_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_int64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int8.c index 592066828a..9d177fab74 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (b, a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rdiv_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint16.c index 43f38121f3..e52b509976 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (b, a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rdiv_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint32.c index 8a8e21be51..77f29f999b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (b, a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rdiv_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint64.c index 854efab12e..42e207a45d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (b, a) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_rdiv_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_uint64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint8.c index 5241317466..94b6416b31 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rdiv_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rdiv_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_rdiv_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (b, a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rdiv_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rdiv_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rdiv_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fc32.c index d6ecfe2e37..aa717c729e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_minus (b,a) ; z = x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_rminus_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_fc32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fc64.c index 2665515623..6be133a331 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_minus (b,a) ; z = x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__any_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__any_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -116,7 +118,7 @@ GrB_Info GB (_Adot3B__any_rminus_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_fc64) ( @@ -145,7 +147,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -228,8 +230,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -237,8 +239,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -278,8 +280,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -287,8 +289,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fp32.c index 62036195fa..28813d5ad8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (b-a) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_rminus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_fp32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fp64.c index 116170d8b1..32be47f68d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (b-a) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_rminus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_fp64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int16.c index 5892b140ab..43bbe0cc8e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (b-a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rminus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int32.c index 798d61e0ea..d01ef95b3a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (b-a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rminus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int64.c index 112c6081db..1a20ce06d7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (b-a) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_rminus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_int64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int8.c index b2d303ff7d..b1537e661b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (b-a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rminus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint16.c index 4133ca49a9..e55526b434 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (b-a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rminus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint32.c index 854b7ced57..75bd2d3b63 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (b-a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rminus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint64.c index beab0d5392..efcb9fb383 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (b-a) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_rminus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_uint64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint8.c index dc95d7b112..0833785417 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_rminus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_rminus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_rminus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (b-a) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_rminus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_rminus_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_rminus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_bool.c index d8958462df..a7b43df624 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_bool.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_second_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_bool) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_second_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_second_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_fc32.c index aaf6fdc762..5b8f8a470f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_second_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_fc32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_second_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_fc64.c index 0482cbfa4c..dbd5430d69 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__any_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__any_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -116,7 +118,7 @@ GrB_Info GB (_Adot3B__any_second_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_fc64) ( @@ -145,7 +147,7 @@ GrB_Info GB (_AsaxbitB__any_second_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -228,8 +230,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -237,8 +239,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -278,8 +280,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -287,8 +289,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_fp32.c index 8bfd5b63d0..6e48f00e51 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_second_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_fp32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_second_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_fp64.c index b9db7144e2..6e1ea36f7e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_second_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_fp64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_second_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_int16.c index f903a89f13..2f34b08ef2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_second_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_second_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_int32.c index 97afbef0ed..500efc9948 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_second_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_second_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_int64.c index c96347d934..22e2deaba8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_second_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_int64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_second_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_int8.c index a50b1cef50..11615ca6d8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_second_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_second_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_uint16.c index 6dab26ec6d..ebf72e9ed9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_second_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_second_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_uint32.c index 5fdee71857..0feeb2d94e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_second_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_second_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_uint64.c index df74705559..76dc23780e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_second_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_uint64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_second_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_second_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_second_uint8.c index 3468ba4107..92143d1253 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_second_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_second_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_second_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = b @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_second_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_second_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_second_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_secondj1_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_secondj1_int32.c index d9a24c77a0..c7d683db86 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_secondj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_secondj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (j+1) @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__any_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__any_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -122,7 +124,7 @@ GrB_Info GB (_Adot3B__any_secondj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_secondj1_int32) ( @@ -151,7 +153,7 @@ GrB_Info GB (_AsaxbitB__any_secondj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -234,8 +236,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -243,8 +245,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -284,8 +286,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -293,8 +295,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_secondj1_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_secondj1_int64.c index 4995d2fa96..2b3de283d1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_secondj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_secondj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (j+1) @@ -70,7 +72,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -91,7 +93,7 @@ GrB_Info GB (_Adot2B__any_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_Adot3B__any_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -123,7 +125,7 @@ GrB_Info GB (_Adot3B__any_secondj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_secondj1_int64) ( @@ -152,7 +154,7 @@ GrB_Info GB (_AsaxbitB__any_secondj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -235,8 +237,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -244,8 +246,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -285,8 +287,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -294,8 +296,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_secondj_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_secondj_int32.c index d7caa36c13..eba1d4ca31 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_secondj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_secondj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = j @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_secondj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_secondj_int32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_secondj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_secondj_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_secondj_int64.c index 1791401088..8d9dcead7c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_secondj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_secondj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_secondj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = j @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__any_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__any_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -121,7 +123,7 @@ GrB_Info GB (_Adot3B__any_secondj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_secondj_int64) ( @@ -150,7 +152,7 @@ GrB_Info GB (_AsaxbitB__any_secondj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -233,8 +235,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -242,8 +244,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -283,8 +285,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -292,8 +294,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__any_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_fc32.c index 16507a89eb..13ba411512 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_mul (a,b) ; z = x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__any_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__any_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -120,7 +122,7 @@ GrB_Info GB (_Adot3B__any_times_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_fc32) ( @@ -149,7 +151,7 @@ GrB_Info GB (_AsaxbitB__any_times_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,8 +234,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -241,8 +243,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -282,8 +284,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -291,8 +293,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_fc64.c index c5b13c7acb..be4aad98f9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_mul (a,b) ; z = x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__any_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__any_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -116,7 +118,7 @@ GrB_Info GB (_Adot3B__any_times_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_fc64) ( @@ -145,7 +147,7 @@ GrB_Info GB (_AsaxbitB__any_times_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -228,8 +230,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -237,8 +239,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -278,8 +280,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -287,8 +289,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_fp32.c index b461679394..2813875a87 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a*b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_times_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_fp32) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_times_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_fp64.c index 683b188865..89d1d62eeb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (a*b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_times_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_fp64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_times_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_int16.c index 0417943508..959384d8d1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_int16.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a*b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_times_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_int16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_times_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_int32.c index eff251a9df..498e8af6fd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_int32.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a*b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_times_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_int32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_times_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_int64.c index 9c93c55250..f8507249ba 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_int64.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a*b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_times_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_int64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_times_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_int8.c index 96b4e982f7..c8c53fe6d5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_int8.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a*b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_times_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_int8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_times_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_uint16.c index 28331f6ba7..dbadfebfc1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a*b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_times_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_uint16) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_times_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_uint32.c index 6fb66b932d..fb30ed3d02 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a*b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_times_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_uint32) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_times_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_uint64.c index 7205ecf93a..d46b74eb1f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a*b) ; z = x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__any_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__any_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_Adot3B__any_times_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_uint64) ( @@ -147,7 +149,7 @@ GrB_Info GB (_AsaxbitB__any_times_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -230,8 +232,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -239,8 +241,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -280,8 +282,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -289,8 +291,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__any_times_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__any_times_uint8.c index 0e2d86e94c..5a9dadd9f2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__any_times_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__any_times_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__any_times_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a*b) ; z = x_op_y ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_times_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_times_uint8) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_times_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__band_band_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_band_uint16.c index 503e8483f8..158fc0818c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_band_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__band_band_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a & b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_band_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_band_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_band_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__band_band_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_band_uint32.c index f73daceba4..e0f789f5a4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_band_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__band_band_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a & b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_band_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_band_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_band_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__band_band_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_band_uint64.c index d7ed548819..c43837338c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_band_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__band_band_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a & b) ; z &= x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__band_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__band_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__band_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__band_band_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_band_uint64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__band_band_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__band_band_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_band_uint8.c index 83774c02d5..e11ba0e744 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_band_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_band_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__band_band_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a & b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_band_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_band_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_band_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_band_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint16.c index e66ba386e5..7148b9cf94 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__band_bor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a | b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_bor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bor_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_bor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint32.c index 8196cee620..a9a9058866 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__band_bor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a | b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_bor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bor_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_bor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint64.c index d3e4479d58..bcacd23c25 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__band_bor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a | b) ; z &= x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__band_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__band_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__band_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__band_bor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bor_uint64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__band_bor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint8.c index 3643284e59..904531f3fe 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__band_bor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a | b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_bor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bor_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_bor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_bor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint16.c index ad5214545c..4f6816f885 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__band_bxnor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = ~(a ^ b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_bxnor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bxnor_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_bxnor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint32.c index 70ffc55838..0c5a3eebf4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__band_bxnor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = ~(a ^ b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_bxnor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bxnor_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_bxnor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint64.c index d678afb113..704726827a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__band_bxnor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = ~(a ^ b) ; z &= x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__band_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__band_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__band_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__band_bxnor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bxnor_uint64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__band_bxnor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint8.c index 886c949e51..cd44b08d3b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxnor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bxnor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__band_bxnor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = ~(a ^ b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_bxnor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bxnor_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_bxnor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint16.c index 20e11a3ab1..cb75479c55 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__band_bxor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a ^ b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_bxor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bxor_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_bxor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint32.c index 0a5a5993a5..773dbba254 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__band_bxor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a ^ b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_bxor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bxor_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_bxor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint64.c index 4aaf8dfd26..8cb272bb80 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__band_bxor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a ^ b) ; z &= x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__band_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__band_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__band_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__band_bxor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bxor_uint64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__band_bxor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint8.c index 9e0525d384..950fa83216 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__band_bxor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__band_bxor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__band_bxor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a ^ b) ; z &= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__band_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__band_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__band_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__band_bxor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__band_bxor_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__band_bxor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__band_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__band_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint16.c index 86fe32671d..47ab592e06 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bor_band_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a & b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_band_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_band_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_band_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint32.c index e9d484fac9..7eddbdf853 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bor_band_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a & b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_band_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_band_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_band_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint64.c index ffb13fbe0e..7270f42129 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bor_band_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a & b) ; z |= x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__bor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__bor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__bor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__bor_band_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_band_uint64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__bor_band_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint8.c index c99d1df3f9..44452e2030 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_band_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_band_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bor_band_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a & b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_band_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_band_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_band_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_band_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint16.c index 8c1c5a126e..c3da2f4140 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a | b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_bor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bor_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_bor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint32.c index 4dc0b3e8e7..95a7ff1864 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a | b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_bor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bor_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_bor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint64.c index 0cf3145611..6015fb8903 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a | b) ; z |= x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__bor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__bor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__bor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__bor_bor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bor_uint64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__bor_bor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint8.c index 32452e1418..6cfda86b9f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a | b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_bor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bor_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_bor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_bor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint16.c index 52c8d73a47..a630eada27 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bxnor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = ~(a ^ b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_bxnor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bxnor_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_bxnor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint32.c index a2f89a613c..76c0ee75c8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bxnor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = ~(a ^ b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_bxnor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bxnor_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_bxnor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint64.c index 55da58f1fb..4fc6399f9e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bxnor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = ~(a ^ b) ; z |= x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__bor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__bor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__bor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__bor_bxnor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bxnor_uint64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__bor_bxnor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint8.c index 661bbb4c49..ff38cd920e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxnor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxnor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bxnor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = ~(a ^ b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_bxnor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bxnor_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_bxnor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint16.c index 48257c74c1..965e014c23 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bxor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a ^ b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_bxor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bxor_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_bxor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint32.c index 344c0d972c..eaa5ce21ea 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bxor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a ^ b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_bxor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bxor_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_bxor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint64.c index 63038e6d8f..8946c6808c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bxor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a ^ b) ; z |= x_op_y ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__bor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__bor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__bor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__bor_bxor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bxor_uint64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__bor_bxor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint8.c index f8912e2a84..7f3191edcf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bor_bxor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bor_bxor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bor_bxor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a ^ b) ; z |= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__bor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__bor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__bor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__bor_bxor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bor_bxor_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__bor_bxor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__bor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__bor_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint16.c index 4e7ed70ab4..2265b2a8ce 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_band_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a & b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_band_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_band_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_band_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint32.c index cea9a7da77..678e1ca565 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_band_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a & b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_band_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_band_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_band_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint64.c index c9a287d24f..fc248a01ef 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_band_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a & b) ; z = ~(z ^ x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__bxnor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__bxnor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__bxnor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__bxnor_band_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_band_uint64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__bxnor_band_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint8.c index 76f0f6730f..2df638129c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_band_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_band_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_band_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a & b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_band_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_band_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_band_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_band_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint16.c index a62d613a9a..f735db5e66 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a | b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_bor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bor_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint32.c index 54f4f78c52..d1b449b3c7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a | b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_bor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bor_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint64.c index d3e47e9b73..5aeabfd7e2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a | b) ; z = ~(z ^ x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__bxnor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__bxnor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__bxnor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__bxnor_bor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bor_uint64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint8.c index 87ce938e14..1c9d218736 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a | b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_bor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bor_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint16.c index 2532966577..a475f6537e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bxnor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = ~(a ^ b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_bxnor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bxnor_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bxnor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint32.c index 970012658e..24ab6d1ade 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bxnor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = ~(a ^ b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_bxnor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bxnor_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bxnor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint64.c index 0aaa788258..9324cf2253 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bxnor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = ~(a ^ b) ; z = ~(z ^ x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__bxnor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__bxnor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__bxnor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__bxnor_bxnor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bxnor_uint64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bxnor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint8.c index 31aa0637bf..123425e8f1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxnor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxnor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bxnor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = ~(a ^ b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_bxnor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bxnor_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bxnor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint16.c index 61e49a4bb6..2458d95bdb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bxor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a ^ b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_bxor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bxor_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bxor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint32.c index 673f2efc8d..ace4f296d6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bxor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a ^ b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_bxor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bxor_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bxor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint64.c index 5f278b4a5e..10ec9af21c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bxor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a ^ b) ; z = ~(z ^ x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__bxnor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__bxnor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__bxnor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__bxnor_bxor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bxor_uint64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bxor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint8.c index c7def1b4cc..0ca11d73b5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxnor_bxor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxnor_bxor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bxnor_bxor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a ^ b) ; z = ~(z ^ x_op_y) ; } @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__bxnor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__bxnor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__bxnor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__bxnor_bxor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxnor_bxor_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__bxnor_bxor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__bxnor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__bxnor_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint16.c index abda2e5a88..7b03a36a77 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_band_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a & b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_band_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_band_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_band_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint32.c index a49c4dbb38..3bc60b4613 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_band_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a & b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_band_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_band_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_band_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint64.c index a89ec8cecb..de0c8d8dda 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_band_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a & b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_band_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_band_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_band_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint8.c index 3dec2d0a81..7568f68910 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_band_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_band_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_band_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a & b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_band_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_band_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_band_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_band_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint16.c index 65f24c702b..368a08084d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a | b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bor_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint32.c index f8fee33e87..8d1974a0a5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a | b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bor_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint64.c index b3127a4661..1e0cd013cc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a | b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bor_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint8.c index 83e5102d17..f944b69568 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a | b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bor_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint16.c index f78ec1a8f7..ae8fe28c07 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bxnor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = ~(a ^ b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bxnor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bxnor_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bxnor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint32.c index 5c806e7746..719653b0b7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bxnor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = ~(a ^ b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bxnor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bxnor_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bxnor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint64.c index 6f40582f25..c434c2f763 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bxnor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = ~(a ^ b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bxnor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bxnor_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bxnor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint8.c index 57e8f7bbe6..df0e1fef37 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxnor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxnor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bxnor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = ~(a ^ b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bxnor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bxnor_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bxnor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxnor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint16.c index 74dc621caa..05097c546a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bxor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a ^ b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bxor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bxor_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bxor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint32.c index fbb61ab30e..19becdeb11 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bxor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a ^ b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bxor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bxor_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bxor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint64.c index 86ca328547..9be7525e14 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bxor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a ^ b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bxor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bxor_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bxor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint8.c index c08aca542c..ce9f86e5c7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__bxor_bxor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__bxor_bxor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__bxor_bxor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a ^ b) ; z ^= x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__bxor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__bxor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__bxor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__bxor_bxor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__bxor_bxor_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__bxor_bxor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__bxor_bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__bxor_bxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_bool.c index e89e25dbce..bf05d672f4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_bool) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_fp32.c index ed2beb8051..0e8de12e61 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_fp32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_fp64.c index dfdc3d5172..f7bc6eea79 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_fp64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int16.c index f691f7eef6..2b806e0ad4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_int16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int32.c index 19938db647..c0aab6668e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_int32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int64.c index 7c4d430d93..11268d027c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_int64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int8.c index 316ba3aaa3..bba974cd9d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_int8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_int8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint16.c index 0dc42cf6d0..2f46e7acdf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint32.c index 0e51252803..bdc1b0b99c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint64.c index d9213bca4d..5c8c273d27 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_uint64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint8.c index 66e311564a..fb273f64c0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_eq_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_eq_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_eq_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a == b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_eq_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_eq_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_eq_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_first_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_first_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_first_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_first_bool.c index c577e20cd6..79d6aab1be 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_first_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_first_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_first_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == a) @@ -61,7 +63,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -82,7 +84,7 @@ GrB_Info GB (_Adot2B__eq_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -105,7 +107,7 @@ GrB_Info GB (_Adot3B__eq_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -131,7 +133,7 @@ GrB_Info GB (_Adot4B__eq_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -140,7 +142,7 @@ GrB_Info GB (_Adot4B__eq_first_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_first_bool) ( @@ -169,7 +171,7 @@ GrB_Info GB (_AsaxbitB__eq_first_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_Asaxpy4B__eq_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -230,7 +232,7 @@ GrB_Info GB (_Asaxpy4B__eq_first_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -248,7 +250,7 @@ GrB_Info GB (_Asaxpy4B__eq_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__eq_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__eq_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -381,8 +383,8 @@ GrB_Info GB (_Asaxpy3B__eq_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -390,8 +392,8 @@ GrB_Info GB (_Asaxpy3B__eq_first_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -433,8 +435,8 @@ GrB_Info GB (_Asaxpy3B__eq_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -442,8 +444,8 @@ GrB_Info GB (_Asaxpy3B__eq_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_bool.c index 6b61e4ca65..d815a3f97a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_bool) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_fp32.c index ba74fb9fe5..005f5a76e0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_fp32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_fp64.c index b69bcaad0f..69a7bf783f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_fp64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int16.c index f93939dc1e..b8aa287683 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_int16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int32.c index 287d2daf04..de6597610a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_int32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int64.c index 0ebdfd19df..141af7ec43 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_int64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int8.c index e90d1b9498..6f3e910abe 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_int8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_int8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint16.c index 161bbb66af..b1e3778452 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint32.c index 443782d5b4..19ce0c196e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint64.c index b6a67e213b..6669eb7891 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_uint64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint8.c index 532ae20776..ee6c6431c2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ge_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ge_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ge_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a >= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ge_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ge_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ge_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_bool.c index e752a612e8..4af5604109 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_bool) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_fp32.c index 652ec2f993..a6510db291 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_fp32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_fp64.c index 46111d4215..3b9bf177d3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_fp64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int16.c index 95fe3129e5..7d009246d6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_int16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int32.c index 63686c25d4..f4a7588975 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_int32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int64.c index d449daf3be..2aa05d2bd2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_int64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int8.c index d83784d013..ab332d2684 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_int8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint16.c index c3d1e20e77..a1f786c915 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint32.c index 95201d64ea..4ca7d16a1a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint64.c index 25779d2c0a..d4e7228bfc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_uint64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint8.c index ea06322001..5110432c4f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_gt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_gt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_gt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a > b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_gt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_gt_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_gt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_land_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_land_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_land_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_land_bool.c index eb3deb0938..5e58eb058f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_land_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_land_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_land_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a && b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_land_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_land_bool) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_land_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_land_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_land_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_bool.c index 3d37118475..994d72d4c6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_bool) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_fp32.c index 328f446597..a426596f61 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_fp32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_fp64.c index 4ced55df5b..6c1f323265 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_fp64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_int16.c index 5cebc468a0..8cbf33045d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_int16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_int16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_int32.c index 4ae551fb44..7764d33820 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_int32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_int32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_int64.c index 073ab17c68..ccb6287a63 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_int64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_int64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_int8.c index dbd1fd0398..4594b3d3a4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_int8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_int8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint16.c index 708455f68d..055c197a34 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint32.c index 85d1845e25..988edfb471 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint64.c index c33e3b6f29..e96a30e4d1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_uint64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint8.c index fced3ca614..0e419b2bac 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_le_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_le_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_le_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a <= b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_le_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_le_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_le_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lor_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lor_bool.c index b01526a1a5..e4090e9923 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a || b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lor_bool) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lor_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_bool.c index 34125adc5f..45191ec887 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_bool) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_fp32.c index a487329fd9..2a679bda98 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_fp32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_fp64.c index d92af3c0e0..70cc8f4f6d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_fp64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int16.c index 05b401fc1c..4c3d7f75f1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_int16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int32.c index 4270eb86f8..dcaf54166d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_int32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int64.c index 7e9beef91e..701d2608a6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_int64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int8.c index e4e37eacc7..9f870d3357 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_int8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint16.c index c2b17eaedd..b9025ad2b5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint32.c index 9ce1518b97..02b37ec8cb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint64.c index dd2961fbb8..e7bcb49600 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_uint64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint8.c index ac612888c8..eb1ba1bce4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a < b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lt_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lxor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_lxor_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lxor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_lxor_bool.c index 8ab89a9ecf..02e41fa30c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_lxor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_lxor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_lxor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_lxor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_lxor_bool) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_lxor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_lxor_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_lxor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_fp32.c index 4ebcd26895..85517a0bca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_fp32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_fp64.c index 93f058ea58..64ce2b5276 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_fp64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int16.c index f5d90cadfe..00e956b483 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_int16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int32.c index b77a98d3f3..a843216151 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_int32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int64.c index 78d494def1..7485d1a92a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_int64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int8.c index bda9d9eadb..5e6ce83c51 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_int8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_int8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint16.c index 06f6eaeed4..d3a9b7f850 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_uint16) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint32.c index dbfbf9844c..ddbcaf0e0c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_uint32) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint64.c index 0337649a05..fa0bffff05 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_uint64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint8.c index f1aba51ed9..34c63f61b9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_ne_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_ne_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__eq_ne_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == (a != b)) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_ne_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_ne_uint8) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_ne_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_second_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__eq_second_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__eq_second_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__eq_second_bool.c index 3587ed0ee4..fc9ffb8494 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__eq_second_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__eq_second_bool.c @@ -2,15 +2,17 @@ // GB_AxB__eq_second_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = (z == b) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__eq_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__eq_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__eq_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__eq_second_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__eq_second_bool) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__eq_second_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__eq_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__eq_second_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__eq_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__eq_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__eq_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__eq_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__eq_second_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__eq_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__eq_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__include2.h b/GraphBLAS/FactoryKernels/GB_AxB__include2.h similarity index 99% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__include2.h rename to GraphBLAS/FactoryKernels/GB_AxB__include2.h index f662aa1138..0811dc17d7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__include2.h +++ b/GraphBLAS/FactoryKernels/GB_AxB__include2.h @@ -2,11 +2,11 @@ // GB_AxB__include2.h: definitions for GB_AxB__*.c methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // This file has been automatically generated from Generator/GB_AxB.h -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB (_Adot2B__plus_pair_int8) ( diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_bool.c index aa1a4d814c..8e777250d2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_fp32.c index 4523976a5a..3833e7b028 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_fp64.c index 436569bae1..a42996c7ed 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_int16.c index cb41fe2dcb..25b9839e23 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_int16.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_int32.c index 5c23d0c579..bb16bed345 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_int32.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_int64.c index 3855ef95de..f45990736f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_int64.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_int8.c index 9d0cc55133..8baaa55d1f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_int8.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint16.c index 0da82c3689..b96cba2c3a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint32.c index 41e1a55e01..10bd1c1128 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint64.c index e7f908a44a..6226f27369 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint8.c index 8a15c4acd6..a55d68140b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_eq_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_eq_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__land_eq_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_eq_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_eq_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_eq_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_first_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_first_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_first_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_first_bool.c index fdfd576162..ea87563e08 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_first_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_first_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_first_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= a @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__land_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__land_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__land_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__land_first_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_first_bool) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__land_first_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__land_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__land_first_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__land_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__land_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__land_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__land_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__land_first_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__land_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__land_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_bool.c index f4083b462b..1094462b6d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_fp32.c index a2b10659ab..61abebc805 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_fp64.c index 11460fd8c2..5d3de622c9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_int16.c index 28a8f342b8..f727dd029f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_int16.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_int32.c index fc7308938f..caf93ab84d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_int32.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_int64.c index b0be62faa2..dfd54e8a57 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_int64.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_int8.c index ba34eb470d..91fa28943f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_int8.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint16.c index bd9c766f0f..759f3a2cf8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint32.c index 7d88cab6ac..5665015bee 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint64.c index 42b5130f61..9b33d6a9a8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint8.c index 228414ff78..1a2481d42f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ge_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ge_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__land_ge_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ge_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ge_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ge_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_bool.c index a644a8627c..0eb2829f68 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_fp32.c index b8bdeeaa3e..754c4f4c31 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_fp64.c index d87f0690ea..c0454880b7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_int16.c index 90ca97f0e3..b55a064b80 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_int32.c index 9b4e285471..122a645465 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_int64.c index f3dbb1381b..9d81959e5c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_int8.c index a287c8c13c..fcf051cd98 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint16.c index 75624ffb62..7e57c5dc42 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint32.c index a96fbd1b44..509c293e1b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint64.c index 43201acd33..4706bd0b80 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint8.c index 6380d2077a..2eaf192f34 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_gt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_gt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__land_gt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_gt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_gt_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_gt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_land_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_land_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_land_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_land_bool.c index 8162b0fdc2..0f0374b6a5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_land_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_land_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_land_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a && b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_land_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_land_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_land_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_land_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_land_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_bool.c index cd8e526333..c87ca628ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_fp32.c index 557f5dede6..6d41077c9d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_fp64.c index bcac0d668e..921ab81137 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_int16.c index fb5c7c4fc4..080bcf439b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_int16.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_int32.c index 46bcc2bc49..d061e2cacb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_int32.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_int64.c index 1de5e4f946..2538d0ce6e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_int64.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_int8.c index 43dcbc297e..21df7113bb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_int8.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_uint16.c index 10660de840..aab6838e20 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_uint32.c index 1d8f744d29..f5e090e1cb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_uint64.c index fe63855f53..454385b2dc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_le_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_le_uint8.c index 58ce9f1045..4eaf292401 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_le_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_le_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__land_le_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_le_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_le_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_le_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lor_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lor_bool.c index f2716656c1..6001ea2f69 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_lor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a || b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lor_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lor_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_bool.c index 751c912f2f..2b0050dabb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_fp32.c index 1cf9db93e0..27bf5d85d7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_fp64.c index 8896dc6d9a..09d65cabb9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_int16.c index 4f71680dcd..5ea4481dee 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_int32.c index b76d1085f5..812d090993 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_int64.c index 2c4b3b6c2e..5f38bfb5d0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_int8.c index 9a25466878..680a09edbe 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint16.c index 9982b397b4..aecde97485 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint32.c index 991265daa9..8a33f04364 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint64.c index 3d16334452..b22b0b4d43 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint8.c index 1fcaa94b1b..e5b8e26af3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__land_lt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lt_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lxor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_lxor_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_lxor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_lxor_bool.c index 8722943235..89f7c377a8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_lxor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_lxor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_lxor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_lxor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_lxor_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_lxor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_lxor_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_lxor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_fp32.c index 4220a23e61..3fa67157ac 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_fp64.c index 5db663dfae..0b1d054a1a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_int16.c index a95974ad96..b62a2c2537 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_int16.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_int32.c index 16f02a4a6a..48fe4b7db0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_int32.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_int64.c index d3e05370e5..56bc3efb45 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_int64.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_int8.c index 332c597fbe..ba33121fc5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_int8.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint16.c index 14d14f1d0a..5799abfc98 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint32.c index 1264da81fa..ef6b73db4e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint64.c index 6a6e0543fc..9fb7e34fb0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint8.c index f505ec4de3..11d1437d6d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_ne_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_ne_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__land_ne_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_ne_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_ne_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_ne_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_second_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__land_second_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__land_second_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__land_second_bool.c index 1c0c02a651..d1b3f954ee 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__land_second_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__land_second_bool.c @@ -2,15 +2,17 @@ // GB_AxB__land_second_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z &= b @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__land_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__land_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__land_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__land_second_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__land_second_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__land_second_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__land_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__land_second_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__land_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__land_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__land_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__land_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__land_second_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__land_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__land_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_bool.c index e580979463..f71067f776 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_fp32.c index bd33e4ea15..16d1bf2dce 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_fp64.c index 3c4573f12d..46593f5f5b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int16.c index 05c7342e9c..e5e511869e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int32.c index 7b13e754dd..8cb6ebe4c7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int64.c index d5d44ef12a..22c10ec0ac 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int8.c index 9af2d09d00..8cec3603fb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint16.c index 9ebe90f25e..70144da84b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint32.c index 7f22204a95..622537dcb8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint64.c index 8e93f45eea..48b07bbc2d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint8.c index 724e6fcbaf..e40a143730 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_eq_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_eq_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_eq_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a == b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_eq_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_eq_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_eq_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_first_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_first_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_first_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_first_bool.c index ec2c493f6c..2dd69d1212 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_first_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_first_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_first_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= a @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__lor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__lor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__lor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__lor_first_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_first_bool) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__lor_first_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__lor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__lor_first_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__lor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__lor_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__lor_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__lor_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__lor_first_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__lor_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__lor_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_bool.c index 33eb16249e..d20b63bbb8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_fp32.c index d7b6336d64..cf1de89bea 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_fp64.c index 7ee24b6b41..b5e7865c33 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int16.c index 8d80a1af91..e2dfd3b053 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int32.c index 214df79d91..98043d7443 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int64.c index 06836b059d..13e0266cda 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int8.c index 881794fc96..8b95a55299 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint16.c index 66f331ed45..1efc0f7c15 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint32.c index 753fa291ae..08c1cbf86b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint64.c index c5db73266e..a6a22fba83 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint8.c index e0cd9ecdbb..47083b89c8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ge_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ge_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ge_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a >= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ge_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ge_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ge_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_bool.c index 6746d104cb..980fce66eb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_fp32.c index ef21570153..b6626ba97c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_fp64.c index e01b962ea6..f811dcc56f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int16.c index 57b1949e9f..41b36b95e8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int32.c index 884ce4435b..be13cd66bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int64.c index 0bd8671364..0da1ca7ce0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int8.c index 826e58bc8f..8118e60ffe 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint16.c index 7c220c2a87..dbc2df3290 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint32.c index 59c92d0bf9..aca20c5cee 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint64.c index 359a80d111..520b3faa35 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint8.c index 5327f34161..66edbc2094 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_gt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_gt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_gt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a > b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_gt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_gt_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_gt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_land_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_land_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_land_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_land_bool.c index 5b3e94a968..52221bca5a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_land_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_land_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_land_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a && b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_land_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_land_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_land_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_land_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_land_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_bool.c index 4e52303c12..3b9a4c4357 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_fp32.c index 007b4b216e..d2c237db1f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_fp64.c index 84cdf0978f..4feaba3aa6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_int16.c index e7c4d9eac5..dcd71669a2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_int32.c index 59eeb715a8..607d7ff10f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_int64.c index 1f19bcaff9..f0fe8a3d1a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_int8.c index a6582b9651..6c2c8eca41 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint16.c index 384f3d566c..e613cfad27 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint32.c index 82db4375b3..ff6e8f7840 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint64.c index 9ec85be719..537586ec2f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint8.c index d689800daf..131d6e020e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_le_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_le_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_le_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a <= b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_le_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_le_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_le_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lor_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lor_bool.c index be12019104..f981ac8d62 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a || b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lor_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lor_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_bool.c index b502f7cab6..d5e97eaeb1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_fp32.c index c0ef5d4f3c..fd0e558ad2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_fp64.c index b82ad77877..642297a1dc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int16.c index 6a7aaac5c8..9c1ebd2974 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int32.c index 99dee2514c..ac40080765 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int64.c index a97cd287f3..9389b643c6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int8.c index e00d34f167..9f71437831 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint16.c index 1093307b5d..27b86dfa09 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint32.c index 3d855e289a..25aea0d7fc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint64.c index 0be2f77fc2..e8ff208bfa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint8.c index 453e9b7b74..40bdf2c6a1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a < b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lt_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lxor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_lxor_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lxor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_lxor_bool.c index 0f9e5b4825..866d5b53f0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_lxor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_lxor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_lxor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_lxor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_lxor_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_lxor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_lxor_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_lxor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_fp32.c index aa5f20548a..b5d4d52ce1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_fp32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_fp64.c index 500f5acf98..4733ed57f0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_fp64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int16.c index 922053fa53..b232e24cba 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int32.c index 63f1dc1c86..17581f5555 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int64.c index 9294b30c9d..acc7c62127 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int8.c index 7d8999124c..ae304ac6b0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint16.c index d6eda3a736..e5b973b3c3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint32.c index b1c6d14bec..418a04a931 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint64.c index 5dc7099700..48cf7ab1de 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint8.c index 7ef7914168..517bd2e4e4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_ne_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_ne_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lor_ne_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= (a != b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_ne_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_ne_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_ne_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_second_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lor_second_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lor_second_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lor_second_bool.c index 35112cf2f2..e9ec38e769 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lor_second_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lor_second_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lor_second_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z |= b @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__lor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__lor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__lor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__lor_second_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lor_second_bool) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__lor_second_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__lor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__lor_second_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__lor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__lor_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__lor_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__lor_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__lor_second_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__lor_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__lor_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_bool.c index 8f866f6743..c0f7741d31 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_bool) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_fp32.c index bdc3400f67..9b012ad7ca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_fp64.c index 581046d24e..59b816e4fd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int16.c index e960116b95..9d2f90a12a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int32.c index 34e021aaef..58d738fc68 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int64.c index 3f72764d42..f15d5f3c6f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int8.c index 696fda8eee..3072f1d1b4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint16.c index e5ac29b35c..c9fc27b849 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint32.c index 487d409285..e6db83e8f5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint64.c index ae0a6460b1..176368f4de 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint8.c index 15ca583bdb..541af0b01c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_eq_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_eq_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_eq_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a == b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_eq_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_eq_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_eq_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_eq_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_first_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_first_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_first_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_first_bool.c index b7b22b5d0f..691a86ff83 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_first_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_first_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_first_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__lxor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__lxor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__lxor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__lxor_first_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_first_bool) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__lxor_first_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__lxor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__lxor_first_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__lxor_first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__lxor_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__lxor_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__lxor_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__lxor_first_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__lxor_first_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__lxor_first_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_bool.c index f361b11d4c..72866df8fe 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_bool) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_fp32.c index 064da37e87..9025b81e2f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_fp64.c index c716134880..9faf6a79a2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int16.c index 9b385eb66c..1a85b8c319 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int32.c index abc4d09280..cbd9301629 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int64.c index d3d031efaf..719a619d49 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int8.c index 2da4d8b66f..ee38f6588e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint16.c index e0c1e5bfae..eb6746fbf5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint32.c index 7823c2ded1..a8bee7f5bc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint64.c index 382024c39b..ab34610565 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint8.c index d9254244ce..8d918a788b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ge_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ge_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ge_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a >= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ge_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ge_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ge_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ge_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_bool.c index e1dab81f87..6d4e03b8b6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_bool) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_fp32.c index eefc791cc4..8468330ef3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_fp64.c index d32fdee443..edf21565c0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int16.c index f89051eef0..3f4cbbaf00 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int32.c index e916ab27dc..9359ba1538 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int64.c index b200e57842..c61c246003 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int8.c index 95c28867d8..d041de8e22 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint16.c index d7c5724b1f..e4e19698b6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint32.c index 63716cfeea..9c18cf2edc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint64.c index 17a75ca5c6..4ab3121246 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint8.c index 567584e84c..5ed5ecb9d7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_gt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_gt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_gt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a > b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_gt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_gt_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_gt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_gt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_land_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_land_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_land_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_land_bool.c index 71ac713151..252e6449b0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_land_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_land_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_land_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a && b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_land_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_land_bool) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_land_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_land_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_land_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_land_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_land_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_bool.c index 953c5d8732..68f8df94d5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_bool) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_fp32.c index 334803ee3d..a4a46a001d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_fp64.c index f04c2b49f1..f5e3b0e27d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int16.c index a340036297..46c114c030 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int32.c index 70f088fa88..a29b310978 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int64.c index 71afa27840..4785a3874d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int8.c index 4905d34065..6f6574bc50 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint16.c index 78045d804c..dd67424603 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint32.c index 6de7796d1f..66403998bc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint64.c index 2ddcd90a1d..6503984ebc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint8.c index fe2b36da7d..502ca7ded8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_le_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_le_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_le_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a <= b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_le_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_le_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_le_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_le_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lor_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lor_bool.c index 9efeae80f1..e26503cbfa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a || b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lor_bool) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lor_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_bool.c index 9c1bdb4ed9..b0ef9f97f3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_bool) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_fp32.c index 9fbbb8ce55..e5191eea4f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_fp64.c index 4bfcd91a18..cfc37665b0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int16.c index a5fbddef60..2650a2d618 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int32.c index c33b7ad3bf..8fa594441e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int64.c index f060ca2d13..c4ee865c0a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int8.c index bfce607cdf..f687f71c8b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint16.c index 23c4aa9933..fb4e4b6836 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint32.c index 15441e9ce6..aeee25412f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint64.c index a1fedcfa6f..549d9a3124 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint8.c index 6d5f9af158..63b74723a4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lt_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lt_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a < b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lt_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lt_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lt_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lt_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lxor_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lxor_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lxor_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_lxor_bool.c index d2d8163201..e0ddc68ecd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_lxor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_lxor_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_lxor_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_lxor_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_lxor_bool) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_lxor_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lxor_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lxor_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lxor_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_lxor_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_fp32.c index b6f53fb1f3..9d09abccbd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_fp64.c index 5b10a39e78..f3b16dcdc2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int16.c index f6baccaa1e..447eeba93c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int32.c index b81b2f1cd0..d489109742 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int64.c index e3d367b8a4..6e95ac6ed3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int8.c index c10c92743f..d0c4ba35fd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_int8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint16.c index 61bf6ff4b6..876817fca6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint32.c index 2b727eced9..5f06f93a4f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint64.c index c4053aea51..1352d54bdd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint8.c index e559fdeb2f..821ad17d3f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_ne_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_ne_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_ne_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= (a != b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_ne_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_ne_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_ne_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_ne_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_pair_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_pair_bool.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_pair_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_pair_bool.c index f584813c72..40de7ead7d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_pair_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_pair_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_pair_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= 1 @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__lxor_pair_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__lxor_pair_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__lxor_pair_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__lxor_pair_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_pair_bool) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__lxor_pair_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__lxor_pair_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__lxor_pair_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__lxor_pair_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__lxor_pair_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__lxor_pair_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__lxor_pair_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__lxor_pair_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__lxor_pair_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__lxor_pair_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_second_bool.c b/GraphBLAS/FactoryKernels/GB_AxB__lxor_second_bool.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_second_bool.c rename to GraphBLAS/FactoryKernels/GB_AxB__lxor_second_bool.c index 1680788c0c..d70b85afd6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__lxor_second_bool.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__lxor_second_bool.c @@ -2,15 +2,17 @@ // GB_AxB__lxor_second_bool.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z ^= b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__lxor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__lxor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__lxor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__lxor_second_bool) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__lxor_second_bool) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__lxor_second_bool) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__lxor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__lxor_second_bool) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__lxor_second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__lxor_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__lxor_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__lxor_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__lxor_second_bool) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__lxor_second_bool) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__lxor_second_bool) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_fp32.c index 14456fcbb6..15b117a200 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, (a/b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_div_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_div_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_div_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_fp64.c index 5d2f598cc7..9e928b370c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, (a/b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_div_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_div_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_div_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_int16.c index 67c8c32d21..b0d3ec6102 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_div_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_div_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_int32.c index 7a678a5794..9382d1985c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_div_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_div_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_int64.c index 917a56660a..31a348c546 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_div_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_div_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_int8.c index b260d60ca7..a97fbde36c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_div_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_div_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_uint16.c index 7237c1554d..5347e5d999 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_div_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_div_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_uint32.c index d8a835f0c9..b1e10dec59 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_div_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_div_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_uint64.c index ddbc1f2d59..8d833e3e26 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_div_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_div_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_div_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_div_uint8.c index 6bc4175580..1c57d5abc7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_div_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_div_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_div_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_div_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_div_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_div_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_fp32.c index b1b103af9d..3c7a1fd5f7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, a) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__max_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__max_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__max_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__max_first_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_fp32) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__max_first_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__max_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__max_first_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__max_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_fp64.c index 548fe830ae..344417af0c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, a) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__max_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__max_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__max_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__max_first_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_fp64) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__max_first_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__max_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__max_first_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__max_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__max_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_int16.c index 320d646180..94c246212d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = a ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_first_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_int16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_first_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_int32.c index 69f73d45b0..b66c6a5f66 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = a ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_first_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_int32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_first_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_int64.c index 532dff1245..04dfc5ce7c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = a ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_first_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_int64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_first_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_int8.c index 594f284289..0ce73fc39e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = a ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_first_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_int8) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_first_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_uint16.c index 9337349b19..279d1e0b77 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = a ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_first_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_uint16) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_first_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_uint32.c index f0e975052d..24eeac6830 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = a ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_first_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_uint32) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_first_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_uint64.c index b90da37d9f..00ee1cedc7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = a ; z = GB_IMAX (z, x_op_y) ; } @@ -70,7 +72,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -91,7 +93,7 @@ GrB_Info GB (_Adot2B__max_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_Adot3B__max_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -140,7 +142,7 @@ GrB_Info GB (_Adot4B__max_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -149,7 +151,7 @@ GrB_Info GB (_Adot4B__max_first_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_uint64) ( @@ -178,7 +180,7 @@ GrB_Info GB (_AsaxbitB__max_first_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -206,7 +208,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -257,7 +259,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -349,8 +351,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -390,8 +392,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -399,8 +401,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -442,8 +444,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -451,8 +453,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_first_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_first_uint8.c index ba186a6a7f..648adaa9ab 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_first_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_first_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_first_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = a ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_first_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_first_uint8) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_first_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_firsti1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_firsti1_int32.c index 1b85fb3df7..fcf0ab2a81 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_firsti1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_firsti1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (i+1) ; z = GB_IMAX (z, x_op_y) ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__max_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__max_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__max_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__max_firsti1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_firsti1_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__max_firsti1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_firsti1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_firsti1_int64.c index 6197258c4e..f772a473b0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_firsti1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_firsti1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (i+1) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_firsti1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_firsti1_int64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_firsti1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_firsti_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_firsti_int32.c index 7e6249f3fc..c5c8652dbc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_firsti_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_firsti_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = i ; z = GB_IMAX (z, x_op_y) ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__max_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__max_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__max_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__max_firsti_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_firsti_int32) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__max_firsti_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_firsti_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_firsti_int64.c index d968e61813..9371cecfcd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firsti_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_firsti_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_firsti_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = i ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_firsti_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_firsti_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_firsti_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_firstj1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_firstj1_int32.c index f4aa74c17b..cfba5aa541 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_firstj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_firstj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (k+1) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_firstj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_firstj1_int32) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_firstj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_firstj1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_firstj1_int64.c index dee630a06a..30df9a94c8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_firstj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_firstj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (k+1) ; z = GB_IMAX (z, x_op_y) ; } @@ -70,7 +72,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -91,7 +93,7 @@ GrB_Info GB (_Adot2B__max_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_Adot3B__max_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -140,7 +142,7 @@ GrB_Info GB (_Adot4B__max_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -149,7 +151,7 @@ GrB_Info GB (_Adot4B__max_firstj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_firstj1_int64) ( @@ -178,7 +180,7 @@ GrB_Info GB (_AsaxbitB__max_firstj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -206,7 +208,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -257,7 +259,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -349,8 +351,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -390,8 +392,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -399,8 +401,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -442,8 +444,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -451,8 +453,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_firstj_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_firstj_int32.c index 718a2ced8b..29a4890155 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_firstj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_firstj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = k ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_firstj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_firstj_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_firstj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_firstj_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_firstj_int64.c index f43b626f11..70ce0b388b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_firstj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_firstj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_firstj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = k ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_firstj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_firstj_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_firstj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_fp32.c index 1a2861db9f..35334c5f68 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, fmaxf (a,b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_max_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_max_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_max_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_fp64.c index 16c9be0f3d..a9dfb27d64 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, fmax (a,b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_max_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_max_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_max_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_int16.c index 74622de240..09c5a74edd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMAX (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_max_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_max_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_int32.c index 4a6fc4e6c4..5dd42825c9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMAX (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_max_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_max_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_int64.c index e377bd591f..20ee1cb964 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMAX (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_max_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_max_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_int8.c index 002549494c..7e546547cc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMAX (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_max_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_max_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_uint16.c index 2aded4b5f1..e294bdcbf3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMAX (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_max_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_max_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_uint32.c index 05f6254587..ff2868ffad 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMAX (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_max_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_max_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_uint64.c index 48d2e94806..8f993049ad 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMAX (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_max_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_max_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_max_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_max_uint8.c index 8432dfd990..9933dc04da 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_max_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_max_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_max_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMAX (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_max_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_max_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_max_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_fp32.c index e5a7e24d68..fdce666577 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, fminf (a,b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_min_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_min_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_min_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_fp64.c index 956e841f24..3d9a40e611 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, fmin (a,b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_min_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_min_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_min_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_int16.c index 3b8bb572ea..4ffe690383 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMIN (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_min_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_min_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_int32.c index 26bf365431..2b3260861e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMIN (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_min_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_min_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_int64.c index 417ecf4d0a..113b48d3ee 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMIN (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_min_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_min_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_int8.c index 23c4481419..18e8b22432 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMIN (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_min_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_min_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_uint16.c index e14e2b71fe..a76506cdb5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMIN (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_min_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_min_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_uint32.c index 87a29fb6c7..104f3bb478 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMIN (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_min_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_min_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_uint64.c index bcc6b155ee..b5b7a1ee8a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMIN (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_min_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_min_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_min_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_min_uint8.c index c4c1434f57..c4a5dfc1e8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_min_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_min_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_min_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMIN (a,b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_min_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_min_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_min_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_fp32.c index bb1d3b75a2..c74a465918 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, (a-b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_minus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_minus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_fp64.c index 560a807e6d..c3c3a1d8ca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, (a-b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_minus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_minus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_int16.c index adde90f215..c7df2755b0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a-b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_minus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_minus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_int32.c index 67cd71389b..96e939360b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a-b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_minus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_minus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_int64.c index ec2aba60a6..f8766d5cc0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a-b) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_minus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_minus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_int8.c index 8370bdca35..7c2e64b8b8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a-b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_minus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_minus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint16.c index 8e57bde802..47fccbd81a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a-b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_minus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_minus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint32.c index 37fd17c886..b2999e0f14 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a-b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_minus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_minus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint64.c index ba4b2da95c..8038196e42 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a-b) ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_minus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_minus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint8.c index 849e7094d7..baa87e3de4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_minus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_minus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_minus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a-b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_minus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_minus_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_minus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_fp32.c index c64d04cff7..b47638b2ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, (a+b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_plus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_plus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_fp64.c index 64f6e9eb50..61289597ec 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, (a+b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_plus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_plus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_int16.c index 482f4b446c..7d7056f031 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a+b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_plus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_plus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_int32.c index 359cef4912..9365c7e53d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a+b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_plus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_plus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_int64.c index 11fa9d04f5..cb7540edb1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a+b) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_plus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_plus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_int8.c index 3d9c1fb46f..a5d5f070c7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a+b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_plus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_plus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint16.c index 3eaca27f08..400cdfe6b0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a+b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_plus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_plus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint32.c index 152a3938e3..33e8a7a2fd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a+b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_plus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_plus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint64.c index 1e785733e7..7f47ddb20d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a+b) ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_plus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_plus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint8.c index 581cab0c2e..559a7a11e4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_plus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_plus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_plus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a+b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_plus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_plus_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_plus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_fp32.c index 9bd42d3804..47e496f521 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, (b/a)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_rdiv_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_fp64.c index cf1851c73f..8c9287f744 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, (b/a)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_rdiv_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int16.c index f4b552fd53..19aeb3034b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (b, a) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_rdiv_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int32.c index c5b3ba2682..1f0be5c64c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (b, a) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_rdiv_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int64.c index 48ecd3fc00..f747e11fa2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (b, a) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_rdiv_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int8.c index 5a6b61cd2c..580e37b631 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (b, a) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_rdiv_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint16.c index 09c1e75ec9..0db9925cf4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (b, a) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_rdiv_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint32.c index 2dc60d4736..7bbe0ed285 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (b, a) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_rdiv_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint64.c index 59c0582b0b..41d9133ee2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (b, a) ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_rdiv_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint8.c index 114049eb74..c3fdc430bc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rdiv_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rdiv_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_rdiv_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (b, a) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_rdiv_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rdiv_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_rdiv_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_fp32.c index 9a5648dfb4..4ce1abded3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, (b-a)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_rminus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_fp64.c index 0122c320f5..db37dee25e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, (b-a)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_rminus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int16.c index 1a8db3b1a8..e047e2e626 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (b-a) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_rminus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int32.c index cc36beb662..af6b7bff2d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (b-a) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_rminus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int64.c index b6ac08ea96..828eb58c61 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (b-a) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_rminus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int8.c index 8ace8e14db..28c0e98fe7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (b-a) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_rminus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint16.c index f305bc94bf..e1976bddb0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (b-a) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_rminus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint32.c index 290180412f..abc696ad6b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (b-a) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_rminus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint64.c index 564e8484f4..65456f5e24 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (b-a) ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_rminus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint8.c index fdc9f81933..a233cc087c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_rminus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_rminus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_rminus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (b-a) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_rminus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_rminus_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_rminus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_fp32.c index 87a789434f..2e2bf3e162 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_second_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_second_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_second_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_fp64.c index 08546db18d..55c8795d53 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_second_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_second_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_second_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_int16.c index fa6fd114f1..23573abe38 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = b ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_second_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_second_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_int32.c index 748ddc73b9..ff7d9636be 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = b ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_second_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_second_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_int64.c index 8e061e698f..2bb86362a0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = b ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_second_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_second_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_int8.c index 92d261c672..0d3a7f680d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = b ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_second_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_second_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_uint16.c index 6a286ee42b..d926da00ec 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = b ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_second_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_second_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_uint32.c index 54805b371b..06c4a85ac0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = b ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_second_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_second_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_uint64.c index 5d02dd5f1d..e5764a1e71 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = b ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_second_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_second_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_second_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_second_uint8.c index cfa210d1ee..6474ec2d59 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_second_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_second_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_second_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = b ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_second_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_second_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_second_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_secondj1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_secondj1_int32.c index be0054da72..268ccb7ba1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_secondj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_secondj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (j+1) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_secondj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_secondj1_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_secondj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_secondj1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_secondj1_int64.c index 450f69f651..809eee28bd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_secondj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_secondj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (j+1) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_secondj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_secondj1_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_secondj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_secondj_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_secondj_int32.c index f3d7578c75..e979bc1b5f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_secondj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_secondj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = j ; z = GB_IMAX (z, x_op_y) ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__max_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__max_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__max_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__max_secondj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_secondj_int32) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__max_secondj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_secondj_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_secondj_int64.c index d114e79d81..62f3a65617 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_secondj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_secondj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_secondj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = j ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_secondj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_secondj_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_secondj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_fp32.c index b28dbb3dce..dbb0c5096b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmaxf (z, (a*b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_times_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_times_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_times_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_fp64.c index 234998b703..4c15fb7c04 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmax (z, (a*b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__max_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__max_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__max_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__max_times_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__max_times_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__max_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__max_times_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__max_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__max_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_int16.c index e71b1ef7c3..adb9de65d4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_int16.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a*b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_times_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_times_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_int32.c index 9f1cabd8b1..bcf52945fa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_int32.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a*b) ; z = GB_IMAX (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__max_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__max_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__max_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__max_times_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__max_times_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_int64.c index 56ccac8e65..982ed99a08 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_int64.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a*b) ; z = GB_IMAX (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__max_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__max_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__max_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__max_times_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__max_times_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_int8.c index 50e3759c7a..62f70d6b3f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_int8.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a*b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_times_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_times_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_uint16.c index 4e00deaeac..6bf03da8c9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a*b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_times_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_times_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_uint32.c index 332de716e4..151fffc177 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a*b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_times_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_times_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_uint64.c index fc537bfdd5..dbc64b9380 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a*b) ; z = GB_IMAX (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__max_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__max_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__max_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__max_times_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__max_times_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__max_times_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__max_times_uint8.c index 9c0dce89c5..e7f2668221 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__max_times_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__max_times_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__max_times_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a*b) ; z = GB_IMAX (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__max_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__max_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__max_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__max_times_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__max_times_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__max_times_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__max_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__max_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_fp32.c index 5ecc51f3ab..14881db279 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, (a/b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_div_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_div_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_div_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_fp64.c index dad43bb1ee..bf08c27e22 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, (a/b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_div_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_div_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_div_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_int16.c index 513e1b8d52..caa7d9464a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_div_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_div_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_int32.c index 87e86d5650..8e762af781 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_div_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_div_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_int64.c index 12743edf5c..af74f45de7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_div_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_div_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_int8.c index 3ab95adc7b..00af3dee3c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_div_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_div_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_uint16.c index fe21507fc6..e7cc100026 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_div_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_div_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_uint32.c index f60173ab13..8b0b824851 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_div_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_div_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_uint64.c index 8b42b7cabf..3a0140e74a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_div_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_div_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_div_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_div_uint8.c index 4ea90732f4..0e3096405b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_div_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_div_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_div_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_div_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_div_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_div_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_fp32.c index 0692828dff..788468de68 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, a) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__min_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__min_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__min_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__min_first_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_fp32) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__min_first_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__min_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__min_first_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__min_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_fp64.c index 7d9a39c249..d2ca7b9e6c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, a) @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__min_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__min_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__min_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__min_first_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_fp64) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__min_first_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__min_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__min_first_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__min_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__min_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_int16.c index b13c8eafd7..557e82f4c8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = a ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_first_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_int16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_first_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_int32.c index 089f946243..9472453419 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = a ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_first_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_int32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_first_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_int64.c index cf3a8c7d26..d6301732bb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = a ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_first_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_int64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_first_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_int8.c index 1f39855f36..0b3ffe90ab 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = a ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_first_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_int8) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_first_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_uint16.c index f4d9afc3cf..cc77b95ad4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = a ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_first_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_uint16) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_first_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_uint32.c index 922379715c..3461137fcb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = a ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_first_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_uint32) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_first_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_uint64.c index f98b413df1..14565c9cda 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = a ; z = GB_IMIN (z, x_op_y) ; } @@ -70,7 +72,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -91,7 +93,7 @@ GrB_Info GB (_Adot2B__min_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_Adot3B__min_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -140,7 +142,7 @@ GrB_Info GB (_Adot4B__min_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -149,7 +151,7 @@ GrB_Info GB (_Adot4B__min_first_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_uint64) ( @@ -178,7 +180,7 @@ GrB_Info GB (_AsaxbitB__min_first_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -206,7 +208,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -257,7 +259,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -349,8 +351,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -390,8 +392,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -399,8 +401,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -442,8 +444,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -451,8 +453,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_first_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_first_uint8.c index 9676ec1e7a..f6f2f7f674 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_first_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_first_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_first_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = a ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_first_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_first_uint8) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_first_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_firsti1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_firsti1_int32.c index 28da9d0e43..6b7b8d5500 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_firsti1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_firsti1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (i+1) ; z = GB_IMIN (z, x_op_y) ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__min_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__min_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__min_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__min_firsti1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_firsti1_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__min_firsti1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_firsti1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_firsti1_int64.c index 7eb9924e9f..688326aab2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_firsti1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_firsti1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (i+1) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_firsti1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_firsti1_int64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_firsti1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_firsti_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_firsti_int32.c index 4df6c53276..3ebe8b8199 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_firsti_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_firsti_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = i ; z = GB_IMIN (z, x_op_y) ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__min_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__min_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__min_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__min_firsti_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_firsti_int32) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__min_firsti_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_firsti_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_firsti_int64.c index ab8519b5b9..df6c407ae9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firsti_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_firsti_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_firsti_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = i ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_firsti_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_firsti_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_firsti_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_firstj1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_firstj1_int32.c index 381934071c..af72929876 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_firstj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_firstj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (k+1) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_firstj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_firstj1_int32) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_firstj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_firstj1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_firstj1_int64.c index 249f1f6a44..4b34cc3be2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_firstj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_firstj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (k+1) ; z = GB_IMIN (z, x_op_y) ; } @@ -70,7 +72,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -91,7 +93,7 @@ GrB_Info GB (_Adot2B__min_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_Adot3B__min_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -140,7 +142,7 @@ GrB_Info GB (_Adot4B__min_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -149,7 +151,7 @@ GrB_Info GB (_Adot4B__min_firstj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_firstj1_int64) ( @@ -178,7 +180,7 @@ GrB_Info GB (_AsaxbitB__min_firstj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -206,7 +208,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -257,7 +259,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -349,8 +351,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -390,8 +392,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -399,8 +401,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -442,8 +444,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -451,8 +453,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_firstj_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_firstj_int32.c index 5d3160a21d..ef44067f0b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_firstj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_firstj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = k ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_firstj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_firstj_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_firstj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_firstj_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_firstj_int64.c index a5fced7689..33697f0d0b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_firstj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_firstj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_firstj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = k ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_firstj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_firstj_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_firstj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_fp32.c index 6c4038314f..f2ae8899a1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, fmaxf (a,b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_max_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_max_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_max_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_fp64.c index faa146fb55..cbaf0d2e34 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, fmax (a,b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_max_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_max_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_max_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_int16.c index b66e281616..9c6cff2056 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMAX (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_max_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_max_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_int32.c index 573f126e4f..5f6debb69e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMAX (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_max_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_max_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_int64.c index 14570d9240..2e367d4148 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMAX (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_max_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_max_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_int8.c index 5225471767..076e9926e9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMAX (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_max_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_max_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_uint16.c index 0e1c711b8a..c0db9d174c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMAX (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_max_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_max_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_uint32.c index e9151cd9b6..c7645fe93b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMAX (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_max_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_max_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_uint64.c index b9be554d8c..077b0d5b05 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMAX (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_max_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_max_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_max_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_max_uint8.c index cd89f3e2ef..61c8698143 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_max_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_max_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_max_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMAX (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_max_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_max_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_max_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_fp32.c index 91d218ebcd..831be321bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, fminf (a,b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_min_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_min_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_min_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_fp64.c index 6594450bf0..ca32463037 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, fmin (a,b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_min_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_min_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_min_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_int16.c index 545cda9f67..842b992ad5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMIN (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_min_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_min_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_int32.c index e4f387c6a5..b3131ecab2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMIN (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_min_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_min_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_int64.c index 5662301cab..aae696a364 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMIN (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_min_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_min_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_int8.c index 36122f3fc7..30394b3d9f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMIN (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_min_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_min_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_uint16.c index ba7fe8d6ee..6ba94058c0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMIN (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_min_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_min_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_uint32.c index da587a41f2..e749336192 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMIN (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_min_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_min_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_uint64.c index eccd03bcf1..5705914a1a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMIN (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_min_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_min_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_min_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_min_uint8.c index 1a3114434d..4a4b598987 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_min_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_min_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_min_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMIN (a,b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_min_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_min_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_min_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_fp32.c index a6c5cf5d18..5c6aeb7c26 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, (a-b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_minus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_minus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_fp64.c index 80ef354918..2e057b327d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, (a-b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_minus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_minus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_int16.c index c2dcc20e68..d9b951fb8e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a-b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_minus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_minus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_int32.c index 812b1ab661..019b8f4ef3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a-b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_minus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_minus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_int64.c index c92730f50d..ae43a6c7c6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a-b) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_minus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_minus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_int8.c index 38b3cb038a..d0e9a12465 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a-b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_minus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_minus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint16.c index e318410e2c..81ea779143 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a-b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_minus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_minus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint32.c index c6612e5b0c..a373e6eb34 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a-b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_minus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_minus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint64.c index 7d0c5e7920..b58d50d07b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a-b) ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_minus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_minus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint8.c index 244298a259..41bb0d97aa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_minus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_minus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_minus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a-b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_minus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_minus_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_minus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_fp32.c index 55b5bf2a64..c592a9ba1d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, (a+b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_plus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_plus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_fp64.c index e3623feae9..680125c4de 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, (a+b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_plus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_plus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_int16.c index 4956aa435f..e5dbc534bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a+b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_plus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_plus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_int32.c index 6a87ca1e7d..904d5c0222 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a+b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_plus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_plus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_int64.c index 0c35fa545f..8ae8c89d44 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a+b) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_plus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_plus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_int8.c index 2e91f4cbc7..2865e7a57d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a+b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_plus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_plus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint16.c index 7ae55388e8..733b3e6adf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a+b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_plus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_plus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint32.c index b29f07817a..2af3a4919c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a+b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_plus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_plus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint64.c index 5c576394c6..69dc82be2d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a+b) ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_plus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_plus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint8.c index 7a5b84000b..55cd5f6b1c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_plus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_plus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_plus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a+b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_plus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_plus_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_plus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_fp32.c index 95eeff3a92..8e01396c62 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, (b/a)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_rdiv_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_fp64.c index 978871302e..47be370044 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, (b/a)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_rdiv_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int16.c index f1b957e413..d3799cc4e6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (b, a) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_rdiv_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int32.c index f8015afb53..84a4bf0f65 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (b, a) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_rdiv_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int64.c index f83239edab..b88a613670 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (b, a) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_rdiv_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int8.c index c678575127..9d331a057c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (b, a) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_rdiv_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint16.c index d9a77c98f2..24e600785b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (b, a) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_rdiv_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint32.c index 5c417ad18c..fa67c9ce19 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (b, a) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_rdiv_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint64.c index 559e5bcb95..9a75b5457f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (b, a) ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_rdiv_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint8.c index ad273d4210..7c0c4b59ed 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rdiv_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rdiv_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_rdiv_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (b, a) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_rdiv_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rdiv_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_rdiv_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_fp32.c index a820117ca5..64e3d97c06 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, (b-a)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_rminus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_fp64.c index b37ce10e0b..6119c05b20 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, (b-a)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_rminus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int16.c index 82172c93bc..ae15dbfadd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (b-a) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_rminus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int32.c index a7f4341d20..2b24bfcf68 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (b-a) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_rminus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int64.c index ae197a1e82..43b60d36ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (b-a) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_rminus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int8.c index 410847ce5c..1cae697c1e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (b-a) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_rminus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint16.c index ccfb44e668..03f4577455 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (b-a) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_rminus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint32.c index 4199f861a8..a02b99042e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (b-a) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_rminus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint64.c index e4ebd50a85..f30b025ff6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (b-a) ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_rminus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint8.c index 139993833b..42902fb190 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_rminus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_rminus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_rminus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (b-a) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_rminus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_rminus_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_rminus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_fp32.c index ff2ed640ce..f37d4d826d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_second_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_second_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_second_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_fp64.c index 8a85590400..b726404def 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_second_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_second_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_second_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_int16.c index e966368ee8..8e1e34df8a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = b ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_second_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_second_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_int32.c index 393be7df55..9537f4fd2f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = b ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_second_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_second_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_int64.c index 21b64332b0..3ca7ac84d8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = b ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_second_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_second_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_int8.c index e48e61d5bb..b2885a571c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = b ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_second_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_second_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_uint16.c index b45330ebf5..e7818d8cff 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = b ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_second_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_second_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_uint32.c index b066befa3a..41d73b12c4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = b ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_second_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_second_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_uint64.c index 9a9cb76b06..464d0ad575 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = b ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_second_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_second_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_second_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_second_uint8.c index 042d13de9b..dd33b09f09 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_second_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_second_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_second_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = b ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_second_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_second_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_second_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_secondj1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_secondj1_int32.c index ea8e3e3ca9..da7a6836f8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_secondj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_secondj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (j+1) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_secondj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_secondj1_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_secondj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_secondj1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_secondj1_int64.c index 021be2cb64..1e8d4a39cd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_secondj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_secondj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (j+1) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_secondj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_secondj1_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_secondj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_secondj_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_secondj_int32.c index 6264a19d73..5f51ee0f48 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_secondj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_secondj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = j ; z = GB_IMIN (z, x_op_y) ; } @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__min_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__min_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__min_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__min_secondj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_secondj_int32) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__min_secondj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_secondj_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_secondj_int64.c index d9f5d25963..82deaf64ad 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_secondj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_secondj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_secondj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = j ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_secondj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_secondj_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_secondj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_fp32.c index c4272f0273..8f66c27ae3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fminf (z, (a*b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_times_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_times_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_times_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_fp64.c index 782772d25c..c558682201 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = fmin (z, (a*b)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__min_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__min_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__min_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__min_times_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__min_times_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__min_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__min_times_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__min_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__min_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_int16.c index b9ff1834e6..c80d3c21ca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_int16.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a*b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_times_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_times_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_int32.c index 6d393b06d6..d7345f2ff6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_int32.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a*b) ; z = GB_IMIN (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__min_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__min_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__min_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__min_times_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__min_times_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_int64.c index b3ac7769b3..06eac019ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_int64.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a*b) ; z = GB_IMIN (z, x_op_y) ; } @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__min_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__min_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__min_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__min_times_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__min_times_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_int8.c index 52ff622d02..f599063789 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_int8.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a*b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_times_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_times_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_uint16.c index 23892c539e..f8d35bc1e1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a*b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_times_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_uint16) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_times_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_uint32.c index bc4a84ae5d..3556975b55 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a*b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_times_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_uint32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_times_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_uint64.c index b3d7969467..dc04559e72 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a*b) ; z = GB_IMIN (z, x_op_y) ; } @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__min_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__min_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__min_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__min_times_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__min_times_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__min_times_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__min_times_uint8.c index d2c37dc1e4..d384c68348 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__min_times_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__min_times_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__min_times_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a*b) ; z = GB_IMIN (z, x_op_y) ; } @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__min_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__min_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__min_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__min_times_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__min_times_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__min_times_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__min_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__min_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_fc32.c index 7ee73534f4..48d4229d6d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_div (a,b) ; z = GB_FC32_add (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_div_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_fc32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_div_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_fc64.c index d58b585ede..b7a3243b8c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_div (a,b) ; z = GB_FC64_add (z, x_op_y) ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__plus_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__plus_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__plus_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__plus_div_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_fc64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__plus_div_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_fp32.c index 417f3cdd72..76ced02a73 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (a/b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_fp64.c index ef81863bd7..f76c37b124 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (a/b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_int16.c index 0bb791e65a..616bca022f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_int32.c index e17d965f73..f54379a563 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_int64.c index b82fd394ba..7215aea923 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_int8.c index fc7379e9db..dfa40c5c30 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint16.c index b94dc61cb3..0ad83321a5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint32.c index a71ccb515a..09a7394203 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint64.c index 123deb5906..fe338e94f2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint8.c index 39acb8fb99..f2ba6621d4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_div_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_div_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_div_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_div_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_div_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_div_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_fc32.c index 5fd09c4ab0..585e6ebefb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC32_add (z, a) @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__plus_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__plus_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__plus_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__plus_first_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_fc32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__plus_first_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_fc64.c index 7da357de44..78f54d621d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC64_add (z, a) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_first_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_fc64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_first_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_fp32.c index 750bcbe729..aae98a9fca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_fp32) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_fp64.c index f68026c5c3..af7a4cd0ce 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_fp64) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_int16.c index fb79e61933..10cfa677f8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_int16) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_int32.c index a131c4b2e3..a2f36f1a38 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_int32) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_int64.c index bc6f8d5b15..025f03149c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_int64) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_int8.c index 1078d1ea9c..b47f163f2e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_int8) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint16.c index 1687ebf61d..6194fc9b2a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_uint16) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint32.c index e166b05eb4..d146e48462 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_uint32) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint64.c index ae9a69b3c9..0e36874f95 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_uint64) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint8.c index 8ba6e9b6f4..6d82f7ab24 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_first_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_first_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_first_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += a @@ -64,7 +66,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__plus_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__plus_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +136,7 @@ GrB_Info GB (_Adot4B__plus_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_Adot4B__plus_first_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_first_uint8) ( @@ -172,7 +174,7 @@ GrB_Info GB (_AsaxbitB__plus_first_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -200,7 +202,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -233,7 +235,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -251,7 +253,7 @@ GrB_Info GB (_Asaxpy4B__plus_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -334,8 +336,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -343,8 +345,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -384,8 +386,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -393,8 +395,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -436,8 +438,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +447,8 @@ GrB_Info GB (_Asaxpy3B__plus_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_firsti1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_firsti1_int32.c index b664ab694c..45e0104d58 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_firsti1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_firsti1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (i+1) @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__plus_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__plus_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__plus_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__plus_firsti1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_firsti1_int32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__plus_firsti1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_firsti1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_firsti1_int64.c index a3b74ffda5..500a24b19a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_firsti1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_firsti1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (i+1) @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__plus_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__plus_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__plus_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__plus_firsti1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_firsti1_int64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__plus_firsti1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_firsti_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_firsti_int32.c index c169028f5a..f54da8938d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_firsti_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_firsti_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += i @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_firsti_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_firsti_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_firsti_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_firsti_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_firsti_int64.c index dab7745459..d8cf5cba62 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firsti_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_firsti_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_firsti_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += i @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_firsti_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_firsti_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_firsti_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_firstj1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_firstj1_int32.c index ea48477936..ee14d542e5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_firstj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_firstj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (k+1) @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__plus_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__plus_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__plus_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__plus_firstj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_firstj1_int32) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__plus_firstj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_firstj1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_firstj1_int64.c index adc5cb2617..1bba74791e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_firstj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_firstj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (k+1) @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__plus_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__plus_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__plus_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__plus_firstj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_firstj1_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__plus_firstj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_firstj_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_firstj_int32.c index 89001f7915..67d8396010 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_firstj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_firstj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += k @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_firstj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_firstj_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_firstj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_firstj_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_firstj_int64.c index f26119f598..285e3eaa46 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_firstj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_firstj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_firstj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += k @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_firstj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_firstj_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_firstj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_fp32.c index 9df8abaeec..db5ba56658 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += ((a != 0) && (b != 0)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_fp64.c index abee26f08c..d31ee2aa8a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += ((a != 0) && (b != 0)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_int16.c index 11884c19be..1e5695dd74 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = ((a != 0) && (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_int32.c index b8c5b6553a..cc559f51f3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = ((a != 0) && (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_int64.c index 83802ae7ae..6a99f7ab8a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = ((a != 0) && (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_int8.c index 72ad0f48b2..9464d73c8a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = ((a != 0) && (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint16.c index 7a16a8e6d1..794f6177a2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = ((a != 0) && (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint32.c index c0a2d74309..84e2e8557f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = ((a != 0) && (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint64.c index 55b40749b4..83bb5093d2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = ((a != 0) && (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint8.c index 919f195b75..90582fffef 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_land_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_land_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_land_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = ((a != 0) && (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_land_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_land_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_land_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_land_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_fp32.c index 0c7967df3c..beefdf421b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += ((a != 0) || (b != 0)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_fp64.c index 48ae42317e..9a70343bfa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += ((a != 0) || (b != 0)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int16.c index 55de2f0e31..2c77a59ad2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = ((a != 0) || (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int32.c index 0e6445fcda..981609ec28 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = ((a != 0) || (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int64.c index 5be91ea772..c89045ade8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = ((a != 0) || (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int8.c index 1fa33c1d10..4f093f17a9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = ((a != 0) || (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint16.c index 69d6a2126a..f608bd76c3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = ((a != 0) || (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint32.c index 6b8116c183..432b0fbbcb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = ((a != 0) || (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint64.c index ab894c445d..9c8860768a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = ((a != 0) || (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint8.c index cbb3f687ac..831fd18084 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = ((a != 0) || (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lor_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_fp32.c index 59f0088b70..253dae990f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += ((a != 0) != (b != 0)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_fp64.c index a9a9341e7a..f68b03130e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += ((a != 0) != (b != 0)) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int16.c index 2dedec24df..23b301c514 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = ((a != 0) != (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int32.c index e4b656866d..49abfc6f54 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = ((a != 0) != (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int64.c index 11ee9866ff..981db9bb2b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = ((a != 0) != (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int8.c index db3410be1c..420e6b2d79 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = ((a != 0) != (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint16.c index 7c84f56d53..07d2e49c52 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = ((a != 0) != (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint32.c index 913a5291e0..8bd4b0a03c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = ((a != 0) != (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint64.c index a26f44bea3..ef13e833d9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = ((a != 0) != (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint8.c index b7e6ce4cbd..eba9c9368f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_lxor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_lxor_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_lxor_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = ((a != 0) != (b != 0)) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_lxor_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_lxor_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_lxor_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_lxor_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_fp32.c index e5512daa2d..b4c52b5edb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += fmaxf (a,b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_fp64.c index af83446984..ed89ffdde9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += fmax (a,b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_int16.c index 471789e896..0f7138922c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMAX (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_int32.c index 78f1a71db0..ab744ccca2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMAX (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_int64.c index e1273dbf65..9c0d420708 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMAX (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_int8.c index 92d72626ed..8295e1840e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMAX (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint16.c index ac88c1453e..9e7fe5612a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMAX (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint32.c index 8b7ec8b5a6..a60e19deaf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMAX (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint64.c index 5da5f17885..1db9214f99 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMAX (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint8.c index efdc56e072..159898e2f6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_max_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_max_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_max_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMAX (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_max_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_max_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_max_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_fp32.c index 38ac56f883..40b3996b04 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += fminf (a,b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_fp64.c index 06e4c9d5ab..8946808bb5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += fmin (a,b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_int16.c index 7be7dd94f0..c49a7fab82 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMIN (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_int32.c index ab35250371..176be5b2e0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMIN (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_int64.c index 685add1190..b548aa64f0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMIN (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_int8.c index 3b8070718d..5fecc49430 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMIN (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint16.c index 3f6cd154f2..47448ccfba 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMIN (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint32.c index d5400ae3e5..ab67500774 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMIN (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint64.c index e621e3254f..5a1233a5e0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMIN (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint8.c index 85de98e5d9..8353a716af 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_min_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_min_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_min_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMIN (a,b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_min_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_min_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_min_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fc32.c index 1af95c6e0a..55ffb2125f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_minus (a,b) ; z = GB_FC32_add (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_minus_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_fc32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fc64.c index 7ef11662d1..bdccac9d3c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_minus (a,b) ; z = GB_FC64_add (z, x_op_y) ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__plus_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__plus_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__plus_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__plus_minus_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_fc64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fp32.c index 103f037061..f209f5a990 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (a-b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fp64.c index 4d1c346fe1..69544368f5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (a-b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int16.c index ae3d9b6ddf..5d7e46bf41 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a-b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int32.c index 659631e47d..b8005efe97 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a-b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int64.c index cc4cefc686..90614e6b46 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a-b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int8.c index 21798b9fcc..33658d1de6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a-b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint16.c index 8fd6975b05..ea57a88603 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a-b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint32.c index bff6551335..0cbf469fcd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a-b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint64.c index 9a93314d12..9deed4b3a1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a-b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint8.c index 2f22ca9b39..fb65fdaf0c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_minus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_minus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_minus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a-b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_minus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_minus_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_minus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fc32.c index 2028ad90e6..c1bb12796e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC32_add (z, GxB_CMPLXF(1,0)) @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__plus_pair_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__plus_pair_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__plus_pair_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__plus_pair_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_fc32) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fc64.c index ced7779129..1857982f98 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC64_add (z, GxB_CMPLX(1,0)) @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__plus_pair_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__plus_pair_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__plus_pair_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__plus_pair_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_fc64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fp32.c index f727105d91..0874a4d65f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__plus_pair_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__plus_pair_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__plus_pair_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__plus_pair_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_fp32) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fp64.c index 88fda7d196..0a7258d179 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__plus_pair_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__plus_pair_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__plus_pair_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__plus_pair_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_fp64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int16.c index 7037bc32fe..6669618f8e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__plus_pair_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__plus_pair_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__plus_pair_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__plus_pair_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_int16) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int32.c index 67b67d2dde..6a2a281ff0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__plus_pair_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__plus_pair_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__plus_pair_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__plus_pair_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_int32) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int64.c index dd70a82f6f..3c405ae306 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__plus_pair_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__plus_pair_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__plus_pair_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__plus_pair_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_int64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int8.c index 2fa3940c1f..dfae65b13a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__plus_pair_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__plus_pair_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__plus_pair_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__plus_pair_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_int8) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint16.c index bab4420ab9..18bffa288e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__plus_pair_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__plus_pair_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__plus_pair_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__plus_pair_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_uint16) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint32.c index 0fe3ce4056..9ea1d1fd39 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__plus_pair_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__plus_pair_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__plus_pair_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__plus_pair_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_uint32) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint64.c index 03267eb82c..b09770cd7e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -69,7 +71,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -90,7 +92,7 @@ GrB_Info GB (_Adot2B__plus_pair_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -113,7 +115,7 @@ GrB_Info GB (_Adot3B__plus_pair_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__plus_pair_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -148,7 +150,7 @@ GrB_Info GB (_Adot4B__plus_pair_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_uint64) ( @@ -177,7 +179,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -205,7 +207,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -256,7 +258,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -348,8 +350,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -398,8 +400,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -450,8 +452,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint8.c index cef966e72c..2916803aa5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_pair_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_pair_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_pair_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += 1 @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__plus_pair_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__plus_pair_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__plus_pair_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__plus_pair_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_pair_uint8) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__plus_pair_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__plus_pair_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__plus_pair_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fc32.c index 75c9fb27fe..60e2b4e289 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_add (a,b) ; z = GB_FC32_add (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_plus_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_fc32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fc64.c index 3d81bd86c3..5a70f42987 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_add (a,b) ; z = GB_FC64_add (z, x_op_y) ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__plus_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__plus_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__plus_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__plus_plus_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_fc64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fp32.c index ec257aea08..208e11ea08 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (a+b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fp64.c index e0701c1d44..15c543c3a6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (a+b) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int16.c index 3c5be4ef43..47a24b5e05 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a+b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int32.c index 992cc9f953..810d34165b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a+b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int64.c index 0fa1426ec9..b34ccb151c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a+b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int8.c index fabb7c224d..9c1c658468 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a+b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint16.c index 052a981eb4..f5be5640ef 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a+b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint32.c index 20485c2f9c..17fcfa4ba9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a+b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint64.c index 5d2d836bca..ebe6f76192 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a+b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint8.c index b0d066fcc8..b3fff9ff49 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_plus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_plus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_plus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a+b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_plus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_plus_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_plus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fc32.c index db79e31e32..3fce2cdf0b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_div (b,a) ; z = GB_FC32_add (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_fc32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fc64.c index 02bcc7cf49..7359fb6380 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_div (b,a) ; z = GB_FC64_add (z, x_op_y) ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_fc64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fp32.c index 86c2f8b244..0433005f9c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (b/a) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fp64.c index 0340be5316..9c5c33c522 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (b/a) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int16.c index 8f7acabb02..697a6a896a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (b, a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int32.c index bce229048a..681db76f7e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (b, a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int64.c index 928d49ef10..e53f1b8e7a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (b, a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int8.c index 351265094b..0c97b6c2c8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (b, a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint16.c index 3403bf14df..0e8fb68192 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (b, a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint32.c index 6274fa8bf8..06ab020166 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (b, a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint64.c index 9a8a967411..5dd600a093 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (b, a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint8.c index 90366cea03..bfe8996ac0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rdiv_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rdiv_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rdiv_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (b, a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rdiv_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rdiv_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rdiv_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fc32.c index 9679ea4b84..eb5f7cfb9c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_minus (b,a) ; z = GB_FC32_add (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_rminus_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_fc32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fc64.c index 4526252e10..3f50a091eb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_minus (b,a) ; z = GB_FC64_add (z, x_op_y) ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__plus_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__plus_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__plus_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__plus_rminus_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_fc64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fp32.c index 108095a43b..b56b1ba5c6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (b-a) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fp64.c index 13a134eb60..a69f7610c7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (b-a) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int16.c index 0d4c0a5f6a..cdb09f11ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (b-a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int32.c index 845cb8311c..a6b950a580 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (b-a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int64.c index 8344acc32c..f0bdcf1b8a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (b-a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int8.c index b5fe1be66e..58783eeefb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (b-a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint16.c index 94d78b0fb4..3a16dfcb33 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (b-a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint32.c index ff9eaba74d..7c16101892 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (b-a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint64.c index eb7465fa6c..27865d4f91 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (b-a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint8.c index ba66dd9b13..37b21503c9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_rminus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_rminus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_rminus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (b-a) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_rminus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_rminus_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_rminus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_fc32.c index 501d20decd..031ffe3f50 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC32_add (z, b) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_second_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_fc32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_second_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_fc64.c index ba3727820a..98be22ea43 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC64_add (z, b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__plus_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__plus_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__plus_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__plus_second_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_fc64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__plus_second_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_fp32.c index 5dfd3fb52e..c449eae00d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_fp64.c index 2126999004..a3e17bbed3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_int16.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_int16.c index b69e9075e2..93635e40c4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_int32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_int32.c index e3ff70ac41..17162dee38 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_int64.c index 89a218544d..f0f40408f0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_int8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_int8.c index 0fe4ec89f7..4aca83f2fa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint16.c index ee6845ed57..a12f47dc3e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint32.c index 9af0148536..0fe650177a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint64.c index 6930d1c363..0420f0b7c6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint8.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint8.c index de7a8b7004..0502a709bb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_second_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_second_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_second_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += b @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_second_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_second_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_second_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_secondj1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_secondj1_int32.c index 4751d21c4d..3ec406214a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_secondj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_secondj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (j+1) @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__plus_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__plus_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__plus_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__plus_secondj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_secondj1_int32) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__plus_secondj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_secondj1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_secondj1_int64.c index 72ef4e94b5..73e0610493 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_secondj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_secondj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (j+1) @@ -68,7 +70,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -89,7 +91,7 @@ GrB_Info GB (_Adot2B__plus_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -112,7 +114,7 @@ GrB_Info GB (_Adot3B__plus_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__plus_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_Adot4B__plus_secondj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_secondj1_int64) ( @@ -176,7 +178,7 @@ GrB_Info GB (_AsaxbitB__plus_secondj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -237,7 +239,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -255,7 +257,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -347,8 +349,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -397,8 +399,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -449,8 +451,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_secondj_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_secondj_int32.c index d0ee5daadc..ed1d97a891 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_secondj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_secondj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += j @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_secondj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_secondj_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_secondj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_secondj_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_secondj_int64.c index 17b535cee0..5713046a30 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_secondj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_secondj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_secondj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += j @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_secondj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_secondj_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_secondj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_fc32.c index c24e78d5fa..b5a98b8e9b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_mul (a,b) ; z = GB_FC32_add (z, x_op_y) ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__plus_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__plus_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__plus_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__plus_times_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_fc32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__plus_times_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_fc64.c index d6649efab8..1fa3c5fc9c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_mul (a,b) ; z = GB_FC64_add (z, x_op_y) ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__plus_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__plus_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__plus_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__plus_times_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_fc64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__plus_times_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_fp32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_fp32.c index 5a2bc79564..f2fa0f0bfc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (a*b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__plus_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__plus_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__plus_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__plus_times_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_fp32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__plus_times_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -275,7 +277,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -302,7 +304,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -320,7 +322,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -403,8 +405,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -412,8 +414,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -453,8 +455,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -462,8 +464,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -505,8 +507,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -514,8 +516,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_fp64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_fp64.c index 9e2d2a6bde..40d1d7d2ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z += (a*b) @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__plus_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__plus_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__plus_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__plus_times_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_fp64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__plus_times_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -275,7 +277,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -302,7 +304,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -320,7 +322,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -403,8 +405,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -412,8 +414,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -453,8 +455,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -462,8 +464,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -505,8 +507,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -514,8 +516,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_int16.c index b10826c6f0..585a088f37 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_int16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a*b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_times_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_int16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_times_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_int32.c index 797c2cccc1..ec80e122be 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_int32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a*b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_times_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_int32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_times_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_int64.c index 6bfde5b37a..bc11ddf3e4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_int64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a*b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_times_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_int64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_times_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_int8.c index a801809d1b..eec7019605 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_int8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a*b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_times_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_int8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_times_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint16.c index 2beaf00403..ec883607ec 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a*b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_times_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_uint16) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_times_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint32.c index 5bc8dd7b72..a493e87537 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a*b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_times_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_uint32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_times_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint64.c index 5e7b1d600b..1a28d4ea62 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a*b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_times_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_uint64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_times_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint8.c index d09d13d2b3..c5a3a5acd2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__plus_times_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__plus_times_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__plus_times_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a*b) ; z += x_op_y ; } @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__plus_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__plus_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__plus_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__plus_times_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__plus_times_uint8) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__plus_times_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__plus_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__plus_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_fc32.c index 5f24ee1528..83d7b398a8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_div (a,b) ; z = GB_FC32_mul (z, x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_div_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_fc32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_div_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_fc64.c index 5959b9c201..6453026f04 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_div (a,b) ; z = GB_FC64_mul (z, x_op_y) ; } @@ -59,7 +61,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -80,7 +82,7 @@ GrB_Info GB (_Adot2B__times_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -103,7 +105,7 @@ GrB_Info GB (_Adot3B__times_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -129,7 +131,7 @@ GrB_Info GB (_Adot4B__times_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__times_div_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_fc64) ( @@ -167,7 +169,7 @@ GrB_Info GB (_AsaxbitB__times_div_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -195,7 +197,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -228,7 +230,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -246,7 +248,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -329,8 +331,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -379,8 +381,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -431,8 +433,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_fp32.c index 00458481f1..96445a2f14 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (a/b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_div_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_fp32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_div_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_fp64.c index 83a072e69e..419bc36594 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (a/b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_div_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_fp64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_div_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_div_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_int16.c index 33d51a476b..89e0ed82ca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_div_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_int16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_div_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_int32.c index 524f9aa088..2c3ab224e3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_div_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_div_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_int64.c index a887891c54..992074a978 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_div_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_div_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_int8.c index eb06b6d853..5ced5aa65c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_div_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_div_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_div_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_uint16.c index b644fa70ba..5ebd917873 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_div_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_uint16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_div_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_uint32.c index a0189dd904..0d22c99d4b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_div_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_uint32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_div_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_uint64.c index 592208db00..a2b15e924d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_div_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_div_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_div_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_div_uint8.c index 00e4e8ca5d..fe0869254b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_div_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_div_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_div_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_div_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_div_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_div_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_div_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_fc32.c index 790917b69b..1ab5d4e4d9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC32_mul (z, a) @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__times_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__times_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__times_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__times_first_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_fc32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__times_first_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_fc64.c index 4d2a92a79e..f9538e3824 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC64_mul (z, a) @@ -60,7 +62,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -81,7 +83,7 @@ GrB_Info GB (_Adot2B__times_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -104,7 +106,7 @@ GrB_Info GB (_Adot3B__times_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -130,7 +132,7 @@ GrB_Info GB (_Adot4B__times_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_Adot4B__times_first_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_fc64) ( @@ -168,7 +170,7 @@ GrB_Info GB (_AsaxbitB__times_first_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -196,7 +198,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +231,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -247,7 +249,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -330,8 +332,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -339,8 +341,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -380,8 +382,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -389,8 +391,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -432,8 +434,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -441,8 +443,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_fp32.c index 79e8c3e1d0..640e104690 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__times_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__times_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__times_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__times_first_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_fp32) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__times_first_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_fp64.c index 1fb0428f5c..f3cc395e4e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -63,7 +65,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -84,7 +86,7 @@ GrB_Info GB (_Adot2B__times_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -107,7 +109,7 @@ GrB_Info GB (_Adot3B__times_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -133,7 +135,7 @@ GrB_Info GB (_Adot4B__times_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -142,7 +144,7 @@ GrB_Info GB (_Adot4B__times_first_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_fp64) ( @@ -171,7 +173,7 @@ GrB_Info GB (_AsaxbitB__times_first_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -250,7 +252,7 @@ GrB_Info GB (_Asaxpy4B__times_first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -333,8 +335,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -342,8 +344,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -383,8 +385,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -392,8 +394,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -435,8 +437,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -444,8 +446,8 @@ GrB_Info GB (_Asaxpy3B__times_first_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_int16.c index b9bb69189a..1634bd96b1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_first_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_int16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_first_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_int32.c index b51b0b6e86..cd052f612b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_first_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_first_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_int64.c index 02e4395aae..2c5f162f9f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__times_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__times_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__times_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__times_first_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_int64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__times_first_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_int8.c index 3605644180..2584ab529e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__times_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__times_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__times_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__times_first_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_int8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__times_first_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__times_first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__times_first_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_uint16.c index 7f5986c8d5..d5524ee1c1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_first_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_uint16) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_first_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_uint32.c index c5ea184c76..4b5257ab99 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_first_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_uint32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_first_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_uint64.c index 4037fbcd95..a3919ebad0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__times_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__times_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__times_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__times_first_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_uint64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__times_first_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_first_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_first_uint8.c index dedfa2208c..84e0d053b5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_first_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_first_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_first_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= a @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__times_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__times_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__times_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__times_first_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_first_uint8) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__times_first_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__times_first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__times_first_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_firsti1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_firsti1_int32.c index e549e56969..5c615eb74f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_firsti1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_firsti1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (i+1) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_firsti1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_firsti1_int32) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_firsti1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_firsti1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_firsti1_int64.c index d193ebbd30..137c7a4ce2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_firsti1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_firsti1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (i+1) @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_firsti1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_firsti1_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_firsti1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_firsti_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_firsti_int32.c index 048315c54f..dc3ee44043 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_firsti_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_firsti_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= i @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_firsti_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_firsti_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_firsti_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_firsti_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_firsti_int64.c index 303712abaf..51236a54f9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firsti_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_firsti_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_firsti_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= i @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_firsti_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_firsti_int64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_firsti_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_firsti_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_firsti_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_firstj1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_firstj1_int32.c index 7911f6539c..0e8ac5e9c5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_firstj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_firstj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (k+1) @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__times_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__times_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__times_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__times_firstj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_firstj1_int32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__times_firstj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_firstj1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_firstj1_int64.c index 2b12dd6641..e406eb0337 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_firstj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_firstj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (k+1) @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__times_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__times_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__times_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__times_firstj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_firstj1_int64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__times_firstj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_firstj_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_firstj_int32.c index bc0a0e354c..fdd58c0b2b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_firstj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_firstj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= k @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_firstj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_firstj_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_firstj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_firstj_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_firstj_int64.c index 3a598e7d9e..26e1cd8259 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_firstj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_firstj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_firstj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= k @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_firstj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_firstj_int64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_firstj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_firstj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_firstj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_fp32.c index 72188267d3..92824809a7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= fmaxf (a,b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_max_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_fp32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_max_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_max_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_fp64.c index c6016f514e..3fbca9e927 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= fmax (a,b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_max_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_fp64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_max_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_max_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_max_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_int16.c index cb69d74755..422b522b1e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMAX (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_max_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_int16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_max_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_int32.c index 656c8f1b27..56752b8da7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMAX (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_max_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_max_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_int64.c index 4681e23dbf..458558cbfc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMAX (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_max_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_max_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_int8.c index 86c15f61cb..252c213d99 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMAX (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_max_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_max_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_max_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_uint16.c index cb372bf2c8..59d59a7df9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMAX (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_max_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_uint16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_max_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_uint32.c index 3903ea7bf9..a9e7ad1997 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMAX (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_max_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_uint32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_max_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_uint64.c index fe3c018d1b..940abf3d89 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMAX (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_max_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_max_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_max_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_max_uint8.c index 0284713238..b4b3d154cf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_max_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_max_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_max_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMAX (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_max_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_max_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_max_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_max_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_fp32.c index 50cb79d24e..e546d59a38 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= fminf (a,b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_min_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_fp32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_min_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_min_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_fp64.c index 09d20bef1d..caf95892ab 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= fmin (a,b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_min_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_fp64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_min_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_min_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_min_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_int16.c index f5830b9291..77483020c5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_IMIN (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_min_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_int16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_min_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_int32.c index d782a062ed..b8f997f7fb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_IMIN (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_min_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_min_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_int64.c index 1eefb8f8a5..31e6fd94d2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_IMIN (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_min_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_min_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_int8.c index 4cf8323a95..4902615e7b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_IMIN (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_min_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_min_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_min_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_uint16.c index d64ec98704..1faf70326e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_IMIN (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_min_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_uint16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_min_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_uint32.c index 99ed4f1135..278b74caf7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_IMIN (a,b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_min_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_uint32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_min_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_uint64.c index 2e9a50a2b0..a459bdc5e8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_IMIN (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_min_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_min_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_min_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_min_uint8.c index a10b7363d0..24296904d5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_min_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_min_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_min_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_IMIN (a,b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_min_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_min_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_min_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_min_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_fc32.c index fe7b856356..842cd5d6c1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_minus (a,b) ; z = GB_FC32_mul (z, x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_minus_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_fc32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_minus_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_fc64.c index 1140b2743c..83814099f3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_minus (a,b) ; z = GB_FC64_mul (z, x_op_y) ; } @@ -59,7 +61,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -80,7 +82,7 @@ GrB_Info GB (_Adot2B__times_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -103,7 +105,7 @@ GrB_Info GB (_Adot3B__times_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -129,7 +131,7 @@ GrB_Info GB (_Adot4B__times_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__times_minus_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_fc64) ( @@ -167,7 +169,7 @@ GrB_Info GB (_AsaxbitB__times_minus_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -195,7 +197,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -228,7 +230,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -246,7 +248,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -329,8 +331,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -379,8 +381,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -431,8 +433,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_fp32.c index 1f3392eac6..887fe1d65f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (a-b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_minus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_fp32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_minus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_fp64.c index 1d871bb839..00bda81c58 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (a-b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_minus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_fp64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_minus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_int16.c index 26c030c0a6..d101aeeb8d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a-b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_minus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_int16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_minus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_int32.c index 865487ba70..c4e6c7a630 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a-b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_minus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_minus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_int64.c index 92065368d0..738fe7baa2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a-b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_minus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_minus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_int8.c index 4e428b536e..e9ea26b5f4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a-b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_minus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_minus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint16.c index ed4d641621..c744b0a26d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a-b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_minus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_uint16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_minus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint32.c index 19c42933db..3e3037b01a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a-b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_minus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_uint32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_minus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint64.c index 6c1bf933b4..385401819d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a-b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_minus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_minus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint8.c index 9fe33ab6bf..f8803999f5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_minus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_minus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_minus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a-b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_minus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_minus_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_minus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_minus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_fc32.c index 1c3790c61d..2bb9af2ff0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_add (a,b) ; z = GB_FC32_mul (z, x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_plus_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_fc32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_plus_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_fc64.c index 07291cde91..f462b3e69d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_add (a,b) ; z = GB_FC64_mul (z, x_op_y) ; } @@ -59,7 +61,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -80,7 +82,7 @@ GrB_Info GB (_Adot2B__times_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -103,7 +105,7 @@ GrB_Info GB (_Adot3B__times_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -129,7 +131,7 @@ GrB_Info GB (_Adot4B__times_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__times_plus_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_fc64) ( @@ -167,7 +169,7 @@ GrB_Info GB (_AsaxbitB__times_plus_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -195,7 +197,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -228,7 +230,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -246,7 +248,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -329,8 +331,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -379,8 +381,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -431,8 +433,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_fp32.c index 90299bc6a3..04f2e1a40a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (a+b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_plus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_fp32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_plus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_fp64.c index 6dc5fe2756..fc719c6ede 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (a+b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_plus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_fp64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_plus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_int16.c index d87bf30611..6e096e6569 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a+b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_plus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_int16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_plus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_int32.c index 56e41fef9c..6c4e12d433 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a+b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_plus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_plus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_int64.c index 32fc7cb80b..e223439171 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a+b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_plus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_plus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_int8.c index 8b4f029663..6c0a4db986 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a+b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_plus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_plus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint16.c index 5c96746d01..b996009be5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a+b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_plus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_uint16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_plus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint32.c index 877237787c..41b83ffd74 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a+b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_plus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_uint32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_plus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint64.c index 9324af9989..f6e101f9fa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a+b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_plus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_plus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint8.c index ec9164a8b3..90234d510e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_plus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_plus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_plus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a+b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_plus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_plus_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_plus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_plus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fc32.c index ed8ad42fed..ebb1551e34 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_div (b,a) ; z = GB_FC32_mul (z, x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_rdiv_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_fc32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fc64.c index c7f24bf010..f7b83a5a8a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_div (b,a) ; z = GB_FC64_mul (z, x_op_y) ; } @@ -59,7 +61,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -80,7 +82,7 @@ GrB_Info GB (_Adot2B__times_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -103,7 +105,7 @@ GrB_Info GB (_Adot3B__times_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -129,7 +131,7 @@ GrB_Info GB (_Adot4B__times_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__times_rdiv_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_fc64) ( @@ -167,7 +169,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -195,7 +197,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -228,7 +230,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -246,7 +248,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -329,8 +331,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -379,8 +381,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -431,8 +433,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fp32.c index 22ecbe3b26..d9d5f2ff22 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (b/a) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_rdiv_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_fp32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fp64.c index d8b4bef9c7..5cacb7c957 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (b/a) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_rdiv_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_fp64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int16.c index e13c9879a3..d3ccf51e25 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = GB_idiv_int16 (b, a) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_rdiv_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_int16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int32.c index 1be96aa980..79cc77cbfa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = GB_idiv_int32 (b, a) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_rdiv_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int64.c index 066b89038c..6ad75805e6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = GB_idiv_int64 (b, a) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_rdiv_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int8.c index 0fe9670f22..e6f5a9d221 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = GB_idiv_int8 (b, a) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_rdiv_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint16.c index 2ddb8a09d4..f054177160 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = GB_idiv_uint16 (b, a) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_rdiv_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_uint16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint32.c index c310fa9cde..8282ff801a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = GB_idiv_uint32 (b, a) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_rdiv_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_uint32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint64.c index 593e7913aa..993fc8a849 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = GB_idiv_uint64 (b, a) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_rdiv_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint8.c index 0a814f3dff..50666205ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rdiv_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rdiv_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_rdiv_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = GB_idiv_uint8 (b, a) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_rdiv_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rdiv_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_rdiv_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_rdiv_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fc32.c index b71a90f450..96388362a2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_minus (b,a) ; z = GB_FC32_mul (z, x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_rminus_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_fc32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fc64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fc64.c index 5a2a7c58d5..fd57aab9bd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_minus (b,a) ; z = GB_FC64_mul (z, x_op_y) ; } @@ -59,7 +61,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -80,7 +82,7 @@ GrB_Info GB (_Adot2B__times_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -103,7 +105,7 @@ GrB_Info GB (_Adot3B__times_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -129,7 +131,7 @@ GrB_Info GB (_Adot4B__times_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__times_rminus_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_fc64) ( @@ -167,7 +169,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -195,7 +197,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -228,7 +230,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -246,7 +248,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -329,8 +331,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -379,8 +381,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -431,8 +433,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fp32.c index ad64217d09..d41dd96a50 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (b-a) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_rminus_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_fp32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fp64.c index 3a1917391f..e67c7f5ad0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (b-a) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_rminus_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_fp64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int16.c index 37b086f8bb..1a0db0ddc9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (b-a) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_rminus_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_int16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int32.c index 4ee642369b..f88547ba8c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (b-a) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_rminus_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int64.c index a628da7b22..58bd61e7c4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (b-a) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_rminus_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int8.c index eec57df76b..f237f12888 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (b-a) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_rminus_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint16.c index b2d579aca6..f90fdbacfd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (b-a) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_rminus_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_uint16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint32.c index 611f23dad9..fe4febd26a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (b-a) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_rminus_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_uint32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint64.c index b1a125cd36..c1694addd8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (b-a) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_rminus_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint8.c index c30ba8f581..0ba387902c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_rminus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_rminus_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_rminus_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (b-a) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_rminus_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_rminus_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_rminus_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_rminus_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_fc32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_fc32.c index b1ab39f699..b6d90e9ee4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC32_mul (z, b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_second_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_fc32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_second_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_fc64.c index f96ad2aadc..7ecadb7805 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z = GB_FC64_mul (z, b) @@ -59,7 +61,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -80,7 +82,7 @@ GrB_Info GB (_Adot2B__times_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -103,7 +105,7 @@ GrB_Info GB (_Adot3B__times_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -129,7 +131,7 @@ GrB_Info GB (_Adot4B__times_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__times_second_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_fc64) ( @@ -167,7 +169,7 @@ GrB_Info GB (_AsaxbitB__times_second_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -195,7 +197,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -228,7 +230,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -246,7 +248,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -329,8 +331,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -379,8 +381,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -431,8 +433,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_fp32.c index af6db02880..3f6080534d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_second_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_fp32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_second_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_fp64.c index 197432b784..2fda0ab4d3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_second_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_fp64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_second_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_second_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_int16.c index 8af8e3b5f7..2ba373753e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_second_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_int16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_second_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_int32.c index 440aacde8d..15d902c2bb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_second_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_second_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_int64.c index 80dbd93503..87d207dab6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_second_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_second_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_int8.c index 4e4825ce7f..c939c310ee 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_second_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_second_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_second_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_uint16.c index 8aa41479eb..613572b064 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_second_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_uint16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_second_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_uint32.c index 176fc66ca9..76a1921710 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_second_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_uint32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_second_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_uint64.c index ba51dc47e7..5f5b1b1a38 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_second_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_second_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_second_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_second_uint8.c index b23d23f64a..bd0fb595b4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_second_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_second_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_second_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= b @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_second_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_second_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_second_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_second_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj1_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_secondj1_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj1_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_secondj1_int32.c index 8ac3f13788..3b9340cd02 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj1_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_secondj1_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_secondj1_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (j+1) @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__times_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__times_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__times_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__times_secondj1_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_secondj1_int32) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__times_secondj1_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj1_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj1_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj1_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_secondj1_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj1_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_secondj1_int64.c index 7211181e0f..04d9f05cda 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj1_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_secondj1_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_secondj1_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (j+1) @@ -67,7 +69,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -88,7 +90,7 @@ GrB_Info GB (_Adot2B__times_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -111,7 +113,7 @@ GrB_Info GB (_Adot3B__times_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -137,7 +139,7 @@ GrB_Info GB (_Adot4B__times_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -146,7 +148,7 @@ GrB_Info GB (_Adot4B__times_secondj1_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_secondj1_int64) ( @@ -175,7 +177,7 @@ GrB_Info GB (_AsaxbitB__times_secondj1_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -203,7 +205,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -236,7 +238,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj1_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -254,7 +256,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj1_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -337,8 +339,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -346,8 +348,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -387,8 +389,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -396,8 +398,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -439,8 +441,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -448,8 +450,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj1_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_secondj_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_secondj_int32.c index 1ca575ceae..5961c12a66 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_secondj_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_secondj_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= j @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_secondj_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_secondj_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_secondj_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_secondj_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_secondj_int64.c index f5ff75a589..f187fb76a4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_secondj_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_secondj_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_secondj_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= j @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_secondj_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_secondj_int64) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_secondj_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_secondj_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_secondj_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fc32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_fc32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fc32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_fc32.c index 34c9c4584b..7210ccb2d2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_fc32.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_fc32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC32_t x_op_y = GB_FC32_mul (a,b) ; z = GB_FC32_mul (z, x_op_y) ; } @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_times_fc32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_fc32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_times_fc32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fc32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fc64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_fc64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fc64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_fc64.c index 1d5111ceec..179bb61cb8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_fc64.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_fc64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { GxB_FC64_t x_op_y = GB_FC64_mul (a,b) ; z = GB_FC64_mul (z, x_op_y) ; } @@ -59,7 +61,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -80,7 +82,7 @@ GrB_Info GB (_Adot2B__times_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -103,7 +105,7 @@ GrB_Info GB (_Adot3B__times_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -129,7 +131,7 @@ GrB_Info GB (_Adot4B__times_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_Adot4B__times_times_fc64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_fc64) ( @@ -167,7 +169,7 @@ GrB_Info GB (_AsaxbitB__times_times_fc64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -195,7 +197,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -228,7 +230,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fc64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -246,7 +248,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -329,8 +331,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -338,8 +340,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -379,8 +381,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -388,8 +390,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -431,8 +433,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -440,8 +442,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fc64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fp32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_fp32.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fp32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_fp32.c index 869e6446e1..62f1ba6d4b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_fp32.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_fp32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (a*b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_times_fp32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_fp32) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_times_fp32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fp32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fp64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_fp64.c similarity index 89% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fp64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_fp64.c index f41919e919..24f7c6db90 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_fp64.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_fp64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) z *= (a*b) @@ -62,7 +64,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -83,7 +85,7 @@ GrB_Info GB (_Adot2B__times_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -106,7 +108,7 @@ GrB_Info GB (_Adot3B__times_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -132,7 +134,7 @@ GrB_Info GB (_Adot4B__times_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_Adot4B__times_times_fp64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_fp64) ( @@ -170,7 +172,7 @@ GrB_Info GB (_AsaxbitB__times_times_fp64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -198,7 +200,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -231,7 +233,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fp64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -249,7 +251,7 @@ GrB_Info GB (_Asaxpy4B__times_times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -332,8 +334,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -341,8 +343,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -382,8 +384,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -391,8 +393,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -434,8 +436,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -443,8 +445,8 @@ GrB_Info GB (_Asaxpy3B__times_times_fp64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_int16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_int16.c index ba0efbd14c..4e159bb82d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_int16.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_int16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int16_t x_op_y = (a*b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_times_int16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_int16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_times_int16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_int32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_int32.c index b28bbf4c41..5b273059bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_int32.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_int32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int32_t x_op_y = (a*b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_times_int32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_int32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_times_int32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_int64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_int64.c index 26b84a529a..b9db74cfc5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_int64.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_int64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int64_t x_op_y = (a*b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_times_int64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_int64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_times_int64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_int8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_int8.c index fb39921cdc..3b96d4d4e3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_int8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_int8.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_int8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { int8_t x_op_y = (a*b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_times_int8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_int8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_times_int8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_times_int8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint16.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_uint16.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint16.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_uint16.c index 1a36df0d86..a7454c230c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_uint16.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_uint16.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint16_t x_op_y = (a*b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_times_uint16) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_uint16) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_times_uint16) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint16) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint16) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint16) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint16) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint32.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_uint32.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint32.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_uint32.c index 1b4b838483..c0b3b2a2b6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_uint32.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_uint32.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint32_t x_op_y = (a*b) ; z *= x_op_y ; } @@ -65,7 +67,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -86,7 +88,7 @@ GrB_Info GB (_Adot2B__times_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -109,7 +111,7 @@ GrB_Info GB (_Adot3B__times_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -135,7 +137,7 @@ GrB_Info GB (_Adot4B__times_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -144,7 +146,7 @@ GrB_Info GB (_Adot4B__times_times_uint32) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_uint32) ( @@ -173,7 +175,7 @@ GrB_Info GB (_AsaxbitB__times_times_uint32) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -234,7 +236,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint32) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -252,7 +254,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -335,8 +337,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -344,8 +346,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -385,8 +387,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -394,8 +396,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint32) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -437,8 +439,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint32) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -446,8 +448,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint32) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint64.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_uint64.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint64.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_uint64.c index b517b041a6..8d5ff0f959 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_uint64.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_uint64.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint64_t x_op_y = (a*b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_times_uint64) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_uint64) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_times_uint64) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint64) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint64) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint64) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint64) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint8.c b/GraphBLAS/FactoryKernels/GB_AxB__times_times_uint8.c similarity index 90% rename from GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint8.c rename to GraphBLAS/FactoryKernels/GB_AxB__times_times_uint8.c index c784525270..2054c9d61c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_AxB__times_times_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_AxB__times_times_uint8.c @@ -2,15 +2,17 @@ // GB_AxB__times_times_uint8.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include2.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_AxB__include2.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) { uint8_t x_op_y = (a*b) ; z *= x_op_y ; } @@ -66,7 +68,7 @@ #define GB_DISABLE 0 #endif -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -87,7 +89,7 @@ GrB_Info GB (_Adot2B__times_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -110,7 +112,7 @@ GrB_Info GB (_Adot3B__times_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -136,7 +138,7 @@ GrB_Info GB (_Adot4B__times_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_Adot4B__times_times_uint8) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__times_times_uint8) ( @@ -174,7 +176,7 @@ GrB_Info GB (_AsaxbitB__times_times_uint8) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -202,7 +204,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -235,7 +237,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint8) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -253,7 +255,7 @@ GrB_Info GB (_Asaxpy4B__times_times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -336,8 +338,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -345,8 +347,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -386,8 +388,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -395,8 +397,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint8) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -438,8 +440,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint8) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -447,8 +449,8 @@ GrB_Info GB (_Asaxpy3B__times_times_uint8) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__atan2_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__atan2_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__atan2_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__atan2_fp32.c index 35121f0a8f..d9b8e58ae4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__atan2_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__atan2_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = atan2f (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__atan2_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__atan2_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__atan2_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__atan2_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__atan2_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__atan2_fp64.c index dab6b0e7ae..627b1cc5b0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__atan2_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__atan2_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = atan2 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__atan2_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__atan2_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__band_int16.c b/GraphBLAS/FactoryKernels/GB_aop__band_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__band_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__band_int16.c index 2d7b640d8c..9a4f05cd76 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__band_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__band_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) & (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__band_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__band_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__band_int32.c b/GraphBLAS/FactoryKernels/GB_aop__band_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__band_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__band_int32.c index 7826b9f4ec..fb7737cb29 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__band_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__band_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) & (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__band_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__band_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__band_int64.c b/GraphBLAS/FactoryKernels/GB_aop__band_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__band_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__band_int64.c index 02c773203f..28457d2631 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__band_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__band_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) & (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__band_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__band_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__band_int8.c b/GraphBLAS/FactoryKernels/GB_aop__band_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__band_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__band_int8.c index a8ff74a6ff..50e56b3617 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__band_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__band_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) & (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__band_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__band_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__band_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__band_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__band_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__band_uint16.c index e2d6a49b4c..dca75c555d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__band_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__band_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) & (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__band_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__band_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__band_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__band_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__band_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__band_uint32.c index 1f9b07c0bd..1c13453241 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__band_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__band_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) & (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__band_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__band_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__band_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__band_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__band_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__band_uint64.c index 7c4dc5c6d6..157e102413 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__band_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__band_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) & (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__band_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__band_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__band_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__band_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__band_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__band_uint8.c index d9f6ef1368..8680c11ad6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__band_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__band_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) & (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__band_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__band_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int16.c b/GraphBLAS/FactoryKernels/GB_aop__bclr_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__bclr_int16.c index 5b112e0fe6..41b6cb175d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bclr_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitclr_int16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bclr_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bclr_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int32.c b/GraphBLAS/FactoryKernels/GB_aop__bclr_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__bclr_int32.c index e309d5ec13..abc0e19446 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bclr_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitclr_int32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bclr_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bclr_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int64.c b/GraphBLAS/FactoryKernels/GB_aop__bclr_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__bclr_int64.c index cd109a8d88..14c780d6d6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bclr_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitclr_int64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bclr_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bclr_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int8.c b/GraphBLAS/FactoryKernels/GB_aop__bclr_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__bclr_int8.c index 9083bb80a1..bf4c70ef1f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bclr_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitclr_int8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bclr_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bclr_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__bclr_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__bclr_uint16.c index 258c66a76e..73b06b395a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bclr_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitclr_uint16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bclr_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bclr_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__bclr_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__bclr_uint32.c index 188e2801ce..20f89effa6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bclr_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitclr_uint32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bclr_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bclr_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__bclr_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__bclr_uint64.c index cc14cc4932..00f5d03379 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bclr_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitclr_uint64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bclr_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bclr_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__bclr_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__bclr_uint8.c index 984df5f58b..b7830374db 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bclr_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bclr_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitclr_uint8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bclr_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bclr_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_int16.c b/GraphBLAS/FactoryKernels/GB_aop__bget_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bget_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__bget_int16.c index b1515b47a6..a581cfdb83 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bget_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitget_int16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bget_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bget_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_int32.c b/GraphBLAS/FactoryKernels/GB_aop__bget_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bget_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__bget_int32.c index d1438c1ddd..1ead5ca06c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bget_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitget_int32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bget_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bget_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_int64.c b/GraphBLAS/FactoryKernels/GB_aop__bget_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bget_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__bget_int64.c index 3316794428..76fdd4e0b8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bget_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitget_int64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bget_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bget_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_int8.c b/GraphBLAS/FactoryKernels/GB_aop__bget_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bget_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__bget_int8.c index 2fbddfd77b..45a7bf3877 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bget_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitget_int8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bget_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bget_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__bget_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__bget_uint16.c index d3470f627e..b117edfc57 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bget_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitget_uint16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bget_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bget_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__bget_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__bget_uint32.c index 980abf3d63..62c998c66c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bget_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitget_uint32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bget_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bget_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__bget_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__bget_uint64.c index 03f3fdebcd..461551158e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bget_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitget_uint64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bget_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bget_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__bget_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__bget_uint8.c index 7ee90325c4..68cd190f4b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bget_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bget_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitget_uint8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bget_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bget_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_int16.c b/GraphBLAS/FactoryKernels/GB_aop__bor_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bor_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__bor_int16.c index 47613e1af1..0ad28c1760 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bor_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) | (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bor_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bor_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_int32.c b/GraphBLAS/FactoryKernels/GB_aop__bor_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bor_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__bor_int32.c index d0b8856788..89e49bdf72 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bor_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) | (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bor_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bor_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_int64.c b/GraphBLAS/FactoryKernels/GB_aop__bor_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bor_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__bor_int64.c index 2c9e5f1140..a090ceb13b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bor_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) | (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bor_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bor_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_int8.c b/GraphBLAS/FactoryKernels/GB_aop__bor_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bor_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__bor_int8.c index 14aab19449..b628685041 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bor_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) | (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bor_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bor_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__bor_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__bor_uint16.c index 96ddd1b10a..d06c3b1633 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bor_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) | (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bor_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bor_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__bor_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__bor_uint32.c index 79dfafb053..0dbc9f0889 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bor_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) | (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bor_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bor_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__bor_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__bor_uint64.c index 07ea62d6cc..1eda5a52f7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bor_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) | (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bor_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bor_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__bor_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__bor_uint8.c index 98c8c32f19..0c99da794b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bor_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) | (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bor_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bor_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_int16.c b/GraphBLAS/FactoryKernels/GB_aop__bset_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bset_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__bset_int16.c index 8f5b26a368..3a00355f81 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bset_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitset_int16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bset_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bset_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_int32.c b/GraphBLAS/FactoryKernels/GB_aop__bset_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bset_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__bset_int32.c index 65c485844d..47e117d1ce 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bset_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitset_int32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bset_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bset_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_int64.c b/GraphBLAS/FactoryKernels/GB_aop__bset_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bset_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__bset_int64.c index 1850a86c3f..31ee49b222 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bset_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitset_int64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bset_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bset_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_int8.c b/GraphBLAS/FactoryKernels/GB_aop__bset_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bset_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__bset_int8.c index 1169582c2d..dafa55a7e4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bset_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitset_int8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bset_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bset_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__bset_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__bset_uint16.c index 36b731f966..d2a144c358 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bset_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitset_uint16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bset_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bset_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__bset_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__bset_uint32.c index e7d57c57d4..6a53cb62cd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bset_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitset_uint32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bset_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bset_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__bset_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__bset_uint64.c index 71370a83b4..f2c5932eed 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bset_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitset_uint64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bset_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bset_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__bset_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__bset_uint8.c index d32f1a1732..ed53a60125 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bset_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bset_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitset_uint8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bset_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bset_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int16.c b/GraphBLAS/FactoryKernels/GB_aop__bshift_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__bshift_int16.c index 66c8319602..4cff3c30fc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bshift_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitshift_int16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bshift_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bshift_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int32.c b/GraphBLAS/FactoryKernels/GB_aop__bshift_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__bshift_int32.c index d8419efbd3..47ae3d260b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bshift_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitshift_int32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bshift_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bshift_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int64.c b/GraphBLAS/FactoryKernels/GB_aop__bshift_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__bshift_int64.c index b4f1fd5e0a..78414fba32 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bshift_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitshift_int64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bshift_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bshift_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int8.c b/GraphBLAS/FactoryKernels/GB_aop__bshift_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__bshift_int8.c index 8761e630c7..7f06e9c629 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bshift_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitshift_int8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bshift_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bshift_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__bshift_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__bshift_uint16.c index f68b099217..a128ab0b27 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bshift_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitshift_uint16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bshift_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bshift_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__bshift_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__bshift_uint32.c index 57cff9a4a0..15776009e9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bshift_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitshift_uint32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bshift_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bshift_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__bshift_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__bshift_uint64.c index eaa1d6de9f..688cd62a1c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bshift_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitshift_uint64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bshift_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bshift_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__bshift_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__bshift_uint8.c index 6b376549be..75f686e37c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bshift_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bshift_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_bitshift_uint8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bshift_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bshift_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int16.c b/GraphBLAS/FactoryKernels/GB_aop__bxnor_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__bxnor_int16.c index 9e5b1efd63..90cdc7db5c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxnor_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ~((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxnor_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxnor_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int32.c b/GraphBLAS/FactoryKernels/GB_aop__bxnor_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__bxnor_int32.c index 84daf026b7..e7cb0e17c2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxnor_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ~((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxnor_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxnor_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int64.c b/GraphBLAS/FactoryKernels/GB_aop__bxnor_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__bxnor_int64.c index 83037ff7ed..d880e40484 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxnor_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ~((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxnor_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxnor_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int8.c b/GraphBLAS/FactoryKernels/GB_aop__bxnor_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__bxnor_int8.c index f46ecc2ca6..78f5379d9a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxnor_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ~((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxnor_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxnor_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__bxnor_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__bxnor_uint16.c index cfd89bdc64..52849198e8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxnor_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ~((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxnor_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxnor_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__bxnor_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__bxnor_uint32.c index 5de185f340..02e31928c3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxnor_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ~((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxnor_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxnor_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__bxnor_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__bxnor_uint64.c index a1e1279254..4f81be98d9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxnor_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ~((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxnor_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxnor_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__bxnor_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__bxnor_uint8.c index 9095a73a31..5945e26daa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxnor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxnor_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ~((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxnor_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxnor_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int16.c b/GraphBLAS/FactoryKernels/GB_aop__bxor_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__bxor_int16.c index 715f81b363..12d577c7a1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxor_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxor_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxor_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int32.c b/GraphBLAS/FactoryKernels/GB_aop__bxor_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__bxor_int32.c index 825804b770..9b65f877ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxor_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxor_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxor_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int64.c b/GraphBLAS/FactoryKernels/GB_aop__bxor_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__bxor_int64.c index 8c3a6b661d..2afc7d3798 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxor_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxor_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxor_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int8.c b/GraphBLAS/FactoryKernels/GB_aop__bxor_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__bxor_int8.c index 0d8483b8e7..1b4bac5c26 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxor_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxor_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxor_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__bxor_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__bxor_uint16.c index 4345f66a71..b2a91650f5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxor_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxor_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxor_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__bxor_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__bxor_uint32.c index b9bba22a2a..e1fde23f26 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxor_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxor_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxor_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__bxor_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__bxor_uint64.c index 705f7b67dc..75b34af725 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxor_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxor_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxor_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__bxor_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__bxor_uint8.c index c0eaaff146..28a60772eb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__bxor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__bxor_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) ^ (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__bxor_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__bxor_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__copysign_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__copysign_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__copysign_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__copysign_fp32.c index 23ecb2a367..277a6fb650 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__copysign_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__copysign_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = copysignf (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__copysign_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__copysign_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__copysign_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__copysign_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__copysign_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__copysign_fp64.c index 9122a7e1f2..33f06064dc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__copysign_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__copysign_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = copysign (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__copysign_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__copysign_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__div_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__div_fc32.c index 7b91e9d15a..fafce5fba1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC32_div (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__div_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__div_fc64.c index 7c1f427e25..64dfada76a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC64_div (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__div_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__div_fp32.c index 68e86e984f..12ff4c52bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) / (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__div_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__div_fp64.c index 9a8bdcb944..86688e9759 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) / (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_int16.c b/GraphBLAS/FactoryKernels/GB_aop__div_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__div_int16.c index c9448ea5c2..09aa30a1b9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_int16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_int32.c b/GraphBLAS/FactoryKernels/GB_aop__div_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__div_int32.c index 32d84346f2..66942436cd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_int32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_int64.c b/GraphBLAS/FactoryKernels/GB_aop__div_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__div_int64.c index 1ec84d25e5..44a5efe1fe 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_int64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_int8.c b/GraphBLAS/FactoryKernels/GB_aop__div_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__div_int8.c index 23f9e55118..e0f96fd4e9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_int8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__div_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__div_uint16.c index aedb48377b..79bfa878e6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_uint16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__div_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__div_uint32.c index 80f43921f9..9bad434bd0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_uint32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__div_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__div_uint64.c index 6f635f6d14..45b9693f1c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_uint64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__div_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__div_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__div_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__div_uint8.c index 56d674017c..49296965ab 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__div_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__div_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_uint8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__div_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__div_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_bool.c b/GraphBLAS/FactoryKernels/GB_aop__eq_bool.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__eq_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__eq_bool.c index 689ac53606..ecc3ac8003 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__eq_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__eq_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__eq_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__fmod_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__fmod_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__fmod_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__fmod_fp32.c index ba38f8c9bb..4cd1b705bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__fmod_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__fmod_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = fmodf (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__fmod_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__fmod_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__fmod_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__fmod_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__fmod_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__fmod_fp64.c index a59da27233..4b63a1ee17 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__fmod_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__fmod_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = fmod (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__fmod_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__fmod_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_bool.c b/GraphBLAS/FactoryKernels/GB_aop__ge_bool.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__ge_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__ge_bool.c index 832b7d676a..3bd4930bca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__ge_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__ge_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__ge_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_bool.c b/GraphBLAS/FactoryKernels/GB_aop__gt_bool.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__gt_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__gt_bool.c index 2876737015..b7983870c1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__gt_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__gt_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__gt_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__hypot_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__hypot_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__hypot_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__hypot_fp32.c index 8aac821869..225cc19a68 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__hypot_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__hypot_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = hypotf (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__hypot_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__hypot_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__hypot_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__hypot_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__hypot_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__hypot_fp64.c index 8cbed6327a..00032be73f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__hypot_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__hypot_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = hypot (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__hypot_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__hypot_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__include.h b/GraphBLAS/FactoryKernels/GB_aop__include.h similarity index 79% rename from GraphBLAS/Source/FactoryKernels/GB_aop__include.h rename to GraphBLAS/FactoryKernels/GB_aop__include.h index ee91742be7..0150d712b5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__include.h +++ b/GraphBLAS/FactoryKernels/GB_aop__include.h @@ -2,180 +2,11 @@ // GB_aop__include.h: definitions for GB_aop__*.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // This file has been automatically generated from Generator/GB_aop.h -#include "GB_math.h" - -GrB_Info GB (_subassign_23__first_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_bool) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_fc32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__first_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__first_fc64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; +#include "math/GB_math.h" GrB_Info GB (_subassign_23__second_bool) ( @@ -2556,1463 +2387,631 @@ GrB_Info GB (_subassign_22__eq_bool) const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_int8) +GrB_Info GB (_subassign_23__gt_bool) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_int8) +GrB_Info GB (_subassign_22__gt_bool) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_int16) +GrB_Info GB (_subassign_23__lt_bool) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_int16) +GrB_Info GB (_subassign_22__lt_bool) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_int32) +GrB_Info GB (_subassign_23__ge_bool) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_int32) +GrB_Info GB (_subassign_22__ge_bool) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_int64) +GrB_Info GB (_subassign_23__le_bool) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_int64) +GrB_Info GB (_subassign_22__le_bool) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_uint8) +GrB_Info GB (_subassign_23__lor_bool) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_uint8) +GrB_Info GB (_subassign_22__lor_bool) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_uint16) +GrB_Info GB (_subassign_23__lor_int8) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_uint16) +GrB_Info GB (_subassign_22__lor_int8) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_uint32) +GrB_Info GB (_subassign_23__lor_int16) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_uint32) +GrB_Info GB (_subassign_22__lor_int16) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_uint64) +GrB_Info GB (_subassign_23__lor_int32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_uint64) +GrB_Info GB (_subassign_22__lor_int32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_fp32) +GrB_Info GB (_subassign_23__lor_int64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_fp32) +GrB_Info GB (_subassign_22__lor_int64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_fp64) +GrB_Info GB (_subassign_23__lor_uint8) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_fp64) +GrB_Info GB (_subassign_22__lor_uint8) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_fc32) +GrB_Info GB (_subassign_23__lor_uint16) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_fc32) +GrB_Info GB (_subassign_22__lor_uint16) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__eq_fc64) +GrB_Info GB (_subassign_23__lor_uint32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__eq_fc64) +GrB_Info GB (_subassign_22__lor_uint32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_int8) +GrB_Info GB (_subassign_23__lor_uint64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_int8) +GrB_Info GB (_subassign_22__lor_uint64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_int16) +GrB_Info GB (_subassign_23__lor_fp32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_int16) +GrB_Info GB (_subassign_22__lor_fp32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_int32) +GrB_Info GB (_subassign_23__lor_fp64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_int32) +GrB_Info GB (_subassign_22__lor_fp64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_int64) +GrB_Info GB (_subassign_23__land_bool) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_int64) +GrB_Info GB (_subassign_22__land_bool) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_uint8) +GrB_Info GB (_subassign_23__land_int8) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_uint8) +GrB_Info GB (_subassign_22__land_int8) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_uint16) +GrB_Info GB (_subassign_23__land_int16) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_uint16) +GrB_Info GB (_subassign_22__land_int16) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_uint32) +GrB_Info GB (_subassign_23__land_int32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_uint32) +GrB_Info GB (_subassign_22__land_int32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_uint64) +GrB_Info GB (_subassign_23__land_int64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_uint64) +GrB_Info GB (_subassign_22__land_int64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_fp32) +GrB_Info GB (_subassign_23__land_uint8) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_fp32) +GrB_Info GB (_subassign_22__land_uint8) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_fp64) +GrB_Info GB (_subassign_23__land_uint16) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_fp64) +GrB_Info GB (_subassign_22__land_uint16) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_fc32) +GrB_Info GB (_subassign_23__land_uint32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_fc32) +GrB_Info GB (_subassign_22__land_uint32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ne_fc64) +GrB_Info GB (_subassign_23__land_uint64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ne_fc64) +GrB_Info GB (_subassign_22__land_uint64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_bool) +GrB_Info GB (_subassign_23__land_fp32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_bool) +GrB_Info GB (_subassign_22__land_fp32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_int8) +GrB_Info GB (_subassign_23__land_fp64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_int8) +GrB_Info GB (_subassign_22__land_fp64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_int16) +GrB_Info GB (_subassign_23__lxor_bool) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_int16) +GrB_Info GB (_subassign_22__lxor_bool) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_int32) +GrB_Info GB (_subassign_23__lxor_int8) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_int32) +GrB_Info GB (_subassign_22__lxor_int8) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_int64) +GrB_Info GB (_subassign_23__lxor_int16) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_int64) +GrB_Info GB (_subassign_22__lxor_int16) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_uint8) +GrB_Info GB (_subassign_23__lxor_int32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_uint8) +GrB_Info GB (_subassign_22__lxor_int32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_uint16) +GrB_Info GB (_subassign_23__lxor_int64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_uint16) +GrB_Info GB (_subassign_22__lxor_int64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_uint32) +GrB_Info GB (_subassign_23__lxor_uint8) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_uint32) +GrB_Info GB (_subassign_22__lxor_uint8) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_uint64) +GrB_Info GB (_subassign_23__lxor_uint16) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_uint64) +GrB_Info GB (_subassign_22__lxor_uint16) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_fp32) +GrB_Info GB (_subassign_23__lxor_uint32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_fp32) +GrB_Info GB (_subassign_22__lxor_uint32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__gt_fp64) +GrB_Info GB (_subassign_23__lxor_uint64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__gt_fp64) +GrB_Info GB (_subassign_22__lxor_uint64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_bool) +GrB_Info GB (_subassign_23__lxor_fp32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_bool) +GrB_Info GB (_subassign_22__lxor_fp32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_int8) +GrB_Info GB (_subassign_23__lxor_fp64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_int8) +GrB_Info GB (_subassign_22__lxor_fp64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_int16) +GrB_Info GB (_subassign_23__atan2_fp32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_int16) +GrB_Info GB (_subassign_22__atan2_fp32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_int32) +GrB_Info GB (_subassign_23__atan2_fp64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_int32) +GrB_Info GB (_subassign_22__atan2_fp64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_int64) +GrB_Info GB (_subassign_23__hypot_fp32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_int64) +GrB_Info GB (_subassign_22__hypot_fp32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_uint8) +GrB_Info GB (_subassign_23__hypot_fp64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_uint8) +GrB_Info GB (_subassign_22__hypot_fp64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_uint16) +GrB_Info GB (_subassign_23__fmod_fp32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_uint16) +GrB_Info GB (_subassign_22__fmod_fp32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_uint32) +GrB_Info GB (_subassign_23__fmod_fp64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_uint32) +GrB_Info GB (_subassign_22__fmod_fp64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_uint64) +GrB_Info GB (_subassign_23__remainder_fp32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_uint64) +GrB_Info GB (_subassign_22__remainder_fp32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_fp32) +GrB_Info GB (_subassign_23__remainder_fp64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_fp32) +GrB_Info GB (_subassign_22__remainder_fp64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__lt_fp64) +GrB_Info GB (_subassign_23__copysign_fp32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__lt_fp64) +GrB_Info GB (_subassign_22__copysign_fp32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ge_bool) +GrB_Info GB (_subassign_23__copysign_fp64) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ge_bool) +GrB_Info GB (_subassign_22__copysign_fp64) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ge_int8) +GrB_Info GB (_subassign_23__ldexp_fp32) ( GrB_Matrix C, const GrB_Matrix A, GB_Werk Werk ) ; -GrB_Info GB (_subassign_22__ge_int8) +GrB_Info GB (_subassign_22__ldexp_fp32) ( GrB_Matrix C, const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__ge_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ge_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ge_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ge_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ge_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ge_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ge_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ge_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ge_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ge_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ge_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ge_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ge_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ge_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ge_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ge_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ge_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ge_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_bool) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__le_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__le_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_bool) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lor_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lor_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_bool) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__land_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__land_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_bool) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__lxor_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__lxor_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__atan2_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__atan2_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__atan2_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__atan2_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__hypot_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__hypot_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__hypot_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__hypot_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__fmod_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__fmod_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__fmod_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__fmod_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__remainder_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__remainder_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__remainder_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__remainder_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__copysign_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__copysign_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__copysign_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__copysign_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ldexp_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__ldexp_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__ldexp_fp64) +GrB_Info GB (_subassign_23__ldexp_fp64) ( GrB_Matrix C, const GrB_Matrix A, @@ -4025,32 +3024,6 @@ GrB_Info GB (_subassign_22__ldexp_fp64) const GB_void *ywork_handle ) ; -GrB_Info GB (_subassign_23__cmplx_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__cmplx_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - -GrB_Info GB (_subassign_23__cmplx_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) ; - -GrB_Info GB (_subassign_22__cmplx_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) ; - GrB_Info GB (_subassign_23__bor_int8) ( GrB_Matrix C, diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_fc32.c index dd6d614efc..b8fb82a15c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC32_iseq (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_fc64.c index 2b1cd201e3..fc822d92b5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC64_iseq (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_fp32.c index a56f764fb2..d2441125c5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_fp64.c index 2540312b6e..4915609587 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int16.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_int16.c index b35fcbaeb0..cd5e891eac 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int32.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_int32.c index c5813e689d..5e19c3962a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int64.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_int64.c index 840b044735..204dfef873 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int8.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_int8.c index db098cb3ce..1e1718ad21 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_uint16.c index 190f5a7cbe..bddd695f69 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_uint32.c index 24d4edb8e7..ed834235c8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_uint64.c index 811fd6ec64..25737fd62b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__iseq_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__iseq_uint8.c index b050a5a21e..9e78285472 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__iseq_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__iseq_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__iseq_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__iseq_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__isge_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_fp32.c index 9a89c3c773..ef6ba6d26d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__isge_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_fp64.c index 2a50670cc6..cf7fd50343 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_int16.c b/GraphBLAS/FactoryKernels/GB_aop__isge_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_int16.c index cff5ce483b..cc612c0088 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_int32.c b/GraphBLAS/FactoryKernels/GB_aop__isge_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_int32.c index 5dcf491486..6e833a8a50 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_int64.c b/GraphBLAS/FactoryKernels/GB_aop__isge_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_int64.c index 556c678bf8..f5793cdaf8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_int8.c b/GraphBLAS/FactoryKernels/GB_aop__isge_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_int8.c index 34e07620d1..2ce609b405 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__isge_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_uint16.c index 2af6b43f6d..48b51a59bd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__isge_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_uint32.c index 256b725c7f..3a5d0ef1e6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__isge_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_uint64.c index e8bfbbc65b..381c3a3fa1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__isge_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__isge_uint8.c index d300cb3a24..02ac091c12 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isge_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isge_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isge_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isge_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_fp32.c index f06c0a259a..2edc9f3915 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_fp64.c index 7bed584b43..dbe3fe9b41 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int16.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_int16.c index 8e10dbbd51..9ce3b5343f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int32.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_int32.c index 3e8ab49348..c6dd4df507 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int64.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_int64.c index 03faa7ba27..d81f630b17 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int8.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_int8.c index bd1eb6bce1..21f994c06b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_uint16.c index f308df36a1..55be8873e9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_uint32.c index 97e2b098ce..a7a638055f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_uint64.c index 3fe9c7dd00..795abbfb4d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__isgt_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__isgt_uint8.c index 5661dcf890..e0ad7f842f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isgt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isgt_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isgt_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isgt_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__isle_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_fp32.c index 738f731720..ed9142e54c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__isle_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_fp64.c index fe96c9c977..18f02c32bd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_int16.c b/GraphBLAS/FactoryKernels/GB_aop__isle_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_int16.c index e8e0bba897..dc3c06e563 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_int32.c b/GraphBLAS/FactoryKernels/GB_aop__isle_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_int32.c index 508f08ea97..f3d33075d5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_int64.c b/GraphBLAS/FactoryKernels/GB_aop__isle_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_int64.c index 2dbcb55c8b..812a512c7e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_int8.c b/GraphBLAS/FactoryKernels/GB_aop__isle_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_int8.c index 3a72c4d7b4..06699fcfc1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__isle_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_uint16.c index 44814ddd9e..36894f31c5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__isle_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_uint32.c index f187ee03d4..fc7b2b61c9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__isle_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_uint64.c index 8aa8e1bf5b..423f3f74b0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__isle_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__isle_uint8.c index 3cae817826..37f41d522b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isle_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isle_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isle_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isle_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__islt_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_fp32.c index c3488902ca..687fe96e1e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__islt_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_fp64.c index 0fd7a7a25d..9a04da9828 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_int16.c b/GraphBLAS/FactoryKernels/GB_aop__islt_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_int16.c index cd2e058ffc..ae47513a1f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_int32.c b/GraphBLAS/FactoryKernels/GB_aop__islt_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_int32.c index af7bc70fb4..5085bc38e9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_int64.c b/GraphBLAS/FactoryKernels/GB_aop__islt_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_int64.c index f1d1232eff..0f524c4d0d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_int8.c b/GraphBLAS/FactoryKernels/GB_aop__islt_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_int8.c index 5d0237342b..ed13301294 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__islt_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_uint16.c index 5483166a90..3bcaa1cf23 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__islt_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_uint32.c index a5af7fdd22..d5402a6d39 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__islt_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_uint64.c index 3cf407f390..a8eb81cc30 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__islt_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__islt_uint8.c index 4893445ab2..e345f7538c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__islt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__islt_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__islt_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__islt_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__isne_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_fc32.c index 7c222d8599..7d1d07394a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC32_isne (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__isne_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_fc64.c index e1ab1bda79..f2bb8c7c86 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC64_isne (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__isne_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_fp32.c index 823b388959..987208a69f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__isne_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_fp64.c index e87b62fed5..2a2003305d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_int16.c b/GraphBLAS/FactoryKernels/GB_aop__isne_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_int16.c index ac6a9f8aab..7add502aa9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_int32.c b/GraphBLAS/FactoryKernels/GB_aop__isne_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_int32.c index 49bb217046..89bae897a9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_int64.c b/GraphBLAS/FactoryKernels/GB_aop__isne_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_int64.c index dfe712a403..f95b7dde35 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_int8.c b/GraphBLAS/FactoryKernels/GB_aop__isne_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_int8.c index 4abc921aa4..ef301dbf25 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__isne_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_uint16.c index 79061dfefe..c8d13b758a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__isne_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_uint32.c index bd495ffd6b..ade44b2543 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__isne_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_uint64.c index a94bb5274f..d16ca6c296 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__isne_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__isne_uint8.c index 1288128a1a..bd06a98601 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__isne_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__isne_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__isne_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__isne_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_bool.c b/GraphBLAS/FactoryKernels/GB_aop__land_bool.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__land_bool.c index cdaf848e44..2f6d9e87de 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) && (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__land_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__land_fp32.c index 2db5a8e24f..845cf9a124 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__land_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__land_fp64.c index a38a6f62f2..e43caee117 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_int16.c b/GraphBLAS/FactoryKernels/GB_aop__land_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__land_int16.c index 546292fc7d..11d6503263 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_int32.c b/GraphBLAS/FactoryKernels/GB_aop__land_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__land_int32.c index d2e8e997bd..489c59baa2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_int64.c b/GraphBLAS/FactoryKernels/GB_aop__land_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__land_int64.c index 9bafd7cd5a..d6a34c772f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_int8.c b/GraphBLAS/FactoryKernels/GB_aop__land_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__land_int8.c index 6149843ec0..3e49f0b48f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__land_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__land_uint16.c index 6b2f258c0e..0482271f56 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__land_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__land_uint32.c index 5452311e67..4248c883ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__land_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__land_uint64.c index 256a0aa5d7..d0b8c42dae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__land_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__land_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__land_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__land_uint8.c index aba8df6378..f29e176552 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__land_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__land_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) && ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__land_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__land_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ldexp_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__ldexp_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__ldexp_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__ldexp_fp32.c index adf0193aa3..e430cc2857 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ldexp_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__ldexp_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ldexpf (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__ldexp_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__ldexp_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ldexp_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__ldexp_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__ldexp_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__ldexp_fp64.c index 501df89d23..3c2123b06e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ldexp_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__ldexp_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ldexp (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__ldexp_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__ldexp_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_bool.c b/GraphBLAS/FactoryKernels/GB_aop__le_bool.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__le_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__le_bool.c index 0d1ec07e45..468e36a7dd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__le_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__le_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__le_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_bool.c b/GraphBLAS/FactoryKernels/GB_aop__lor_bool.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_bool.c index 1a7f162777..0762caac64 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) || (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__lor_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_fp32.c index 1536135260..3ef5a0e2de 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__lor_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_fp64.c index 538a5950d5..9db886d89d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_int16.c b/GraphBLAS/FactoryKernels/GB_aop__lor_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_int16.c index 8080364a10..e56c8231e8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_int32.c b/GraphBLAS/FactoryKernels/GB_aop__lor_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_int32.c index 74ba738089..3e2f84e869 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_int64.c b/GraphBLAS/FactoryKernels/GB_aop__lor_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_int64.c index 3c50525ddb..5a46254a77 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_int8.c b/GraphBLAS/FactoryKernels/GB_aop__lor_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_int8.c index 4c1de2c044..5fc2d2431f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__lor_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_uint16.c index dd0010b4a0..5dd32d7ede 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__lor_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_uint32.c index 4d561068cf..9d142bf83e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__lor_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_uint64.c index 3caa7ff5e8..9c96018762 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__lor_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__lor_uint8.c index e4bd37048b..e0ca86fe4f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lor_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) || ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lor_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lor_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_bool.c b/GraphBLAS/FactoryKernels/GB_aop__lt_bool.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lt_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__lt_bool.c index 656ac26432..040ccb13cf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lt_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lt_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lt_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_bool.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_bool.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_bool.c index a90f0cb3d5..264f0bf355 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_fp32.c index af3f487bcd..933bf4ec42 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_fp64.c index 328aa9a1ef..071c5df97c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int16.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_int16.c index 0184fff6ea..984c6d7ff5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int32.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_int32.c index 52fad9a382..01ac0789dc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int64.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_int64.c index 5e7fc21b84..d0af5e450f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int8.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_int8.c index b4ed2b1538..f12b00c16a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_uint16.c index b174ce85eb..0ad829a429 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_uint32.c index 304c6dbcc5..693218c506 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_uint64.c index 10d1e4cc7a..89a3cce1e6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__lxor_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__lxor_uint8.c index 84719af7f0..cd8d97f200 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lxor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__lxor_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (((x) != 0) != ((y) != 0)) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__lxor_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__lxor_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__max_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__max_fp32.c index 0016074cd1..c7c88eb1d9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = fmaxf (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__max_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__max_fp64.c index e7803fe590..e0ad1733ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = fmax (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_int16.c b/GraphBLAS/FactoryKernels/GB_aop__max_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__max_int16.c index b0a0d44ac1..837a2f9d2a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMAX (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_int32.c b/GraphBLAS/FactoryKernels/GB_aop__max_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__max_int32.c index 92d95083f2..477dfa5ca2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMAX (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_int64.c b/GraphBLAS/FactoryKernels/GB_aop__max_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__max_int64.c index d16965a8a1..a57beea264 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMAX (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_int8.c b/GraphBLAS/FactoryKernels/GB_aop__max_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__max_int8.c index 47754affbc..acafd58e5d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMAX (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__max_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__max_uint16.c index 5acf1d2f2b..e40cfc76ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMAX (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__max_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__max_uint32.c index dec48bb9db..3aeca76e21 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMAX (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__max_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__max_uint64.c index 8332175957..56232c332c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMAX (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__max_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__max_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__max_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__max_uint8.c index 222952a487..eca73b6adb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__max_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__max_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMAX (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__max_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__max_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__min_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__min_fp32.c index 1477052ece..f189e39f27 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = fminf (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__min_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__min_fp64.c index b28fb92077..83f535566e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = fmin (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_int16.c b/GraphBLAS/FactoryKernels/GB_aop__min_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__min_int16.c index 1ffc4e03d3..2ce2fc5ccc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMIN (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_int32.c b/GraphBLAS/FactoryKernels/GB_aop__min_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__min_int32.c index 3666f1c157..0656de83bc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMIN (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_int64.c b/GraphBLAS/FactoryKernels/GB_aop__min_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__min_int64.c index 0f20fa7bc7..7f5e0f1db5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMIN (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_int8.c b/GraphBLAS/FactoryKernels/GB_aop__min_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__min_int8.c index a113de3cc7..7e6e99d8ed 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMIN (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__min_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__min_uint16.c index 5fc5d3aec2..81fe4a0028 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMIN (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__min_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__min_uint32.c index a79874395c..e74933ea09 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMIN (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__min_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__min_uint64.c index 9398716eda..3363a950b5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMIN (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__min_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__min_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__min_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__min_uint8.c index b4f1392eb9..1394532a89 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__min_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__min_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_IMIN (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__min_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__min_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__minus_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_fc32.c index f4ba1154b8..8a9971859d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC32_minus (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__minus_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_fc64.c index 576d3eda41..fa5c588cb9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC64_minus (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__minus_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_fp32.c index ed9b1f77f0..91d9ee2431 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__minus_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_fp64.c index 44835979d2..19c373792f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_int16.c b/GraphBLAS/FactoryKernels/GB_aop__minus_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_int16.c index 8453a4b226..5c6eac77ff 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_int32.c b/GraphBLAS/FactoryKernels/GB_aop__minus_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_int32.c index 866fcee0e5..2d22ded924 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_int64.c b/GraphBLAS/FactoryKernels/GB_aop__minus_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_int64.c index f419718022..8ddffa473a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_int8.c b/GraphBLAS/FactoryKernels/GB_aop__minus_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_int8.c index 36cf1f496a..4932216a8b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__minus_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_uint16.c index a5cd573005..19de785001 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__minus_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_uint32.c index e946b27e57..c17727b372 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__minus_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_uint64.c index f7775fe9ad..c8ff492eea 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__minus_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__minus_uint8.c index aff578a7c4..ae7b9f0d9f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__minus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__minus_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) - (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__minus_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__minus_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_bool.c b/GraphBLAS/FactoryKernels/GB_aop__pair_bool.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_bool.c index 9a69a36f28..c4e4d004af 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__pair_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_fc32.c index 5460adecf1..9df06832a8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GxB_CMPLXF(1,0) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__pair_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_fc64.c index 671fe3a654..a1f97a1fdf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GxB_CMPLX(1,0) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__pair_fp32.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_fp32.c index af9399525b..69416aba39 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__pair_fp64.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_fp64.c index 1fd88c702f..54c8e90f08 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_int16.c b/GraphBLAS/FactoryKernels/GB_aop__pair_int16.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_int16.c index 8a3313e599..f2f77982cc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_int32.c b/GraphBLAS/FactoryKernels/GB_aop__pair_int32.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_int32.c index 411baf233b..c2f0178a2a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_int64.c b/GraphBLAS/FactoryKernels/GB_aop__pair_int64.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_int64.c index cad8dbd660..13afaf93a4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_int8.c b/GraphBLAS/FactoryKernels/GB_aop__pair_int8.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_int8.c index 53ef7b38b2..9e87ff8162 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__pair_uint16.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_uint16.c index ed8a9acf15..647f7cd5bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__pair_uint32.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_uint32.c index 58e3eb6c01..a492bc87ad 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__pair_uint64.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_uint64.c index 5ac57b488c..02acca30b9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__pair_uint8.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__pair_uint8.c index f625811fcf..f4fec6671f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pair_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pair_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = 1 @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pair_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pair_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__plus_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_fc32.c index bc1f3efbd1..8296de3ba8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC32_add (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__plus_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_fc64.c index 6ec7b65a8c..9629d6664b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC64_add (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__plus_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_fp32.c index 8403f4360c..126b8084a5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__plus_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_fp64.c index ba6e3f1d41..349b5721b1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_int16.c b/GraphBLAS/FactoryKernels/GB_aop__plus_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_int16.c index eba0bdb6b1..b6d7e31412 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_int32.c b/GraphBLAS/FactoryKernels/GB_aop__plus_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_int32.c index 1f145df754..4015d8a9bd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_int64.c b/GraphBLAS/FactoryKernels/GB_aop__plus_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_int64.c index 6066d9bf2d..36976f5a53 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_int8.c b/GraphBLAS/FactoryKernels/GB_aop__plus_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_int8.c index b303c3ccde..f6d3e324aa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__plus_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_uint16.c index 0aa5b84aa3..d09c2b3ce3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__plus_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_uint32.c index ce0862ed0e..5da2ec6320 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__plus_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_uint64.c index d94bf82aac..03b749f574 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__plus_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__plus_uint8.c index cd798cfa4a..ff685d69df 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__plus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__plus_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) + (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__plus_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__plus_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__pow_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_fc32.c index 57163e0841..7175182b14 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC32_pow (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__pow_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_fc64.c index 704845ca2a..d94087ffbb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC64_pow (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__pow_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_fp32.c index e8ff7977ad..2fcb6f3828 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_powf (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__pow_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_fp64.c index a2fbdb555f..3a8fc16618 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_pow (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_int16.c b/GraphBLAS/FactoryKernels/GB_aop__pow_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_int16.c index 53058e3300..42c00fd8e7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_pow_int16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_int32.c b/GraphBLAS/FactoryKernels/GB_aop__pow_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_int32.c index ad0a591f4a..b519f2e823 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_pow_int32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_int64.c b/GraphBLAS/FactoryKernels/GB_aop__pow_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_int64.c index e87e9b0a38..5f3356ba97 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_pow_int64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_int8.c b/GraphBLAS/FactoryKernels/GB_aop__pow_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_int8.c index 87abc0ebb4..97ecfc56f8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_pow_int8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__pow_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_uint16.c index 14e114eaf6..5ff355f79a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_pow_uint16 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__pow_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_uint32.c index 0267e65370..595af85039 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_pow_uint32 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__pow_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_uint64.c index 3446000634..1d164fe0a0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_pow_uint64 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__pow_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__pow_uint8.c index e353cdf90f..54717c477f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__pow_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__pow_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_pow_uint8 (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__pow_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__pow_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_fc32.c index ba90793bda..d9a7d88872 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC32_div (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_fc64.c index bb24eee9d1..2c9da74acc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC64_div (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_fp32.c index db26071162..592af80669 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) / (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_fp64.c index 2854f066e2..7c13922a88 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) / (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int16.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_int16.c index 15a6ad6a5d..382d4f9bf1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_int16 (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int32.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_int32.c index 16ee55c71b..d473bf5d38 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_int32 (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int64.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_int64.c index adb7035438..f5dda58cd3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_int64 (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int8.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_int8.c index 85233f99c2..afe36f4d5e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_int8 (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_uint16.c index 197f7181c6..aa8c5311af 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_uint16 (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_uint32.c index 9873061bf8..2377cbb882 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_uint32 (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_uint64.c index 19ac6ddf19..30cacba726 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_uint64 (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__rdiv_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__rdiv_uint8.c index b3928af119..010cf6f1fc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rdiv_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rdiv_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_idiv_uint8 (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rdiv_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rdiv_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__remainder_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__remainder_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__remainder_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__remainder_fp32.c index b32c9d7dcc..785e5f7a1b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__remainder_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__remainder_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = remainderf (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__remainder_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__remainder_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__remainder_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__remainder_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__remainder_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__remainder_fp64.c index 958a8dc0a5..d72cdb2fc3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__remainder_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__remainder_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = remainder (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__remainder_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__remainder_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_fc32.c index c06d9581f5..bef8ea30e8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC32_minus (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_fc64.c index 7b543fddaa..e6ef6dbdd9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC64_minus (y, x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_fp32.c index b9182e61b4..5c5bd8bb6d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_fp64.c index 28a700defd..0f3907be27 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int16.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_int16.c index 0353b04cfc..44a8fd0430 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int32.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_int32.c index dc1d3107ca..b966e37701 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int64.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_int64.c index 3afcbe2796..de796c8f33 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int8.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_int8.c index 1dc0e06d7e..ae3f4b6b46 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_uint16.c index da9afa5ec9..6ecd51db90 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_uint32.c index 8a53195217..b637ef0bcd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_uint64.c index 02054622b1..f82f160f8f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__rminus_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__rminus_uint8.c index 4a450f3825..26a5131766 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__rminus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__rminus_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (y) - (x) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__rminus_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__rminus_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_bool.c b/GraphBLAS/FactoryKernels/GB_aop__second_bool.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_bool.c rename to GraphBLAS/FactoryKernels/GB_aop__second_bool.c index 6836e7542c..a9270182a6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_bool.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_bool.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_bool) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_bool) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__second_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__second_fc32.c index 9c9a3678fb..a66dd93e8e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__second_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__second_fc64.c index d3310600e7..8c235cf410 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__second_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__second_fp32.c index e8f3234b22..534027c3e6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__second_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__second_fp64.c index 884becdcd2..b71fbc4019 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_int16.c b/GraphBLAS/FactoryKernels/GB_aop__second_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__second_int16.c index fa24a5de55..fa871805cf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_int32.c b/GraphBLAS/FactoryKernels/GB_aop__second_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__second_int32.c index e413e58f5d..e174913923 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_int64.c b/GraphBLAS/FactoryKernels/GB_aop__second_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__second_int64.c index a3b8a9dd95..a326a2a626 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_int8.c b/GraphBLAS/FactoryKernels/GB_aop__second_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__second_int8.c index 640cc6c752..1b943c23ec 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__second_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__second_uint16.c index 6da4aa8256..622055546a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__second_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__second_uint32.c index 4da8f84979..a0c8cf6421 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__second_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__second_uint64.c index 4a3acf91a6..62d14827fd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__second_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__second_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__second_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__second_uint8.c index 7217afda0b..a1eac69771 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__second_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__second_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = y @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__second_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__second_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_fc32.c b/GraphBLAS/FactoryKernels/GB_aop__times_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_fc32.c rename to GraphBLAS/FactoryKernels/GB_aop__times_fc32.c index e54a339a0a..c3adf30a55 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_fc32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC32_mul (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_fc32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_fc32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_fc64.c b/GraphBLAS/FactoryKernels/GB_aop__times_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_fc64.c rename to GraphBLAS/FactoryKernels/GB_aop__times_fc64.c index cb73ee17ac..4a2dfe2de6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_fc64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = GB_FC64_mul (x, y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_fc64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_fc64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_fp32.c b/GraphBLAS/FactoryKernels/GB_aop__times_fp32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_fp32.c rename to GraphBLAS/FactoryKernels/GB_aop__times_fp32.c index 6c30cd3120..6b0c667d78 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_fp32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_fp32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_fp32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_fp64.c b/GraphBLAS/FactoryKernels/GB_aop__times_fp64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_fp64.c rename to GraphBLAS/FactoryKernels/GB_aop__times_fp64.c index 4e3ec49ed7..8894cd3e9e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_fp64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_fp64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_fp64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_int16.c b/GraphBLAS/FactoryKernels/GB_aop__times_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_int16.c rename to GraphBLAS/FactoryKernels/GB_aop__times_int16.c index 0260a829db..2cb93cab6b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_int16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_int16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_int16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_int16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_int32.c b/GraphBLAS/FactoryKernels/GB_aop__times_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_int32.c rename to GraphBLAS/FactoryKernels/GB_aop__times_int32.c index 0db287a7af..3f5a00e335 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_int32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_int32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_int32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_int32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_int64.c b/GraphBLAS/FactoryKernels/GB_aop__times_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_int64.c rename to GraphBLAS/FactoryKernels/GB_aop__times_int64.c index 6a7af82894..46d50d6873 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_int64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_int64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_int64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_int64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_int8.c b/GraphBLAS/FactoryKernels/GB_aop__times_int8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_int8.c rename to GraphBLAS/FactoryKernels/GB_aop__times_int8.c index 07af70b5ad..d00951c106 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_int8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_int8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_int8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_int8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_uint16.c b/GraphBLAS/FactoryKernels/GB_aop__times_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_uint16.c rename to GraphBLAS/FactoryKernels/GB_aop__times_uint16.c index 82411d3f31..43b2ae8b31 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_uint16.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_uint16) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_uint16) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_uint32.c b/GraphBLAS/FactoryKernels/GB_aop__times_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_uint32.c rename to GraphBLAS/FactoryKernels/GB_aop__times_uint32.c index 186349331b..b63f18071f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_uint32.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_uint32) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_uint32) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_uint64.c b/GraphBLAS/FactoryKernels/GB_aop__times_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_uint64.c rename to GraphBLAS/FactoryKernels/GB_aop__times_uint64.c index ed4f1ddb35..dffbb2adb5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_uint64.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_uint64) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_uint64) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__times_uint8.c b/GraphBLAS/FactoryKernels/GB_aop__times_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_aop__times_uint8.c rename to GraphBLAS/FactoryKernels/GB_aop__times_uint8.c index f34b4cc295..6e5479422c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__times_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_aop__times_uint8.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator #define GB_ACCUM_OP(z,x,y) z = (x) * (y) @@ -56,7 +56,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -68,17 +68,13 @@ GrB_Info GB (_subassign_23__times_uint8) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -92,20 +88,15 @@ GrB_Info GB (_subassign_22__times_uint8) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__bool.c b/GraphBLAS/FactoryKernels/GB_as__bool.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__bool.c rename to GraphBLAS/FactoryKernels/GB_as__bool.c index f0005cfaf8..29ba123d8a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__bool.c +++ b/GraphBLAS/FactoryKernels/GB_as__bool.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE bool @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__bool) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__bool) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__bool) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__fc32.c b/GraphBLAS/FactoryKernels/GB_as__fc32.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__fc32.c rename to GraphBLAS/FactoryKernels/GB_as__fc32.c index 4cefbbd711..1f3b97ca2f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__fc32.c +++ b/GraphBLAS/FactoryKernels/GB_as__fc32.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE GxB_FC32_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__fc32) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__fc32) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__fc32) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__fc64.c b/GraphBLAS/FactoryKernels/GB_as__fc64.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__fc64.c rename to GraphBLAS/FactoryKernels/GB_as__fc64.c index d156dcdf42..4e6be9e908 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__fc64.c +++ b/GraphBLAS/FactoryKernels/GB_as__fc64.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE GxB_FC64_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__fc64) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__fc64) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__fc64) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__fp32.c b/GraphBLAS/FactoryKernels/GB_as__fp32.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__fp32.c rename to GraphBLAS/FactoryKernels/GB_as__fp32.c index fe6558ad1b..7c65bc7918 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__fp32.c +++ b/GraphBLAS/FactoryKernels/GB_as__fp32.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE float @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__fp32) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__fp32) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__fp32) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__fp64.c b/GraphBLAS/FactoryKernels/GB_as__fp64.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__fp64.c rename to GraphBLAS/FactoryKernels/GB_as__fp64.c index cccc9c43ce..01c9215625 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__fp64.c +++ b/GraphBLAS/FactoryKernels/GB_as__fp64.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE double @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__fp64) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__fp64) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__fp64) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__include.h b/GraphBLAS/FactoryKernels/GB_as__include.h similarity index 98% rename from GraphBLAS/Source/FactoryKernels/GB_as__include.h rename to GraphBLAS/FactoryKernels/GB_as__include.h index e02fbfddf9..1555de0271 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__include.h +++ b/GraphBLAS/FactoryKernels/GB_as__include.h @@ -2,11 +2,11 @@ // GB_as__include.h: definitions for GB_as__*.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // This file has been automatically generated from Generator/GB_as.h -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB (_subassign_05d__bool) ( diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__int16.c b/GraphBLAS/FactoryKernels/GB_as__int16.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__int16.c rename to GraphBLAS/FactoryKernels/GB_as__int16.c index 1156df3b81..2bfbb2c87f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__int16.c +++ b/GraphBLAS/FactoryKernels/GB_as__int16.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE int16_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__int16) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__int16) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__int16) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__int32.c b/GraphBLAS/FactoryKernels/GB_as__int32.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__int32.c rename to GraphBLAS/FactoryKernels/GB_as__int32.c index 67bbddb4e9..a204abedda 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__int32.c +++ b/GraphBLAS/FactoryKernels/GB_as__int32.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE int32_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__int32) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__int32) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__int32) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__int64.c b/GraphBLAS/FactoryKernels/GB_as__int64.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__int64.c rename to GraphBLAS/FactoryKernels/GB_as__int64.c index 4816f19e5b..c54c28265a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__int64.c +++ b/GraphBLAS/FactoryKernels/GB_as__int64.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE int64_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__int64) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__int64) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__int64) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__int8.c b/GraphBLAS/FactoryKernels/GB_as__int8.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__int8.c rename to GraphBLAS/FactoryKernels/GB_as__int8.c index 036dff5a4c..8d54b62d35 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__int8.c +++ b/GraphBLAS/FactoryKernels/GB_as__int8.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE int8_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__int8) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__int8) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__int8) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__uint16.c b/GraphBLAS/FactoryKernels/GB_as__uint16.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__uint16.c rename to GraphBLAS/FactoryKernels/GB_as__uint16.c index 744dc18799..eaf35ca618 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__uint16.c +++ b/GraphBLAS/FactoryKernels/GB_as__uint16.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE uint16_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__uint16) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__uint16) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__uint16) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__uint32.c b/GraphBLAS/FactoryKernels/GB_as__uint32.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__uint32.c rename to GraphBLAS/FactoryKernels/GB_as__uint32.c index b0b656f664..635af2766d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__uint32.c +++ b/GraphBLAS/FactoryKernels/GB_as__uint32.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE uint32_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__uint32) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__uint32) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__uint32) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__uint64.c b/GraphBLAS/FactoryKernels/GB_as__uint64.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__uint64.c rename to GraphBLAS/FactoryKernels/GB_as__uint64.c index bf306eb996..4b39ed0a42 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__uint64.c +++ b/GraphBLAS/FactoryKernels/GB_as__uint64.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE uint64_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__uint64) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__uint64) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__uint64) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_as__uint8.c b/GraphBLAS/FactoryKernels/GB_as__uint8.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_as__uint8.c rename to GraphBLAS/FactoryKernels/GB_as__uint8.c index f5e2e98a5f..91686e4726 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_as__uint8.c +++ b/GraphBLAS/FactoryKernels/GB_as__uint8.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices #define GB_A_TYPE uint8_t @@ -30,7 +30,7 @@ #define GB_DISABLE 0 #endif -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -51,7 +51,7 @@ GrB_Info GB (_subassign_05d__uint8) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -74,7 +74,7 @@ GrB_Info GB (_subassign_06d__uint8) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -97,7 +97,7 @@ GrB_Info GB (_subassign_25__uint8) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_bool.c b/GraphBLAS/FactoryKernels/GB_bld__any_bool.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_bool.c rename to GraphBLAS/FactoryKernels/GB_bld__any_bool.c index 0824a1b57a..27aadacb10 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_bool.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_bool.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_fc32.c b/GraphBLAS/FactoryKernels/GB_bld__any_fc32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_fc32.c rename to GraphBLAS/FactoryKernels/GB_bld__any_fc32.c index 8bc9f7e92d..588de1e6d4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_fc32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_fc64.c b/GraphBLAS/FactoryKernels/GB_bld__any_fc64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_fc64.c rename to GraphBLAS/FactoryKernels/GB_bld__any_fc64.c index c6b256cfa8..d70e227fb0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_fc64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_fp32.c b/GraphBLAS/FactoryKernels/GB_bld__any_fp32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_fp32.c rename to GraphBLAS/FactoryKernels/GB_bld__any_fp32.c index 1258aca581..b0de6bbf34 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_fp32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_fp64.c b/GraphBLAS/FactoryKernels/GB_bld__any_fp64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_fp64.c rename to GraphBLAS/FactoryKernels/GB_bld__any_fp64.c index a5066be4a7..6274fea6be 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_fp64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_int16.c b/GraphBLAS/FactoryKernels/GB_bld__any_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_int16.c rename to GraphBLAS/FactoryKernels/GB_bld__any_int16.c index ce40e7950c..eef41c433c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_int16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_int16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_int32.c b/GraphBLAS/FactoryKernels/GB_bld__any_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_int32.c rename to GraphBLAS/FactoryKernels/GB_bld__any_int32.c index 222bbe2d79..61f8d50179 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_int32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_int32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_int64.c b/GraphBLAS/FactoryKernels/GB_bld__any_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_int64.c rename to GraphBLAS/FactoryKernels/GB_bld__any_int64.c index e717dc4776..affe55da2a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_int64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_int64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_int8.c b/GraphBLAS/FactoryKernels/GB_bld__any_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_int8.c rename to GraphBLAS/FactoryKernels/GB_bld__any_int8.c index b47668a6e9..8c7d347b0e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_int8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_int8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_uint16.c b/GraphBLAS/FactoryKernels/GB_bld__any_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_uint16.c rename to GraphBLAS/FactoryKernels/GB_bld__any_uint16.c index 919ce5a12a..35624aaa4d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_uint16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_uint32.c b/GraphBLAS/FactoryKernels/GB_bld__any_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_uint32.c rename to GraphBLAS/FactoryKernels/GB_bld__any_uint32.c index eabd7a4c7b..c15f89e3d7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_uint32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_uint64.c b/GraphBLAS/FactoryKernels/GB_bld__any_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_uint64.c rename to GraphBLAS/FactoryKernels/GB_bld__any_uint64.c index a4a1b7acea..95d157ffd4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_uint64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__any_uint8.c b/GraphBLAS/FactoryKernels/GB_bld__any_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__any_uint8.c rename to GraphBLAS/FactoryKernels/GB_bld__any_uint8.c index 679d6b3246..96bc5df34a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__any_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__any_uint8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__any_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__eq_bool.c b/GraphBLAS/FactoryKernels/GB_bld__eq_bool.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__eq_bool.c rename to GraphBLAS/FactoryKernels/GB_bld__eq_bool.c index 4731f72f94..46040366c8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__eq_bool.c +++ b/GraphBLAS/FactoryKernels/GB_bld__eq_bool.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = (Tx [k] == Sx [i]) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_bool.c b/GraphBLAS/FactoryKernels/GB_bld__first_bool.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_bool.c rename to GraphBLAS/FactoryKernels/GB_bld__first_bool.c index 65a95acd3e..67d0e03aaf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_bool.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_bool.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_fc32.c b/GraphBLAS/FactoryKernels/GB_bld__first_fc32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_fc32.c rename to GraphBLAS/FactoryKernels/GB_bld__first_fc32.c index d37944837e..28b0d428d7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_fc32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_fc64.c b/GraphBLAS/FactoryKernels/GB_bld__first_fc64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_fc64.c rename to GraphBLAS/FactoryKernels/GB_bld__first_fc64.c index c83142c6c7..81c84bcd51 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_fc64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_fp32.c b/GraphBLAS/FactoryKernels/GB_bld__first_fp32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_fp32.c rename to GraphBLAS/FactoryKernels/GB_bld__first_fp32.c index 6540286c75..34f028866b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_fp32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_fp64.c b/GraphBLAS/FactoryKernels/GB_bld__first_fp64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_fp64.c rename to GraphBLAS/FactoryKernels/GB_bld__first_fp64.c index 394517aff2..514319d4cf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_fp64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_int16.c b/GraphBLAS/FactoryKernels/GB_bld__first_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_int16.c rename to GraphBLAS/FactoryKernels/GB_bld__first_int16.c index be0d5924d9..1ea30e25bb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_int16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_int16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_int32.c b/GraphBLAS/FactoryKernels/GB_bld__first_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_int32.c rename to GraphBLAS/FactoryKernels/GB_bld__first_int32.c index 46d043ee4a..4951816ceb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_int32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_int32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_int64.c b/GraphBLAS/FactoryKernels/GB_bld__first_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_int64.c rename to GraphBLAS/FactoryKernels/GB_bld__first_int64.c index fa53cd4327..75235d0db4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_int64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_int64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_int8.c b/GraphBLAS/FactoryKernels/GB_bld__first_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_int8.c rename to GraphBLAS/FactoryKernels/GB_bld__first_int8.c index 6f8807c638..04c48c6730 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_int8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_int8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_uint16.c b/GraphBLAS/FactoryKernels/GB_bld__first_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_uint16.c rename to GraphBLAS/FactoryKernels/GB_bld__first_uint16.c index 228010e3bc..8dce273850 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_uint16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_uint32.c b/GraphBLAS/FactoryKernels/GB_bld__first_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_uint32.c rename to GraphBLAS/FactoryKernels/GB_bld__first_uint32.c index 3a59cd7225..a74dd76653 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_uint32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_uint64.c b/GraphBLAS/FactoryKernels/GB_bld__first_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_uint64.c rename to GraphBLAS/FactoryKernels/GB_bld__first_uint64.c index 4a958de104..b92af03200 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_uint64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__first_uint8.c b/GraphBLAS/FactoryKernels/GB_bld__first_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__first_uint8.c rename to GraphBLAS/FactoryKernels/GB_bld__first_uint8.c index f39b4cef25..a13a38cabd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__first_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__first_uint8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__include.h b/GraphBLAS/FactoryKernels/GB_bld__include.h similarity index 99% rename from GraphBLAS/Source/FactoryKernels/GB_bld__include.h rename to GraphBLAS/FactoryKernels/GB_bld__include.h index 6197da7d5b..371c2ee40d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__include.h +++ b/GraphBLAS/FactoryKernels/GB_bld__include.h @@ -2,11 +2,11 @@ // GB_bld__include.h: definitions for GB_bld__*.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // This file has been automatically generated from Generator/GB_bld.h -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB (_bld__min_int8) ( diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__land_bool.c b/GraphBLAS/FactoryKernels/GB_bld__land_bool.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__land_bool.c rename to GraphBLAS/FactoryKernels/GB_bld__land_bool.c index 333475ae10..d16e295d13 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__land_bool.c +++ b/GraphBLAS/FactoryKernels/GB_bld__land_bool.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = (Tx [k] && Sx [i]) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__lor_bool.c b/GraphBLAS/FactoryKernels/GB_bld__lor_bool.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__lor_bool.c rename to GraphBLAS/FactoryKernels/GB_bld__lor_bool.c index b6dcd35c89..c12348e233 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__lor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_bld__lor_bool.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = (Tx [k] || Sx [i]) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__lxor_bool.c b/GraphBLAS/FactoryKernels/GB_bld__lxor_bool.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__lxor_bool.c rename to GraphBLAS/FactoryKernels/GB_bld__lxor_bool.c index 3364fb88b3..22b497acd3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__lxor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_bld__lxor_bool.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = (Tx [k] != Sx [i]) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_fp32.c b/GraphBLAS/FactoryKernels/GB_bld__max_fp32.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_fp32.c rename to GraphBLAS/FactoryKernels/GB_bld__max_fp32.c index e4f17d265a..3634bd547f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_fp32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if ((Sx [i] > Tx [k]) || (Tx [k] != Tx [k])) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_fp64.c b/GraphBLAS/FactoryKernels/GB_bld__max_fp64.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_fp64.c rename to GraphBLAS/FactoryKernels/GB_bld__max_fp64.c index 86bdfdcbaa..318bfbea94 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_fp64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if ((Sx [i] > Tx [k]) || (Tx [k] != Tx [k])) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_int16.c b/GraphBLAS/FactoryKernels/GB_bld__max_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_int16.c rename to GraphBLAS/FactoryKernels/GB_bld__max_int16.c index 76407d32c4..16643cf128 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_int16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_int16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] > Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_int32.c b/GraphBLAS/FactoryKernels/GB_bld__max_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_int32.c rename to GraphBLAS/FactoryKernels/GB_bld__max_int32.c index b32f353d15..8a7d7b6460 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_int32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_int32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] > Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_int64.c b/GraphBLAS/FactoryKernels/GB_bld__max_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_int64.c rename to GraphBLAS/FactoryKernels/GB_bld__max_int64.c index fc5e350e7c..7f647e5059 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_int64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_int64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] > Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_int8.c b/GraphBLAS/FactoryKernels/GB_bld__max_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_int8.c rename to GraphBLAS/FactoryKernels/GB_bld__max_int8.c index ad410db859..7e39534691 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_int8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_int8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] > Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_uint16.c b/GraphBLAS/FactoryKernels/GB_bld__max_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_uint16.c rename to GraphBLAS/FactoryKernels/GB_bld__max_uint16.c index 86cf2a5bf8..12fde29417 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_uint16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] > Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_uint32.c b/GraphBLAS/FactoryKernels/GB_bld__max_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_uint32.c rename to GraphBLAS/FactoryKernels/GB_bld__max_uint32.c index b01cd9b761..3dbe7b9386 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_uint32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] > Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_uint64.c b/GraphBLAS/FactoryKernels/GB_bld__max_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_uint64.c rename to GraphBLAS/FactoryKernels/GB_bld__max_uint64.c index 48d85e851b..5c056a61da 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_uint64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] > Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__max_uint8.c b/GraphBLAS/FactoryKernels/GB_bld__max_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__max_uint8.c rename to GraphBLAS/FactoryKernels/GB_bld__max_uint8.c index 7a701c5d4d..9bb892717d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__max_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__max_uint8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] > Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_fp32.c b/GraphBLAS/FactoryKernels/GB_bld__min_fp32.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_fp32.c rename to GraphBLAS/FactoryKernels/GB_bld__min_fp32.c index d0ad1a3a3f..8ba8a593eb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_fp32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if ((Sx [i] < Tx [k]) || (Tx [k] != Tx [k])) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_fp64.c b/GraphBLAS/FactoryKernels/GB_bld__min_fp64.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_fp64.c rename to GraphBLAS/FactoryKernels/GB_bld__min_fp64.c index 6993f3e9aa..cb19e51619 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_fp64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if ((Sx [i] < Tx [k]) || (Tx [k] != Tx [k])) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_int16.c b/GraphBLAS/FactoryKernels/GB_bld__min_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_int16.c rename to GraphBLAS/FactoryKernels/GB_bld__min_int16.c index f254ab1f38..ec06b69c22 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_int16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_int16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] < Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_int32.c b/GraphBLAS/FactoryKernels/GB_bld__min_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_int32.c rename to GraphBLAS/FactoryKernels/GB_bld__min_int32.c index 8b8e2e4ed5..1f0ebf312d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_int32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_int32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] < Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_int64.c b/GraphBLAS/FactoryKernels/GB_bld__min_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_int64.c rename to GraphBLAS/FactoryKernels/GB_bld__min_int64.c index c9d8569fc4..c9220f2b3d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_int64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_int64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] < Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_int8.c b/GraphBLAS/FactoryKernels/GB_bld__min_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_int8.c rename to GraphBLAS/FactoryKernels/GB_bld__min_int8.c index a52234d315..4034493a41 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_int8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_int8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] < Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_uint16.c b/GraphBLAS/FactoryKernels/GB_bld__min_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_uint16.c rename to GraphBLAS/FactoryKernels/GB_bld__min_uint16.c index f82f783d76..88319d6233 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_uint16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] < Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_uint32.c b/GraphBLAS/FactoryKernels/GB_bld__min_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_uint32.c rename to GraphBLAS/FactoryKernels/GB_bld__min_uint32.c index 942d3e3f8a..b86a8e59c1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_uint32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] < Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_uint64.c b/GraphBLAS/FactoryKernels/GB_bld__min_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_uint64.c rename to GraphBLAS/FactoryKernels/GB_bld__min_uint64.c index 5c499cc468..948e82363e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_uint64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] < Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__min_uint8.c b/GraphBLAS/FactoryKernels/GB_bld__min_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__min_uint8.c rename to GraphBLAS/FactoryKernels/GB_bld__min_uint8.c index 6aba163bae..8638aafa98 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__min_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__min_uint8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) if (Sx [i] < Tx [k]) { Tx [k] = Sx [i] ; } @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_fc32.c b/GraphBLAS/FactoryKernels/GB_bld__plus_fc32.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_fc32.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_fc32.c index 613ff39904..8158f26820 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_fc32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = GB_FC32_add (Tx [k], Sx [i]) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_fc64.c b/GraphBLAS/FactoryKernels/GB_bld__plus_fc64.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_fc64.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_fc64.c index 9969320728..67aad8873a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_fc64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = GB_FC64_add (Tx [k], Sx [i]) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_fp32.c b/GraphBLAS/FactoryKernels/GB_bld__plus_fp32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_fp32.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_fp32.c index 63f97bc45d..5de0ae2704 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_fp32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_fp64.c b/GraphBLAS/FactoryKernels/GB_bld__plus_fp64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_fp64.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_fp64.c index 04b8270cc8..42507fe843 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_fp64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_int16.c b/GraphBLAS/FactoryKernels/GB_bld__plus_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_int16.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_int16.c index 63680448a7..fdc62d86a4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_int16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_int32.c b/GraphBLAS/FactoryKernels/GB_bld__plus_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_int32.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_int32.c index fba5ac1999..556200cd96 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_int32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_int64.c b/GraphBLAS/FactoryKernels/GB_bld__plus_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_int64.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_int64.c index 22f4dc8442..b8fb5c44bb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_int64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_int8.c b/GraphBLAS/FactoryKernels/GB_bld__plus_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_int8.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_int8.c index 30237160c5..cb7251c18e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_int8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint16.c b/GraphBLAS/FactoryKernels/GB_bld__plus_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint16.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_uint16.c index 7be0f57431..1756e330ea 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_uint16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint32.c b/GraphBLAS/FactoryKernels/GB_bld__plus_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint32.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_uint32.c index 45adab3eb4..e8ae26e355 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_uint32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint64.c b/GraphBLAS/FactoryKernels/GB_bld__plus_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint64.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_uint64.c index be46590cc3..4b79c1b66d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_uint64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint8.c b/GraphBLAS/FactoryKernels/GB_bld__plus_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint8.c rename to GraphBLAS/FactoryKernels/GB_bld__plus_uint8.c index 00914049b7..002f78e561 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__plus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__plus_uint8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] += Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_bool.c b/GraphBLAS/FactoryKernels/GB_bld__second_bool.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_bool.c rename to GraphBLAS/FactoryKernels/GB_bld__second_bool.c index 91c3183fc5..8556ce60a5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_bool.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_bool.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_fc32.c b/GraphBLAS/FactoryKernels/GB_bld__second_fc32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_fc32.c rename to GraphBLAS/FactoryKernels/GB_bld__second_fc32.c index 7feea33044..901232fd34 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_fc32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_fc64.c b/GraphBLAS/FactoryKernels/GB_bld__second_fc64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_fc64.c rename to GraphBLAS/FactoryKernels/GB_bld__second_fc64.c index 1ef6b5809f..e3d5712803 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_fc64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_fp32.c b/GraphBLAS/FactoryKernels/GB_bld__second_fp32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_fp32.c rename to GraphBLAS/FactoryKernels/GB_bld__second_fp32.c index 80851c8f80..4f3d3787f7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_fp32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_fp64.c b/GraphBLAS/FactoryKernels/GB_bld__second_fp64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_fp64.c rename to GraphBLAS/FactoryKernels/GB_bld__second_fp64.c index 5ba7084cc6..e680502ded 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_fp64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_int16.c b/GraphBLAS/FactoryKernels/GB_bld__second_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_int16.c rename to GraphBLAS/FactoryKernels/GB_bld__second_int16.c index 872b556898..a81c7472ff 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_int16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_int16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_int32.c b/GraphBLAS/FactoryKernels/GB_bld__second_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_int32.c rename to GraphBLAS/FactoryKernels/GB_bld__second_int32.c index 4b50ab5846..7af5ced211 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_int32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_int32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_int64.c b/GraphBLAS/FactoryKernels/GB_bld__second_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_int64.c rename to GraphBLAS/FactoryKernels/GB_bld__second_int64.c index 5a179433a2..718d7df653 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_int64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_int64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_int8.c b/GraphBLAS/FactoryKernels/GB_bld__second_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_int8.c rename to GraphBLAS/FactoryKernels/GB_bld__second_int8.c index 3310f3b612..8692636e7a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_int8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_int8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_uint16.c b/GraphBLAS/FactoryKernels/GB_bld__second_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_uint16.c rename to GraphBLAS/FactoryKernels/GB_bld__second_uint16.c index fe9120ef66..ff98c08026 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_uint16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_uint32.c b/GraphBLAS/FactoryKernels/GB_bld__second_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_uint32.c rename to GraphBLAS/FactoryKernels/GB_bld__second_uint32.c index 3b5f0d65b1..913b695f81 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_uint32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_uint64.c b/GraphBLAS/FactoryKernels/GB_bld__second_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_uint64.c rename to GraphBLAS/FactoryKernels/GB_bld__second_uint64.c index 5ea8cadf23..f88269c059 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_uint64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__second_uint8.c b/GraphBLAS/FactoryKernels/GB_bld__second_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__second_uint8.c rename to GraphBLAS/FactoryKernels/GB_bld__second_uint8.c index de92d84259..2436463299 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__second_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__second_uint8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_fc32.c b/GraphBLAS/FactoryKernels/GB_bld__times_fc32.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_fc32.c rename to GraphBLAS/FactoryKernels/GB_bld__times_fc32.c index 4def3974bf..e66b0e5ae4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_fc32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = GB_FC32_mul (Tx [k], Sx [i]) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_fc64.c b/GraphBLAS/FactoryKernels/GB_bld__times_fc64.c similarity index 87% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_fc64.c rename to GraphBLAS/FactoryKernels/GB_bld__times_fc64.c index 829e55184b..803bf7dd0e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_fc64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] = GB_FC64_mul (Tx [k], Sx [i]) @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_fp32.c b/GraphBLAS/FactoryKernels/GB_bld__times_fp32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_fp32.c rename to GraphBLAS/FactoryKernels/GB_bld__times_fp32.c index 3fa071d684..fc05ce6101 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_fp32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_fp64.c b/GraphBLAS/FactoryKernels/GB_bld__times_fp64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_fp64.c rename to GraphBLAS/FactoryKernels/GB_bld__times_fp64.c index b3da134a5c..002653fd4e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_fp64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_int16.c b/GraphBLAS/FactoryKernels/GB_bld__times_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_int16.c rename to GraphBLAS/FactoryKernels/GB_bld__times_int16.c index c85bd4df4d..b7095152e7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_int16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_int16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_int32.c b/GraphBLAS/FactoryKernels/GB_bld__times_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_int32.c rename to GraphBLAS/FactoryKernels/GB_bld__times_int32.c index 22841102d9..18ddf86dd9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_int32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_int32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_int64.c b/GraphBLAS/FactoryKernels/GB_bld__times_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_int64.c rename to GraphBLAS/FactoryKernels/GB_bld__times_int64.c index d777386794..8b932a4c61 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_int64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_int64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_int8.c b/GraphBLAS/FactoryKernels/GB_bld__times_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_int8.c rename to GraphBLAS/FactoryKernels/GB_bld__times_int8.c index 866fc7a26a..ee4715f01a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_int8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_int8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_uint16.c b/GraphBLAS/FactoryKernels/GB_bld__times_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_uint16.c rename to GraphBLAS/FactoryKernels/GB_bld__times_uint16.c index f8bab58e7c..dcab28af67 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_uint16.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_uint32.c b/GraphBLAS/FactoryKernels/GB_bld__times_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_uint32.c rename to GraphBLAS/FactoryKernels/GB_bld__times_uint32.c index 1e4c144835..53f1928efd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_uint32.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_uint64.c b/GraphBLAS/FactoryKernels/GB_bld__times_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_uint64.c rename to GraphBLAS/FactoryKernels/GB_bld__times_uint64.c index 4e8fb71ea6..1ebeb999c5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_uint64.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_bld__times_uint8.c b/GraphBLAS/FactoryKernels/GB_bld__times_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_bld__times_uint8.c rename to GraphBLAS/FactoryKernels/GB_bld__times_uint8.c index 3a2065298b..b1ba114719 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_bld__times_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_bld__times_uint8.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here #define GB_BLD_DUP(Tx,k,Sx,i) Tx [k] *= Sx [i] @@ -31,7 +31,7 @@ #define GB_DISABLE 0 #endif -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -54,7 +54,7 @@ GrB_Info GB (_bld__times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__atan2_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__atan2_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__atan2_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__atan2_fp32.c index 462e60cb05..3fb221ca7f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__atan2_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__atan2_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = atan2f (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__atan2_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__atan2_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__atan2_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__atan2_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__atan2_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__atan2_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__atan2_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__atan2_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__atan2_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__atan2_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__atan2_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__atan2_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__atan2_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__atan2_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__atan2_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__atan2_fp64.c index 1c2c453652..6a1792790f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__atan2_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__atan2_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = atan2 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__atan2_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__atan2_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__atan2_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__atan2_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__atan2_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__atan2_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__atan2_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__atan2_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__atan2_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__atan2_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__atan2_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__atan2_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__band_int16.c b/GraphBLAS/FactoryKernels/GB_ew__band_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__band_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__band_int16.c index aff2f810a5..6114d8465c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__band_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__band_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) & (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__band_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__band_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__band_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__band_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__band_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__band_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__band_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__band_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__band_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__band_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__band_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__band_int32.c b/GraphBLAS/FactoryKernels/GB_ew__band_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__band_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__band_int32.c index 5cc3012ee1..dcd82e1434 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__band_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__band_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) & (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__band_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__band_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__band_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__band_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__band_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__band_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__band_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__band_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__band_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__band_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__band_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__band_int64.c b/GraphBLAS/FactoryKernels/GB_ew__band_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__band_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__band_int64.c index 7607262c7f..5e820733de 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__band_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__band_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) & (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__band_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__band_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__band_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__band_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__band_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__band_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__band_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__band_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__band_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__band_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__band_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__band_int8.c b/GraphBLAS/FactoryKernels/GB_ew__band_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__band_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__band_int8.c index 6cba58b851..0df64520a7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__band_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__band_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) & (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__band_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__band_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__band_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__band_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__band_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__band_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__band_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__band_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__band_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__band_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__band_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__band_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__band_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__band_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__band_uint16.c index ea677d5b8b..063e13d527 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__band_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__band_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) & (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__band_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__band_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__band_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__band_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__band_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__band_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__band_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__band_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__band_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__band_uint32.c index 5294856593..4f9fe3926f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__band_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__band_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) & (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__band_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__band_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__band_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__band_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__band_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__band_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__band_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__band_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__band_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__band_uint64.c index d433115217..95bd49e226 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__band_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__band_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) & (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__band_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__band_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__band_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__band_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__band_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__band_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__band_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__band_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__band_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__band_uint8.c index 0360844ad4..f3877aa1ee 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__band_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__band_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) & (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__band_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__band_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__band_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__band_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__band_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__band_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int16.c b/GraphBLAS/FactoryKernels/GB_ew__bclr_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__bclr_int16.c index 16d363f5aa..8e2d5b9a19 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bclr_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitclr_int16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bclr_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bclr_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bclr_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bclr_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bclr_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bclr_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bclr_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bclr_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bclr_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bclr_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bclr_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bclr_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int32.c b/GraphBLAS/FactoryKernels/GB_ew__bclr_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__bclr_int32.c index a054bafbd0..4670d7009d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bclr_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitclr_int32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bclr_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bclr_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bclr_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bclr_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bclr_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bclr_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bclr_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bclr_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bclr_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bclr_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bclr_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bclr_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int64.c b/GraphBLAS/FactoryKernels/GB_ew__bclr_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__bclr_int64.c index e1eefa52f8..3cd3ece220 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bclr_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitclr_int64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bclr_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bclr_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bclr_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bclr_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bclr_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bclr_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bclr_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bclr_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bclr_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bclr_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bclr_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bclr_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int8.c b/GraphBLAS/FactoryKernels/GB_ew__bclr_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__bclr_int8.c index 0c32725c24..8092250ece 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bclr_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitclr_int8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bclr_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bclr_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bclr_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bclr_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bclr_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bclr_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bclr_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bclr_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bclr_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bclr_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bclr_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bclr_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__bclr_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__bclr_uint16.c index 144535fecb..c3a6369089 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bclr_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitclr_uint16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bclr_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bclr_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bclr_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bclr_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bclr_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bclr_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bclr_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bclr_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bclr_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bclr_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bclr_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bclr_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__bclr_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__bclr_uint32.c index 10486b8c22..e12e272e90 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bclr_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitclr_uint32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bclr_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bclr_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bclr_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bclr_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bclr_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bclr_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bclr_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bclr_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bclr_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bclr_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bclr_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bclr_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__bclr_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__bclr_uint64.c index 8ba7eb66ff..d16ff12f44 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bclr_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitclr_uint64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bclr_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bclr_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bclr_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bclr_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bclr_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bclr_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bclr_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bclr_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bclr_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bclr_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bclr_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bclr_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__bclr_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__bclr_uint8.c index 391ebbf7b6..d545c003b1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bclr_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bclr_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitclr_uint8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bclr_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bclr_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bclr_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bclr_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bclr_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bclr_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bclr_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bclr_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bclr_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bclr_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bclr_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bclr_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_int16.c b/GraphBLAS/FactoryKernels/GB_ew__bget_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bget_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__bget_int16.c index 24b3264df0..c88a73df80 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bget_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitget_int16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bget_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bget_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bget_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bget_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bget_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bget_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bget_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bget_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bget_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bget_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bget_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bget_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_int32.c b/GraphBLAS/FactoryKernels/GB_ew__bget_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bget_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__bget_int32.c index 0c927411dc..92c594093a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bget_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitget_int32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bget_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bget_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bget_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bget_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bget_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bget_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bget_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bget_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bget_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bget_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bget_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bget_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_int64.c b/GraphBLAS/FactoryKernels/GB_ew__bget_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bget_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__bget_int64.c index ce1e8e39d9..366a247be1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bget_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitget_int64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bget_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bget_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bget_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bget_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bget_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bget_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bget_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bget_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bget_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bget_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bget_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bget_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_int8.c b/GraphBLAS/FactoryKernels/GB_ew__bget_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bget_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__bget_int8.c index 4f6e728454..92d8d977c3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bget_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitget_int8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bget_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bget_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bget_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bget_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bget_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bget_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bget_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bget_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bget_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bget_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bget_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bget_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__bget_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__bget_uint16.c index 962e17a85c..f3d1d053f3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bget_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitget_uint16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bget_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bget_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bget_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bget_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bget_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bget_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bget_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bget_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bget_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bget_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bget_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bget_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__bget_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__bget_uint32.c index 336c135417..653422c53f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bget_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitget_uint32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bget_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bget_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bget_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bget_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bget_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bget_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bget_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bget_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bget_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bget_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bget_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bget_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__bget_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__bget_uint64.c index 9776e8bc26..829db2f6e8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bget_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitget_uint64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bget_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bget_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bget_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bget_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bget_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bget_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bget_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bget_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bget_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bget_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bget_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bget_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__bget_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__bget_uint8.c index cff1cdea8d..bb1e43d400 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bget_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bget_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitget_uint8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bget_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bget_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bget_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bget_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bget_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bget_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bget_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bget_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bget_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bget_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bget_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bget_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_int16.c b/GraphBLAS/FactoryKernels/GB_ew__bor_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bor_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__bor_int16.c index d22a0c245f..82cb42bf5a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bor_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) | (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bor_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bor_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bor_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_int32.c b/GraphBLAS/FactoryKernels/GB_ew__bor_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bor_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__bor_int32.c index c02822e4f0..485ebb117d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bor_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) | (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bor_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bor_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bor_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_int64.c b/GraphBLAS/FactoryKernels/GB_ew__bor_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bor_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__bor_int64.c index a8481286fb..ea838e4e1f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bor_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) | (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bor_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bor_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bor_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_int8.c b/GraphBLAS/FactoryKernels/GB_ew__bor_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bor_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__bor_int8.c index 82d3c5b81d..1af7d983ce 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bor_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) | (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bor_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bor_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bor_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__bor_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__bor_uint16.c index ca6a497601..0343737303 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bor_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) | (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bor_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bor_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bor_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__bor_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__bor_uint32.c index 4542a5642a..f2bedb7076 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bor_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) | (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bor_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bor_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bor_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__bor_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__bor_uint64.c index 40044d80da..19773c5de0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bor_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) | (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bor_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bor_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bor_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__bor_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__bor_uint8.c index 345ca55a62..6140048531 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bor_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) | (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bor_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bor_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bor_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_int16.c b/GraphBLAS/FactoryKernels/GB_ew__bset_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bset_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__bset_int16.c index b85eb94e37..cd12f5be05 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bset_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitset_int16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bset_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bset_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bset_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bset_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bset_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bset_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bset_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bset_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bset_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bset_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bset_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bset_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_int32.c b/GraphBLAS/FactoryKernels/GB_ew__bset_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bset_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__bset_int32.c index 0597132b40..67911d7e48 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bset_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitset_int32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bset_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bset_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bset_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bset_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bset_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bset_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bset_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bset_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bset_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bset_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bset_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bset_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_int64.c b/GraphBLAS/FactoryKernels/GB_ew__bset_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bset_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__bset_int64.c index 8000a76d52..84d1d67198 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bset_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitset_int64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bset_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bset_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bset_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bset_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bset_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bset_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bset_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bset_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bset_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bset_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bset_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bset_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_int8.c b/GraphBLAS/FactoryKernels/GB_ew__bset_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bset_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__bset_int8.c index ea43bc0bc4..8cb89d3b81 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bset_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitset_int8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bset_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bset_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bset_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bset_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bset_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bset_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bset_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bset_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bset_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bset_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bset_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bset_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__bset_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__bset_uint16.c index 6b1b375844..16d8224b6e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bset_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitset_uint16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bset_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bset_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bset_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bset_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bset_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bset_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bset_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bset_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bset_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bset_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bset_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bset_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__bset_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__bset_uint32.c index 6aae90ba7e..fcd5e4ac47 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bset_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitset_uint32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bset_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bset_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bset_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bset_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bset_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bset_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bset_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bset_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bset_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bset_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bset_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bset_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__bset_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__bset_uint64.c index 3654527fed..761fbbec72 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bset_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitset_uint64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bset_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bset_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bset_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bset_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bset_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bset_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bset_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bset_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bset_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bset_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bset_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bset_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__bset_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__bset_uint8.c index 0d13b27984..0cdc899c33 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bset_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bset_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitset_uint8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bset_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bset_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bset_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bset_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bset_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bset_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bset_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bset_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bset_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bset_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bset_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bset_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int16.c b/GraphBLAS/FactoryKernels/GB_ew__bshift_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__bshift_int16.c index e96bdaba86..f4d42b10d0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bshift_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitshift_int16 (x, y) @@ -42,7 +44,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -56,7 +58,7 @@ GrB_Info GB (_Cewise_fulln__bshift_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -98,7 +100,7 @@ GrB_Info GB (_AaddB__bshift_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_AunionB__bshift_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -173,7 +175,7 @@ GrB_Info GB (_AemultB_08__bshift_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_AemultB_02__bshift_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -225,7 +227,7 @@ GrB_Info GB (_AemultB_03__bshift_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -250,7 +252,7 @@ GrB_Info GB (_AemultB_04__bshift_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -276,7 +278,7 @@ GrB_Info GB (_AemultB_bitmap__bshift_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -298,7 +300,7 @@ GrB_Info GB (_bind1st__bshift_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -320,7 +322,7 @@ GrB_Info GB (_bind2nd__bshift_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -354,7 +356,7 @@ GrB_Info GB (_bind1st_tran__bshift_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -388,7 +390,7 @@ GrB_Info GB (_bind2nd_tran__bshift_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int32.c b/GraphBLAS/FactoryKernels/GB_ew__bshift_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__bshift_int32.c index 269d10be00..978633e784 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bshift_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitshift_int32 (x, y) @@ -42,7 +44,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -56,7 +58,7 @@ GrB_Info GB (_Cewise_fulln__bshift_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -98,7 +100,7 @@ GrB_Info GB (_AaddB__bshift_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_AunionB__bshift_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -173,7 +175,7 @@ GrB_Info GB (_AemultB_08__bshift_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_AemultB_02__bshift_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -225,7 +227,7 @@ GrB_Info GB (_AemultB_03__bshift_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -250,7 +252,7 @@ GrB_Info GB (_AemultB_04__bshift_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -276,7 +278,7 @@ GrB_Info GB (_AemultB_bitmap__bshift_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -298,7 +300,7 @@ GrB_Info GB (_bind1st__bshift_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -320,7 +322,7 @@ GrB_Info GB (_bind2nd__bshift_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -354,7 +356,7 @@ GrB_Info GB (_bind1st_tran__bshift_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -388,7 +390,7 @@ GrB_Info GB (_bind2nd_tran__bshift_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int64.c b/GraphBLAS/FactoryKernels/GB_ew__bshift_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__bshift_int64.c index 678de9b1c9..8538684f9b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bshift_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitshift_int64 (x, y) @@ -42,7 +44,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -56,7 +58,7 @@ GrB_Info GB (_Cewise_fulln__bshift_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -98,7 +100,7 @@ GrB_Info GB (_AaddB__bshift_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_AunionB__bshift_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -173,7 +175,7 @@ GrB_Info GB (_AemultB_08__bshift_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_AemultB_02__bshift_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -225,7 +227,7 @@ GrB_Info GB (_AemultB_03__bshift_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -250,7 +252,7 @@ GrB_Info GB (_AemultB_04__bshift_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -276,7 +278,7 @@ GrB_Info GB (_AemultB_bitmap__bshift_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -298,7 +300,7 @@ GrB_Info GB (_bind1st__bshift_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -320,7 +322,7 @@ GrB_Info GB (_bind2nd__bshift_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -354,7 +356,7 @@ GrB_Info GB (_bind1st_tran__bshift_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -388,7 +390,7 @@ GrB_Info GB (_bind2nd_tran__bshift_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int8.c b/GraphBLAS/FactoryKernels/GB_ew__bshift_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__bshift_int8.c index f58263c8e3..8953c1c626 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bshift_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitshift_int8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bshift_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bshift_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bshift_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bshift_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bshift_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__bshift_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__bshift_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__bshift_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__bshift_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__bshift_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__bshift_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__bshift_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__bshift_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__bshift_uint16.c index b3df83d6c8..5c14a08fc1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bshift_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitshift_uint16 (x, y) @@ -42,7 +44,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -56,7 +58,7 @@ GrB_Info GB (_Cewise_fulln__bshift_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -98,7 +100,7 @@ GrB_Info GB (_AaddB__bshift_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_AunionB__bshift_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -173,7 +175,7 @@ GrB_Info GB (_AemultB_08__bshift_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_AemultB_02__bshift_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -225,7 +227,7 @@ GrB_Info GB (_AemultB_03__bshift_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -250,7 +252,7 @@ GrB_Info GB (_AemultB_04__bshift_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -276,7 +278,7 @@ GrB_Info GB (_AemultB_bitmap__bshift_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -298,7 +300,7 @@ GrB_Info GB (_bind1st__bshift_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -320,7 +322,7 @@ GrB_Info GB (_bind2nd__bshift_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -354,7 +356,7 @@ GrB_Info GB (_bind1st_tran__bshift_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -388,7 +390,7 @@ GrB_Info GB (_bind2nd_tran__bshift_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__bshift_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__bshift_uint32.c index 72742e0b6a..454c004a86 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bshift_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitshift_uint32 (x, y) @@ -42,7 +44,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -56,7 +58,7 @@ GrB_Info GB (_Cewise_fulln__bshift_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -98,7 +100,7 @@ GrB_Info GB (_AaddB__bshift_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_AunionB__bshift_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -173,7 +175,7 @@ GrB_Info GB (_AemultB_08__bshift_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_AemultB_02__bshift_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -225,7 +227,7 @@ GrB_Info GB (_AemultB_03__bshift_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -250,7 +252,7 @@ GrB_Info GB (_AemultB_04__bshift_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -276,7 +278,7 @@ GrB_Info GB (_AemultB_bitmap__bshift_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -298,7 +300,7 @@ GrB_Info GB (_bind1st__bshift_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -320,7 +322,7 @@ GrB_Info GB (_bind2nd__bshift_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -354,7 +356,7 @@ GrB_Info GB (_bind1st_tran__bshift_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -388,7 +390,7 @@ GrB_Info GB (_bind2nd_tran__bshift_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__bshift_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__bshift_uint64.c index 8b017072f2..0d27214a64 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bshift_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitshift_uint64 (x, y) @@ -42,7 +44,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -56,7 +58,7 @@ GrB_Info GB (_Cewise_fulln__bshift_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -98,7 +100,7 @@ GrB_Info GB (_AaddB__bshift_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_AunionB__bshift_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -173,7 +175,7 @@ GrB_Info GB (_AemultB_08__bshift_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_AemultB_02__bshift_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -225,7 +227,7 @@ GrB_Info GB (_AemultB_03__bshift_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -250,7 +252,7 @@ GrB_Info GB (_AemultB_04__bshift_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -276,7 +278,7 @@ GrB_Info GB (_AemultB_bitmap__bshift_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -298,7 +300,7 @@ GrB_Info GB (_bind1st__bshift_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -320,7 +322,7 @@ GrB_Info GB (_bind2nd__bshift_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -354,7 +356,7 @@ GrB_Info GB (_bind1st_tran__bshift_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -388,7 +390,7 @@ GrB_Info GB (_bind2nd_tran__bshift_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__bshift_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__bshift_uint8.c index d42ddbddf3..0dad045e83 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bshift_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bshift_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_bitshift_uint8 (x, y) @@ -42,7 +44,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -56,7 +58,7 @@ GrB_Info GB (_Cewise_fulln__bshift_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -98,7 +100,7 @@ GrB_Info GB (_AaddB__bshift_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -145,7 +147,7 @@ GrB_Info GB (_AunionB__bshift_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -173,7 +175,7 @@ GrB_Info GB (_AemultB_08__bshift_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -199,7 +201,7 @@ GrB_Info GB (_AemultB_02__bshift_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -225,7 +227,7 @@ GrB_Info GB (_AemultB_03__bshift_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -250,7 +252,7 @@ GrB_Info GB (_AemultB_04__bshift_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -276,7 +278,7 @@ GrB_Info GB (_AemultB_bitmap__bshift_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -298,7 +300,7 @@ GrB_Info GB (_bind1st__bshift_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -320,7 +322,7 @@ GrB_Info GB (_bind2nd__bshift_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -354,7 +356,7 @@ GrB_Info GB (_bind1st_tran__bshift_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -388,7 +390,7 @@ GrB_Info GB (_bind2nd_tran__bshift_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int16.c b/GraphBLAS/FactoryKernels/GB_ew__bxnor_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__bxnor_int16.c index 9c55304c85..3ceb9b50e0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxnor_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ~((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxnor_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bxnor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bxnor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bxnor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bxnor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bxnor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bxnor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bxnor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bxnor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bxnor_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bxnor_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int32.c b/GraphBLAS/FactoryKernels/GB_ew__bxnor_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__bxnor_int32.c index 4f336c2e13..918e087469 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxnor_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ~((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxnor_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bxnor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bxnor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bxnor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bxnor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bxnor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bxnor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bxnor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bxnor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bxnor_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bxnor_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int64.c b/GraphBLAS/FactoryKernels/GB_ew__bxnor_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__bxnor_int64.c index c1e9b7452f..5d19631631 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxnor_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ~((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxnor_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bxnor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bxnor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bxnor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bxnor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bxnor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bxnor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bxnor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bxnor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bxnor_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bxnor_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int8.c b/GraphBLAS/FactoryKernels/GB_ew__bxnor_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__bxnor_int8.c index cf932fe461..1403b448e7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxnor_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ~((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxnor_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bxnor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bxnor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bxnor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bxnor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bxnor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bxnor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bxnor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bxnor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bxnor_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bxnor_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__bxnor_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__bxnor_uint16.c index 99600516f2..f3cac2a0c7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxnor_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ~((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxnor_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bxnor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bxnor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bxnor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bxnor_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bxnor_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__bxnor_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__bxnor_uint32.c index f064c675c3..63689aec58 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxnor_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ~((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxnor_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bxnor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bxnor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bxnor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bxnor_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bxnor_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__bxnor_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__bxnor_uint64.c index 062a1dbf79..a91cdd4fe3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxnor_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ~((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxnor_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bxnor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bxnor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bxnor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bxnor_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bxnor_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__bxnor_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__bxnor_uint8.c index afec00b766..7b46d4bec4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxnor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxnor_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ~((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxnor_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bxnor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bxnor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bxnor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bxnor_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bxnor_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int16.c b/GraphBLAS/FactoryKernels/GB_ew__bxor_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__bxor_int16.c index 53c6dbe5bb..465f7a1384 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxor_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxor_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bxor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bxor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bxor_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bxor_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int32.c b/GraphBLAS/FactoryKernels/GB_ew__bxor_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__bxor_int32.c index f9646d15a0..328cadce13 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxor_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxor_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bxor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bxor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bxor_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bxor_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int64.c b/GraphBLAS/FactoryKernels/GB_ew__bxor_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__bxor_int64.c index 17f224fd66..af7b937531 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxor_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxor_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bxor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bxor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bxor_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bxor_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int8.c b/GraphBLAS/FactoryKernels/GB_ew__bxor_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__bxor_int8.c index 7b1adae54d..3b6dd7529b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxor_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxor_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__bxor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__bxor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__bxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__bxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__bxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__bxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__bxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__bxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__bxor_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__bxor_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__bxor_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__bxor_uint16.c index 50e9fe0a31..1fe4ba7e85 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxor_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxor_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bxor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bxor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bxor_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bxor_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__bxor_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__bxor_uint32.c index d0d7936249..32c4e8319a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxor_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxor_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bxor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bxor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bxor_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bxor_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__bxor_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__bxor_uint64.c index a16d47ad10..672b794072 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxor_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxor_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bxor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bxor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bxor_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bxor_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__bxor_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__bxor_uint8.c index e042a87d77..c13e709966 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__bxor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__bxor_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) ^ (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__bxor_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__bxor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__bxor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__bxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__bxor_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__bxor_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__cmplx_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__cmplx_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__cmplx_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__cmplx_fp32.c index 777a90426d..7a0835f8f7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__cmplx_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__cmplx_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GJ_CMPLX32 (x, y) @@ -44,7 +46,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -58,7 +60,7 @@ GrB_Info GB (_Cewise_fulln__cmplx_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -100,7 +102,7 @@ GrB_Info GB (_AaddB__cmplx_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_AunionB__cmplx_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -175,7 +177,7 @@ GrB_Info GB (_AemultB_08__cmplx_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_AemultB_02__cmplx_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -227,7 +229,7 @@ GrB_Info GB (_AemultB_03__cmplx_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -252,7 +254,7 @@ GrB_Info GB (_AemultB_04__cmplx_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -278,7 +280,7 @@ GrB_Info GB (_AemultB_bitmap__cmplx_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -300,7 +302,7 @@ GrB_Info GB (_bind1st__cmplx_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -322,7 +324,7 @@ GrB_Info GB (_bind2nd__cmplx_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -356,7 +358,7 @@ GrB_Info GB (_bind1st_tran__cmplx_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -390,7 +392,7 @@ GrB_Info GB (_bind2nd_tran__cmplx_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__cmplx_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__cmplx_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__cmplx_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__cmplx_fp64.c index f543f8209b..57a77a4e04 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__cmplx_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__cmplx_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GJ_CMPLX64 (x, y) @@ -44,7 +46,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -58,7 +60,7 @@ GrB_Info GB (_Cewise_fulln__cmplx_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -100,7 +102,7 @@ GrB_Info GB (_AaddB__cmplx_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_AunionB__cmplx_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -175,7 +177,7 @@ GrB_Info GB (_AemultB_08__cmplx_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_AemultB_02__cmplx_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -227,7 +229,7 @@ GrB_Info GB (_AemultB_03__cmplx_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -252,7 +254,7 @@ GrB_Info GB (_AemultB_04__cmplx_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -278,7 +280,7 @@ GrB_Info GB (_AemultB_bitmap__cmplx_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -300,7 +302,7 @@ GrB_Info GB (_bind1st__cmplx_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -322,7 +324,7 @@ GrB_Info GB (_bind2nd__cmplx_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -356,7 +358,7 @@ GrB_Info GB (_bind1st_tran__cmplx_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -390,7 +392,7 @@ GrB_Info GB (_bind2nd_tran__cmplx_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__copysign_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__copysign_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__copysign_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__copysign_fp32.c index f93a3ca5d8..990556e704 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__copysign_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__copysign_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = copysignf (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__copysign_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__copysign_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__copysign_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__copysign_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__copysign_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__copysign_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__copysign_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__copysign_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__copysign_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__copysign_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__copysign_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__copysign_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__copysign_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__copysign_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__copysign_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__copysign_fp64.c index 92da2721e7..9f3f908026 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__copysign_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__copysign_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = copysign (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__copysign_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__copysign_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__copysign_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__copysign_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__copysign_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__copysign_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__copysign_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__copysign_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__copysign_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__copysign_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__copysign_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__copysign_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__div_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__div_fc32.c index 517af52dc6..c900684f88 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_div (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_fc32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__div_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__div_fc64.c index 9630ec7e81..f0060d636a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_div (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_fc64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__div_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__div_fp32.c index e995357b23..66344b9acf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) / (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_fp32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__div_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__div_fp64.c index 7b1af8c4aa..9301edd76d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) / (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_fp64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_int16.c b/GraphBLAS/FactoryKernels/GB_ew__div_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__div_int16.c index 98b0730045..4ba1927912 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_int16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_int16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_int32.c b/GraphBLAS/FactoryKernels/GB_ew__div_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__div_int32.c index 98663b7c15..331e157e58 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_int32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_int32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_int64.c b/GraphBLAS/FactoryKernels/GB_ew__div_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__div_int64.c index 5df1ac88cd..58bbbb99e7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_int64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_int64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_int8.c b/GraphBLAS/FactoryKernels/GB_ew__div_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__div_int8.c index e1e9821a18..4a8798efe8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_int8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_int8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__div_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__div_uint16.c index 8b6a9a7775..329bed90c0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_uint16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_uint16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__div_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__div_uint32.c index 9858db7c8d..80277dd97d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_uint32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_uint32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__div_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__div_uint64.c index 88a3677d8d..48489c7a1a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_uint64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_uint64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__div_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__div_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__div_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__div_uint8.c index 01f69f4dc4..9e1e0f8a70 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__div_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__div_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_uint8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__div_uint8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__div_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__div_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__div_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__div_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__div_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__div_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_bool.c b/GraphBLAS/FactoryKernels/GB_ew__eq_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_bool.c index 9649cf4488..5f81afd507 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__eq_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__eq_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__eq_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__eq_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__eq_bool) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__eq_bool) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__eq_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_fc32.c index d4ddcd3aa0..8fb666937a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_eq (x, y) @@ -44,7 +46,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -58,7 +60,7 @@ GrB_Info GB (_Cewise_fulln__eq_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -100,7 +102,7 @@ GrB_Info GB (_AaddB__eq_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_AunionB__eq_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -175,7 +177,7 @@ GrB_Info GB (_AemultB_08__eq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_AemultB_02__eq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -226,7 +228,7 @@ GrB_Info GB (_AemultB_04__eq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -252,7 +254,7 @@ GrB_Info GB (_AemultB_bitmap__eq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_bind1st__eq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind2nd__eq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -330,7 +332,7 @@ GrB_Info GB (_bind1st_tran__eq_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -364,7 +366,7 @@ GrB_Info GB (_bind2nd_tran__eq_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__eq_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_fc64.c index b0b08d425d..af4c511132 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_eq (x, y) @@ -44,7 +46,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -58,7 +60,7 @@ GrB_Info GB (_Cewise_fulln__eq_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -100,7 +102,7 @@ GrB_Info GB (_AaddB__eq_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_AunionB__eq_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -175,7 +177,7 @@ GrB_Info GB (_AemultB_08__eq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_AemultB_02__eq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -226,7 +228,7 @@ GrB_Info GB (_AemultB_04__eq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -252,7 +254,7 @@ GrB_Info GB (_AemultB_bitmap__eq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_bind1st__eq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind2nd__eq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -330,7 +332,7 @@ GrB_Info GB (_bind1st_tran__eq_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -364,7 +366,7 @@ GrB_Info GB (_bind2nd_tran__eq_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__eq_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_fp32.c index 84dca84789..3c034fe2b6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__eq_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_fp64.c index c7ae0dd4a5..c04d751c10 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_int16.c b/GraphBLAS/FactoryKernels/GB_ew__eq_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_int16.c index 6ad1831942..1f6ab537a2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_int32.c b/GraphBLAS/FactoryKernels/GB_ew__eq_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_int32.c index 156a85cb09..166686548c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_int64.c b/GraphBLAS/FactoryKernels/GB_ew__eq_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_int64.c index e1a7d9b745..442fa14916 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_int8.c b/GraphBLAS/FactoryKernels/GB_ew__eq_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_int8.c index fa19a4e214..6baa6ece37 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__eq_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_uint16.c index 607f287ed6..8d7548721b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__eq_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_uint32.c index fd0c9b11af..2dc9ecee70 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__eq_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_uint64.c index e509ccd75e..78c7856e0c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__eq_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__eq_uint8.c index 10ffb8085c..2ad61924bd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__eq_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__eq_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__eq_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__eq_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__eq_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__eq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__eq_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__eq_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_bool.c b/GraphBLAS/FactoryKernels/GB_ew__first_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__first_bool.c index a4e141372d..7f239e033e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__first_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__first_fc32.c index 0248e26876..05c05edab5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__first_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__first_fc64.c index aabdf64527..37cd4cd74b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__first_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__first_fp32.c index 48cacfd436..1e09e3e9e3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__first_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__first_fp64.c index e2dd44831b..d79ab84f54 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_int16.c b/GraphBLAS/FactoryKernels/GB_ew__first_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__first_int16.c index ebda73f118..23a9515294 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_int32.c b/GraphBLAS/FactoryKernels/GB_ew__first_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__first_int32.c index 89a9039040..057d83af0c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_int64.c b/GraphBLAS/FactoryKernels/GB_ew__first_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__first_int64.c index 975ceef415..48affc5f0d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_int8.c b/GraphBLAS/FactoryKernels/GB_ew__first_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__first_int8.c index bf87ee3fa0..55b1a80c22 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__first_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__first_uint16.c index bd8874ecbf..4bd786e382 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__first_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__first_uint32.c index db660707b8..3ce81aa844 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__first_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__first_uint64.c index ccf3f2044e..fbd3555bbf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__first_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__first_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__first_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__first_uint8.c index 994db3c1da..e3b70cdf48 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__first_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__first_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = x @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__first_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__first_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__first_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__first_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__fmod_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__fmod_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__fmod_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__fmod_fp32.c index 9134f81ec4..580a0f468a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__fmod_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__fmod_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = fmodf (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__fmod_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__fmod_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__fmod_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__fmod_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__fmod_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__fmod_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__fmod_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__fmod_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__fmod_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__fmod_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__fmod_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__fmod_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__fmod_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__fmod_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__fmod_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__fmod_fp64.c index 8a41f5faee..4fbf4e31db 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__fmod_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__fmod_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = fmod (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__fmod_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__fmod_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__fmod_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__fmod_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__fmod_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__fmod_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__fmod_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__fmod_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__fmod_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__fmod_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__fmod_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__fmod_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_bool.c b/GraphBLAS/FactoryKernels/GB_ew__ge_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_bool.c index 5c00288a2c..275bc53027 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__ge_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__ge_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__ge_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__ge_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__ge_bool) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__ge_bool) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__ge_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_fp32.c index 2f72523768..8f95f66f97 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__ge_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_fp64.c index 3fa1e88aa7..cc9ea588bc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_int16.c b/GraphBLAS/FactoryKernels/GB_ew__ge_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_int16.c index 3c92ca01f1..59fb4ccb64 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_int32.c b/GraphBLAS/FactoryKernels/GB_ew__ge_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_int32.c index e0af1dc0b8..231b108643 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_int64.c b/GraphBLAS/FactoryKernels/GB_ew__ge_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_int64.c index 1b5fcd1571..c2e1b2dc7c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_int8.c b/GraphBLAS/FactoryKernels/GB_ew__ge_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_int8.c index 045b50c4f2..0832155558 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__ge_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_uint16.c index 6e65bc4b62..15fda25c22 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__ge_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_uint32.c index d9af099ecd..983cf2608b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__ge_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_uint64.c index cfe7f37f06..8f8c277788 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__ge_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__ge_uint8.c index 55268e9e03..f41e66a94f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ge_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ge_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ge_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ge_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ge_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__ge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__ge_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__ge_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_bool.c b/GraphBLAS/FactoryKernels/GB_ew__gt_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_bool.c index bf3b058d45..d416d03543 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__gt_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__gt_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__gt_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__gt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__gt_bool) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__gt_bool) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__gt_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_fp32.c index ae135a7775..52db825690 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__gt_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_fp64.c index ccf0b813a7..9486191382 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_int16.c b/GraphBLAS/FactoryKernels/GB_ew__gt_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_int16.c index cd22eed8a6..cbf5fd936f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_int32.c b/GraphBLAS/FactoryKernels/GB_ew__gt_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_int32.c index 4bfcfd6556..cddaaab76b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_int64.c b/GraphBLAS/FactoryKernels/GB_ew__gt_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_int64.c index 7a01b1c595..1f00760969 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_int8.c b/GraphBLAS/FactoryKernels/GB_ew__gt_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_int8.c index ba3d063379..56dabd3eaa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__gt_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_uint16.c index 85341fb461..4e03304ab5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__gt_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_uint32.c index 82d5220bba..c7a5b4a49d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__gt_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_uint64.c index 8919730d3a..aa16b86b8f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__gt_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__gt_uint8.c index e7d747aac5..20ef5537fb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__gt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__gt_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__gt_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__gt_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__gt_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__gt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__gt_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__gt_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__hypot_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__hypot_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__hypot_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__hypot_fp32.c index e72e90360e..da4a831d61 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__hypot_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__hypot_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = hypotf (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__hypot_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__hypot_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__hypot_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__hypot_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__hypot_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__hypot_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__hypot_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__hypot_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__hypot_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__hypot_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__hypot_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__hypot_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__hypot_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__hypot_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__hypot_fp64.c index 1ddf927959..dbe3d76c3c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__hypot_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__hypot_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = hypot (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__hypot_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__hypot_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__hypot_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__hypot_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__hypot_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__hypot_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__hypot_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__hypot_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__hypot_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__hypot_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__hypot_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__include.h b/GraphBLAS/FactoryKernels/GB_ew__include.h similarity index 99% rename from GraphBLAS/Source/FactoryKernels/GB_ew__include.h rename to GraphBLAS/FactoryKernels/GB_ew__include.h index c3be2bc1ce..5d24256283 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__include.h +++ b/GraphBLAS/FactoryKernels/GB_ew__include.h @@ -2,11 +2,11 @@ // GB_ew__include.h: definitions for GB_ew__*.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // This file has been automatically generated from Generator/GB_ew.h -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB (_Cewise_fulln__first_bool) diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_fc32.c index a32c98a74c..3e1e1f6739 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_iseq (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__iseq_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__iseq_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__iseq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__iseq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__iseq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__iseq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__iseq_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__iseq_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__iseq_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_fc64.c index 84479c44aa..db46484890 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_iseq (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__iseq_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__iseq_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__iseq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__iseq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__iseq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__iseq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__iseq_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__iseq_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__iseq_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_fp32.c index cbe3fffc84..cc6c9123f3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_fp64.c index 6eee645da1..d4dc2cfb32 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int16.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_int16.c index 948438ea8c..01aec022cb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int32.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_int32.c index 8b04b649f6..62fc530f60 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int64.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_int64.c index 6f7518f9d2..964dabbef3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int8.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_int8.c index c5c5876cac..a0c57d39b1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_uint16.c index 6bd4094178..352e43d0e9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_uint32.c index f58df9b9be..f0cee1cd55 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_uint64.c index 681062947e..8e7661fbec 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__iseq_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__iseq_uint8.c index c100fdb198..6e89f16184 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__iseq_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__iseq_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) == (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__iseq_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__iseq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__iseq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__iseq_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__iseq_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__iseq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__iseq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__iseq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__iseq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__iseq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__iseq_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__iseq_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__iseq_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__isge_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_fp32.c index 0b36fd308b..67d3334d8d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__isge_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_fp64.c index 266de65ec8..87030c84bb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_int16.c b/GraphBLAS/FactoryKernels/GB_ew__isge_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_int16.c index 8a1b89cf49..641bea91b7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_int32.c b/GraphBLAS/FactoryKernels/GB_ew__isge_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_int32.c index 1b039f701e..195c01ffa6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_int64.c b/GraphBLAS/FactoryKernels/GB_ew__isge_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_int64.c index 5349db20c3..d3463cfe2a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_int8.c b/GraphBLAS/FactoryKernels/GB_ew__isge_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_int8.c index f739a086e7..96d59aa139 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__isge_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_uint16.c index c081d07eee..f057c4ba1f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__isge_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_uint32.c index a59e123268..19a1746a60 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__isge_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_uint64.c index bb91194ca8..bcdd646010 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__isge_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__isge_uint8.c index c6be254aa6..f70258549d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isge_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isge_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) >= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isge_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isge_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isge_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isge_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isge_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isge_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_fp32.c index 6456dbbf82..6cbb20b6ae 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_fp64.c index e01cbe4fe4..8bca3f618a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int16.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_int16.c index ee26f84c4c..60ff2d0bde 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int32.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_int32.c index 4a834528fe..d46f672b40 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int64.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_int64.c index bc4a7e5635..47b13c7d5c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int8.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_int8.c index f8b974dfe1..33ccd8be77 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_uint16.c index 7caa193b5b..4f868fd43e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_uint32.c index c22ab518f5..60f5c7e2c0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_uint64.c index 5162562d46..f82daf85fd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__isgt_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__isgt_uint8.c index 4adab0aeff..c7452d6647 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isgt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isgt_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) > (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isgt_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isgt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isgt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isgt_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isgt_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isgt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isgt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isgt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isgt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isgt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isgt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isgt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isgt_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isgt_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__isle_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_fp32.c index 5c5b333f6c..5487903eda 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__isle_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_fp64.c index cc43dba0b2..ee5c1ab311 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_int16.c b/GraphBLAS/FactoryKernels/GB_ew__isle_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_int16.c index bf2bdae7b0..67b15a3220 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_int32.c b/GraphBLAS/FactoryKernels/GB_ew__isle_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_int32.c index 3f3a57513e..a98acd1444 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_int64.c b/GraphBLAS/FactoryKernels/GB_ew__isle_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_int64.c index dfed79b12d..99d3f35cf5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_int8.c b/GraphBLAS/FactoryKernels/GB_ew__isle_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_int8.c index ca15469797..7aed4782db 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__isle_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_uint16.c index 6cfe009136..74875ace28 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__isle_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_uint32.c index 076865a178..955bc7f227 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__isle_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_uint64.c index 02052663ac..082b514a51 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__isle_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__isle_uint8.c index f663cc3d4c..d43ded6729 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isle_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isle_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isle_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isle_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isle_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isle_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isle_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isle_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isle_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__isle_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__isle_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__isle_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__isle_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__isle_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__isle_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__isle_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__islt_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_fp32.c index 387124dcb2..d4929d57c0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__islt_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_fp64.c index e0902942c3..44149adae5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_int16.c b/GraphBLAS/FactoryKernels/GB_ew__islt_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_int16.c index f4ff5e0284..accd2a089c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_int32.c b/GraphBLAS/FactoryKernels/GB_ew__islt_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_int32.c index 564db1ecd4..f5eadc6930 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_int64.c b/GraphBLAS/FactoryKernels/GB_ew__islt_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_int64.c index f4d6b3b2fd..bc697bfd71 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_int8.c b/GraphBLAS/FactoryKernels/GB_ew__islt_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_int8.c index b6a402916c..e6635d7352 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__islt_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_uint16.c index 5727d9269d..60216a3ea7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__islt_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_uint32.c index f1ad97335b..7835aadc7d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__islt_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_uint64.c index d560b7cf20..86fcd14807 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__islt_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__islt_uint8.c index f5e4b0840d..f235d40d73 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__islt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__islt_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__islt_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__islt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__islt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__islt_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__islt_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__islt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__islt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__islt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__islt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__islt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__islt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__islt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__islt_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__islt_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__isne_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_fc32.c index 24c2fb93cb..a4fc36ed39 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_isne (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__isne_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__isne_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__isne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__isne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__isne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__isne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__isne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__isne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__isne_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__isne_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__isne_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_fc64.c index 90e1a5c303..27eb21e175 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_isne (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__isne_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__isne_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__isne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__isne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -222,7 +224,7 @@ GrB_Info GB (_AemultB_04__isne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_bitmap__isne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +272,7 @@ GrB_Info GB (_bind1st__isne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -292,7 +294,7 @@ GrB_Info GB (_bind2nd__isne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -326,7 +328,7 @@ GrB_Info GB (_bind1st_tran__isne_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd_tran__isne_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__isne_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_fp32.c index 165805a1fc..16e65573bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__isne_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_fp64.c index 8c3a54420b..302548b548 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_int16.c b/GraphBLAS/FactoryKernels/GB_ew__isne_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_int16.c index 79cc470479..fc193ea449 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_int32.c b/GraphBLAS/FactoryKernels/GB_ew__isne_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_int32.c index 64662c9368..71e1873ca6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_int64.c b/GraphBLAS/FactoryKernels/GB_ew__isne_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_int64.c index 529486c4c5..e9f80660da 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_int8.c b/GraphBLAS/FactoryKernels/GB_ew__isne_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_int8.c index 2dd30054e7..d2fc258e01 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__isne_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_uint16.c index ecd16e4d92..d401f4945c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__isne_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_uint32.c index 6fab4acf3b..0e72ac253a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__isne_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_uint64.c index d4b524843f..0f0fb0acc0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__isne_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__isne_uint8.c index 50f76cce10..ce1959819d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__isne_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__isne_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__isne_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__isne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__isne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__isne_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__isne_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__isne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__isne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__isne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__isne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__isne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__isne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__isne_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__isne_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_bool.c b/GraphBLAS/FactoryKernels/GB_ew__land_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__land_bool.c index 3e13a30053..0458e9460e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) && (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_bool) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_bool) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__land_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__land_fp32.c index 071af6c087..c7e0c8d79e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__land_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__land_fp64.c index e1f564dd90..dc53821f52 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_int16.c b/GraphBLAS/FactoryKernels/GB_ew__land_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__land_int16.c index 44d942cc75..e04bc07f58 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_int32.c b/GraphBLAS/FactoryKernels/GB_ew__land_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__land_int32.c index 5b8d1992b2..99e237ddb5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_int64.c b/GraphBLAS/FactoryKernels/GB_ew__land_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__land_int64.c index bddd257a24..123b886ceb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_int8.c b/GraphBLAS/FactoryKernels/GB_ew__land_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__land_int8.c index 6389ad7183..059c87045b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__land_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__land_uint16.c index a5e0f61abc..be300ac94e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__land_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__land_uint32.c index 4f3cc19357..37b7c36049 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__land_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__land_uint64.c index 3ac681c66e..98b425c47e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__land_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__land_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__land_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__land_uint8.c index 5b57d822d6..e7146ab78e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__land_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__land_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) && ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__land_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__land_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__land_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__land_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__land_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__land_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ldexp_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__ldexp_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ldexp_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__ldexp_fp32.c index 9214fdccff..1299b81dad 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ldexp_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ldexp_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ldexpf (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__ldexp_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__ldexp_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__ldexp_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__ldexp_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__ldexp_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__ldexp_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__ldexp_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__ldexp_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__ldexp_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__ldexp_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__ldexp_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__ldexp_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ldexp_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__ldexp_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ldexp_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__ldexp_fp64.c index f946c01479..9e72e70adc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ldexp_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ldexp_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ldexp (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__ldexp_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__ldexp_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__ldexp_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__ldexp_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__ldexp_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__ldexp_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__ldexp_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__ldexp_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__ldexp_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__ldexp_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__ldexp_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__ldexp_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_bool.c b/GraphBLAS/FactoryKernels/GB_ew__le_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__le_bool.c index 68f59dadd6..67eada093a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__le_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__le_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__le_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__le_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__le_bool) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__le_bool) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__le_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__le_fp32.c index 984ee5cfd8..3ccec71082 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__le_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__le_fp64.c index aed47a833e..fe3f2e3047 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_int16.c b/GraphBLAS/FactoryKernels/GB_ew__le_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__le_int16.c index 5afc96ebdc..a242e3560c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_int32.c b/GraphBLAS/FactoryKernels/GB_ew__le_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__le_int32.c index 29727e74a8..138a0efd9a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_int64.c b/GraphBLAS/FactoryKernels/GB_ew__le_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__le_int64.c index 79bcc8c1c3..7e098157c0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_int8.c b/GraphBLAS/FactoryKernels/GB_ew__le_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__le_int8.c index 33cea40f5d..fd2022d4a2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__le_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__le_uint16.c index e0c398ec85..43049f096d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__le_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__le_uint32.c index bed3896233..48456f5406 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__le_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__le_uint64.c index 6e38586dbf..62e69b78e9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__le_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__le_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__le_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__le_uint8.c index 7c362d2d4a..6e365e4c1b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__le_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__le_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) <= (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__le_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__le_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__le_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__le_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__le_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__le_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_bool.c b/GraphBLAS/FactoryKernels/GB_ew__lor_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_bool.c index fe338b0969..4c6ff9d4af 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) || (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_bool) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_bool) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__lor_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_fp32.c index f7dc171a6a..fbbbb37574 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__lor_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_fp64.c index fb248cec0c..c347f10d9f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_int16.c b/GraphBLAS/FactoryKernels/GB_ew__lor_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_int16.c index fced7be029..043d5c0e63 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_int32.c b/GraphBLAS/FactoryKernels/GB_ew__lor_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_int32.c index e2784e35e8..b3a70ecf85 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_int64.c b/GraphBLAS/FactoryKernels/GB_ew__lor_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_int64.c index 5d30e52ea3..26084efb92 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_int8.c b/GraphBLAS/FactoryKernels/GB_ew__lor_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_int8.c index 32f7319164..85a2b0e035 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__lor_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_uint16.c index e982f64068..01129bf85a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__lor_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_uint32.c index de96cc5775..b3beafe422 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__lor_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_uint64.c index 77183470a9..24e3ac754f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__lor_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__lor_uint8.c index ef9d688b4a..67ce9e5b07 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lor_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) || ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lor_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lor_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lor_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_bool.c b/GraphBLAS/FactoryKernels/GB_ew__lt_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_bool.c index 2ba8e59f53..8879059cde 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lt_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lt_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lt_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -265,7 +267,7 @@ GrB_Info GB (_AemultB_03__lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_04__lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -316,7 +318,7 @@ GrB_Info GB (_AemultB_bitmap__lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -338,7 +340,7 @@ GrB_Info GB (_bind1st__lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -360,7 +362,7 @@ GrB_Info GB (_bind2nd__lt_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -394,7 +396,7 @@ GrB_Info GB (_bind1st_tran__lt_bool) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -428,7 +430,7 @@ GrB_Info GB (_bind2nd_tran__lt_bool) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__lt_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_fp32.c index e8480aa31d..9540f6b066 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__lt_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_fp64.c index 184d8a223d..ef397a9744 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_int16.c b/GraphBLAS/FactoryKernels/GB_ew__lt_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_int16.c index 26caa9e666..40e5733731 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_int32.c b/GraphBLAS/FactoryKernels/GB_ew__lt_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_int32.c index dc294d8694..ee5793403d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_int64.c b/GraphBLAS/FactoryKernels/GB_ew__lt_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_int64.c index ffeeb90162..839f814ebf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_int8.c b/GraphBLAS/FactoryKernels/GB_ew__lt_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_int8.c index 293826476b..59ac2367ca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__lt_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_uint16.c index cede0599a4..743095709d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__lt_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_uint32.c index f4d8bfcb41..57fd276caf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__lt_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_uint64.c index 8dac2cb2b7..3a094fa2dd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__lt_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__lt_uint8.c index 650a5f90d9..02e4d77ed9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lt_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lt_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) < (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__lt_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__lt_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__lt_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -268,7 +270,7 @@ GrB_Info GB (_AemultB_03__lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_04__lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -319,7 +321,7 @@ GrB_Info GB (_AemultB_bitmap__lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -341,7 +343,7 @@ GrB_Info GB (_bind1st__lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -363,7 +365,7 @@ GrB_Info GB (_bind2nd__lt_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -397,7 +399,7 @@ GrB_Info GB (_bind1st_tran__lt_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -431,7 +433,7 @@ GrB_Info GB (_bind2nd_tran__lt_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_bool.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_bool.c index a2a8174a20..47b9b905bb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_bool) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_bool) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_fp32.c index 16a948b671..46dfd4bbdc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_fp64.c index 5c4fdcc2d8..b0f31f8d1e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int16.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_int16.c index 28662436b9..564df8ab12 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int32.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_int32.c index 39c11205ce..6f959d0900 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int64.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_int64.c index 731464a085..d1ddb95baf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int8.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_int8.c index 85fc8acd3b..9e029b7647 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_uint16.c index e91522a38d..57c3dcc3ba 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_uint32.c index 41d5b4fcee..a67038f630 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_uint64.c index 7bf08c092d..16ca8160a3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__lxor_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__lxor_uint8.c index df96f4e952..b5a50f8658 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__lxor_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__lxor_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (((x) != 0) != ((y) != 0)) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__lxor_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -75,7 +77,7 @@ GrB_Info GB (_AxD__lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -95,7 +97,7 @@ GrB_Info GB (_DxB__lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -138,7 +140,7 @@ GrB_Info GB (_AaddB__lxor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -185,7 +187,7 @@ GrB_Info GB (_AunionB__lxor_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -213,7 +215,7 @@ GrB_Info GB (_AemultB_08__lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -239,7 +241,7 @@ GrB_Info GB (_AemultB_02__lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_04__lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -290,7 +292,7 @@ GrB_Info GB (_AemultB_bitmap__lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -312,7 +314,7 @@ GrB_Info GB (_bind1st__lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -334,7 +336,7 @@ GrB_Info GB (_bind2nd__lxor_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -368,7 +370,7 @@ GrB_Info GB (_bind1st_tran__lxor_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -402,7 +404,7 @@ GrB_Info GB (_bind2nd_tran__lxor_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__max_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__max_fp32.c index e7daa9b51f..91dd4c715c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = fmaxf (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_fp32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__max_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__max_fp64.c index 766ca5bd75..46e972fb7c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = fmax (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_fp64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_int16.c b/GraphBLAS/FactoryKernels/GB_ew__max_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__max_int16.c index 15b6946f11..0675234bde 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMAX (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_int16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_int32.c b/GraphBLAS/FactoryKernels/GB_ew__max_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__max_int32.c index 6a087592b8..f49bbb9f78 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMAX (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_int32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_int64.c b/GraphBLAS/FactoryKernels/GB_ew__max_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__max_int64.c index 3a7604c473..01444c9fd5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMAX (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_int64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_int8.c b/GraphBLAS/FactoryKernels/GB_ew__max_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__max_int8.c index bd9deb7531..64e817d846 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMAX (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_int8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__max_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__max_uint16.c index c8eb52dd06..d3a77eaf15 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMAX (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_uint16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__max_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__max_uint32.c index 49f79d19f7..70245a6f3e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMAX (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_uint32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__max_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__max_uint64.c index a98d9a1b94..52253a12a9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMAX (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_uint64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__max_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__max_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__max_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__max_uint8.c index 0e77b8b4aa..6e0c2d05cb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__max_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__max_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMAX (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__max_uint8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__max_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__max_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__max_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__max_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__max_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__max_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__min_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__min_fp32.c index ac9b079011..2ce82b5edc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = fminf (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_fp32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__min_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__min_fp64.c index e747be6510..ff0741ce1d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = fmin (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_fp64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_int16.c b/GraphBLAS/FactoryKernels/GB_ew__min_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__min_int16.c index 21366f7152..de2c4a51e0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMIN (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_int16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_int32.c b/GraphBLAS/FactoryKernels/GB_ew__min_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__min_int32.c index b98b6692b0..a215ea2bfb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMIN (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_int32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_int64.c b/GraphBLAS/FactoryKernels/GB_ew__min_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__min_int64.c index 107a0382a7..88bce293af 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMIN (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_int64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_int8.c b/GraphBLAS/FactoryKernels/GB_ew__min_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__min_int8.c index 860189156d..0bfc2af232 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMIN (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_int8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__min_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__min_uint16.c index 669c50ab49..12af390e81 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMIN (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_uint16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__min_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__min_uint32.c index 4e768c8a9a..ec1f4c25fa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMIN (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_uint32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__min_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__min_uint64.c index 53eee81aeb..e883817e3d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMIN (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_uint64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__min_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__min_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__min_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__min_uint8.c index 201d1b27d1..0502d1b9a4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__min_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__min_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_IMIN (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__min_uint8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__min_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__min_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__min_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__min_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__min_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__min_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__minus_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_fc32.c index 0069fd2cc4..1cfadfee3e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_minus (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_fc32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__minus_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_fc64.c index a2e353492c..efcf4e48c3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_minus (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_fc64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__minus_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_fp32.c index 57c236e0cc..ee04b7dca9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_fp32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__minus_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_fp64.c index c0fb239f57..6ec5c1b146 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_fp64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_int16.c b/GraphBLAS/FactoryKernels/GB_ew__minus_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_int16.c index aabd1bb5fb..a1413f17b3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_int16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_int32.c b/GraphBLAS/FactoryKernels/GB_ew__minus_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_int32.c index 30c07ce510..c4e7e72b1f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_int32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_int64.c b/GraphBLAS/FactoryKernels/GB_ew__minus_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_int64.c index 6e449cc904..50b34cf886 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_int64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_int8.c b/GraphBLAS/FactoryKernels/GB_ew__minus_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_int8.c index 73f21a4195..673e6c33e7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_int8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__minus_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_uint16.c index f68534dfe0..d4ac997c98 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_uint16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__minus_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_uint32.c index 8aa612df0c..b1f44a7e5f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_uint32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__minus_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_uint64.c index f15a964f36..afb956264c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_uint64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__minus_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__minus_uint8.c index bae0e92a36..52e5e2ac8e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__minus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__minus_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) - (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__minus_uint8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__minus_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__minus_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__minus_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__minus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__minus_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__minus_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__ne_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_fc32.c index ef94eef011..d4643b0eb0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_ne (x, y) @@ -44,7 +46,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -58,7 +60,7 @@ GrB_Info GB (_Cewise_fulln__ne_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -100,7 +102,7 @@ GrB_Info GB (_AaddB__ne_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_AunionB__ne_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -175,7 +177,7 @@ GrB_Info GB (_AemultB_08__ne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_AemultB_02__ne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -226,7 +228,7 @@ GrB_Info GB (_AemultB_04__ne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -252,7 +254,7 @@ GrB_Info GB (_AemultB_bitmap__ne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_bind1st__ne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind2nd__ne_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -330,7 +332,7 @@ GrB_Info GB (_bind1st_tran__ne_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -364,7 +366,7 @@ GrB_Info GB (_bind2nd_tran__ne_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__ne_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_fc64.c index 5109db64c3..3614a0e701 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_ne (x, y) @@ -44,7 +46,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -58,7 +60,7 @@ GrB_Info GB (_Cewise_fulln__ne_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -100,7 +102,7 @@ GrB_Info GB (_AaddB__ne_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -147,7 +149,7 @@ GrB_Info GB (_AunionB__ne_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -175,7 +177,7 @@ GrB_Info GB (_AemultB_08__ne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -201,7 +203,7 @@ GrB_Info GB (_AemultB_02__ne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -226,7 +228,7 @@ GrB_Info GB (_AemultB_04__ne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -252,7 +254,7 @@ GrB_Info GB (_AemultB_bitmap__ne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_bind1st__ne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind2nd__ne_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -330,7 +332,7 @@ GrB_Info GB (_bind1st_tran__ne_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -364,7 +366,7 @@ GrB_Info GB (_bind2nd_tran__ne_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__ne_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_fp32.c index be1b137dfc..ab3d23e055 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__ne_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_fp64.c index bc4c66f1f9..26c637a01f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_int16.c b/GraphBLAS/FactoryKernels/GB_ew__ne_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_int16.c index 6e51bb72ae..81b7591d8d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_int32.c b/GraphBLAS/FactoryKernels/GB_ew__ne_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_int32.c index 08998f4d6d..6ecc8fe6e9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_int64.c b/GraphBLAS/FactoryKernels/GB_ew__ne_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_int64.c index 8683ae0954..df6f7ce339 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_int8.c b/GraphBLAS/FactoryKernels/GB_ew__ne_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_int8.c index ada043dd72..76a50b000c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__ne_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_uint16.c index 07a0a0bcf5..dfe66cc560 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__ne_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_uint32.c index 0483cad592..683f7b2e03 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__ne_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_uint64.c index ae82b27986..9ddabaf29d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__ne_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__ne_uint8.c index 5796ba4852..7f2a0ec4ce 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__ne_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__ne_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = ((x) != (y)) @@ -43,7 +45,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulln__ne_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -78,7 +80,7 @@ GrB_Info GB (_AxD__ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -98,7 +100,7 @@ GrB_Info GB (_DxB__ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -141,7 +143,7 @@ GrB_Info GB (_AaddB__ne_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -188,7 +190,7 @@ GrB_Info GB (_AunionB__ne_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -216,7 +218,7 @@ GrB_Info GB (_AemultB_08__ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -242,7 +244,7 @@ GrB_Info GB (_AemultB_02__ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -267,7 +269,7 @@ GrB_Info GB (_AemultB_04__ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -293,7 +295,7 @@ GrB_Info GB (_AemultB_bitmap__ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -315,7 +317,7 @@ GrB_Info GB (_bind1st__ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -337,7 +339,7 @@ GrB_Info GB (_bind2nd__ne_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -371,7 +373,7 @@ GrB_Info GB (_bind1st_tran__ne_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -405,7 +407,7 @@ GrB_Info GB (_bind2nd_tran__ne_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_bool.c b/GraphBLAS/FactoryKernels/GB_ew__pair_bool.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_bool.c index 2a264b0c3f..508544158c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__pair_fc32.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_fc32.c index 12a69bf708..754cff5b13 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GxB_CMPLXF(1,0) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__pair_fc64.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_fc64.c index 9830d60e67..2cfbc416f6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GxB_CMPLX(1,0) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__pair_fp32.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_fp32.c index 277ccb4768..cfc56cdf6a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__pair_fp64.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_fp64.c index b88838650d..e2522fdabb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_int16.c b/GraphBLAS/FactoryKernels/GB_ew__pair_int16.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_int16.c index b664f86045..0181f2ab65 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_int32.c b/GraphBLAS/FactoryKernels/GB_ew__pair_int32.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_int32.c index ab079e9001..8d4723ec8e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_int64.c b/GraphBLAS/FactoryKernels/GB_ew__pair_int64.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_int64.c index 64edecfb06..2e0b62ae8f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_int8.c b/GraphBLAS/FactoryKernels/GB_ew__pair_int8.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_int8.c index ca14be6f9e..3398d38a01 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__pair_uint16.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_uint16.c index 7e422ba0cb..934edc5c17 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__pair_uint32.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_uint32.c index 1767d4c4de..e7d6f85aef 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__pair_uint64.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_uint64.c index 1d6e36b86a..6d07f208db 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__pair_uint8.c similarity index 88% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__pair_uint8.c index 1e0e3edde3..6a331271d7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pair_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pair_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = 1 @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pair_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pair_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__plus_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_fc32.c index c79fc4b182..392fdc983e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_add (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_fc32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__plus_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_fc64.c index 1c70de35de..994092db75 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_add (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_fc64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__plus_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_fp32.c index f45c71cf57..1019f4a036 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_fp32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__plus_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_fp64.c index 3a0e9da716..d34b674f82 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_fp64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_int16.c b/GraphBLAS/FactoryKernels/GB_ew__plus_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_int16.c index 6a502034f4..b729ea7764 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_int16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_int32.c b/GraphBLAS/FactoryKernels/GB_ew__plus_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_int32.c index 02bf82ba53..4f637c657c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_int32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_int64.c b/GraphBLAS/FactoryKernels/GB_ew__plus_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_int64.c index e5a2c7581c..f101db5b74 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_int64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_int8.c b/GraphBLAS/FactoryKernels/GB_ew__plus_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_int8.c index 49f2bca0b6..87424c25b5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_int8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__plus_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_uint16.c index 34d2b28ad5..1a68a7e019 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_uint16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__plus_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_uint32.c index 076e38b548..89c795f91e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_uint32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__plus_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_uint64.c index 7aee540af6..c9c0f0fb81 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_uint64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__plus_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__plus_uint8.c index 30067becbd..c7cbbddda4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__plus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__plus_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) + (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__plus_uint8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__plus_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__plus_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__plus_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__plus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__plus_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__plus_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__pow_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_fc32.c index ce5ba65a71..594b61704b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_pow (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__pow_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_fc64.c index 57abc367e7..03ad8465d4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_pow (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__pow_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_fp32.c index e9622d5b5f..97fee78874 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_powf (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__pow_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_fp64.c index 5fc76a61cd..da01e0b8ab 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_pow (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_int16.c b/GraphBLAS/FactoryKernels/GB_ew__pow_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_int16.c index 7840d563d6..ea9ef7b09b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_pow_int16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_int32.c b/GraphBLAS/FactoryKernels/GB_ew__pow_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_int32.c index 31ac8385e1..b33f1e33f9 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_pow_int32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_int64.c b/GraphBLAS/FactoryKernels/GB_ew__pow_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_int64.c index 67563eda5b..081f22316e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_pow_int64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_int8.c b/GraphBLAS/FactoryKernels/GB_ew__pow_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_int8.c index 865c25e342..b258a86572 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_pow_int8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__pow_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_uint16.c index dd108ba366..3db538d00a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_pow_uint16 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__pow_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_uint32.c index 4d6f588a3b..4a573d0d68 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_pow_uint32 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__pow_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_uint64.c index c4796a2e72..f5c0254750 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_pow_uint64 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__pow_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__pow_uint8.c index 9e1aef34b4..702d623a49 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__pow_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__pow_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_pow_uint8 (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__pow_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__pow_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__pow_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__pow_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__pow_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__pow_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__pow_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__pow_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__pow_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__pow_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__pow_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__pow_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_fc32.c index a7db1c43c3..12797658b7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_div (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_fc32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_fc64.c index 16a8078f79..251abd2d59 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_div (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_fc64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_fp32.c index 049cc2c43b..61bad7802e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) / (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_fp32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_fp64.c index 14fa74ade5..b22f306b35 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) / (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_fp64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int16.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_int16.c index fdcb5128b1..2bb2ee6309 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_int16 (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_int16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int32.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_int32.c index e3f8faaacf..12e6317962 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_int32 (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_int32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int64.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_int64.c index 384ecd4c04..245e8885d8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_int64 (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_int64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int8.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_int8.c index 254d342cae..88a876c5d7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_int8 (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_int8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_uint16.c index d34140e579..510bf980e0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_uint16 (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_uint16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_uint32.c index 27e145a7cc..8519cd0e6e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_uint32 (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_uint32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_uint64.c index 02fa6cbab6..621d7b7d0d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_uint64 (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_uint64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__rdiv_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__rdiv_uint8.c index 155b810a1d..80f4723db6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rdiv_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rdiv_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_idiv_uint8 (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rdiv_uint8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rdiv_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rdiv_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rdiv_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rdiv_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rdiv_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rdiv_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__remainder_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__remainder_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__remainder_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__remainder_fp32.c index 0290b36bb0..13e761ff28 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__remainder_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__remainder_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = remainderf (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__remainder_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__remainder_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__remainder_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__remainder_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__remainder_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__remainder_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__remainder_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__remainder_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__remainder_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__remainder_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__remainder_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__remainder_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__remainder_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__remainder_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__remainder_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__remainder_fp64.c index 8182a64d7e..033356efd5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__remainder_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__remainder_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = remainder (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -54,7 +56,7 @@ GrB_Info GB (_Cewise_fulln__remainder_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -96,7 +98,7 @@ GrB_Info GB (_AaddB__remainder_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -143,7 +145,7 @@ GrB_Info GB (_AunionB__remainder_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +173,7 @@ GrB_Info GB (_AemultB_08__remainder_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -197,7 +199,7 @@ GrB_Info GB (_AemultB_02__remainder_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -223,7 +225,7 @@ GrB_Info GB (_AemultB_03__remainder_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -248,7 +250,7 @@ GrB_Info GB (_AemultB_04__remainder_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -274,7 +276,7 @@ GrB_Info GB (_AemultB_bitmap__remainder_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -296,7 +298,7 @@ GrB_Info GB (_bind1st__remainder_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -318,7 +320,7 @@ GrB_Info GB (_bind2nd__remainder_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -352,7 +354,7 @@ GrB_Info GB (_bind1st_tran__remainder_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -386,7 +388,7 @@ GrB_Info GB (_bind2nd_tran__remainder_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_fc32.c index 35a85da2f3..a7450607dd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_minus (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_fc32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_fc64.c index 63935ec2a1..06825aa953 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_minus (y, x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_fc64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_fp32.c index 2a960a307d..d8b606e1c4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_fp32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_fp64.c index e5658cd441..a94d5f6f85 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_fp64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int16.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_int16.c index 5a21f75384..653de0d2a7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_int16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int32.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_int32.c index 7bd47be2c5..a2f0778982 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_int32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int64.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_int64.c index 9f427f250d..ed4de041ca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_int64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int8.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_int8.c index ab8935a4d6..3ff87f65bf 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_int8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_uint16.c index c982241050..cf241981f0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_uint16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_uint32.c index 5c785e6426..fdf1db5c1a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_uint32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_uint64.c index b55cdd7c2e..f5ce079021 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_uint64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__rminus_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__rminus_uint8.c index 69fb4ad96a..4b7cb0dc0f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__rminus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__rminus_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (y) - (x) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__rminus_uint8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__rminus_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__rminus_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__rminus_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -284,7 +286,7 @@ GrB_Info GB (_AemultB_03__rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_04__rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -335,7 +337,7 @@ GrB_Info GB (_AemultB_bitmap__rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -357,7 +359,7 @@ GrB_Info GB (_bind1st__rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -379,7 +381,7 @@ GrB_Info GB (_bind2nd__rminus_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -413,7 +415,7 @@ GrB_Info GB (_bind1st_tran__rminus_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -447,7 +449,7 @@ GrB_Info GB (_bind2nd_tran__rminus_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_bool.c b/GraphBLAS/FactoryKernels/GB_ew__second_bool.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_bool.c rename to GraphBLAS/FactoryKernels/GB_ew__second_bool.c index bd4ebafcc3..fe4d7c7a22 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_bool.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_bool.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_bool) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_bool) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_bool) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__second_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__second_fc32.c index 88d07fa1c0..2b8113e520 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__second_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__second_fc64.c index fc027bfd05..ccab979506 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__second_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__second_fp32.c index b279725c22..1b7db399aa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__second_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__second_fp64.c index c410e44f18..6d900b8db6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_int16.c b/GraphBLAS/FactoryKernels/GB_ew__second_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__second_int16.c index e2c0a9ffda..58c56e4971 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_int32.c b/GraphBLAS/FactoryKernels/GB_ew__second_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__second_int32.c index 8e67f7c689..93f6284059 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_int64.c b/GraphBLAS/FactoryKernels/GB_ew__second_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__second_int64.c index f924a7d1cf..b3a266d271 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_int8.c b/GraphBLAS/FactoryKernels/GB_ew__second_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__second_int8.c index 9e57f94a3c..ca3ef399d6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__second_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__second_uint16.c index f1efaa64d5..186bcb608b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__second_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__second_uint32.c index a7474e1f98..66e83f744a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__second_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__second_uint64.c index 9fdf9d4539..69b1ff6ef6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__second_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__second_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__second_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__second_uint8.c index 31289db992..9af19421f6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__second_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__second_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = y @@ -41,7 +43,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C = A+B, all 3 matrices dense @@ -55,7 +57,7 @@ GrB_Info GB (_Cewise_fulln__second_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -76,7 +78,7 @@ GrB_Info GB (_AxD__second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -96,7 +98,7 @@ GrB_Info GB (_DxB__second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -139,7 +141,7 @@ GrB_Info GB (_AaddB__second_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -186,7 +188,7 @@ GrB_Info GB (_AunionB__second_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -214,7 +216,7 @@ GrB_Info GB (_AemultB_08__second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -240,7 +242,7 @@ GrB_Info GB (_AemultB_02__second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -266,7 +268,7 @@ GrB_Info GB (_AemultB_03__second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_04__second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_bitmap__second_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_fc32.c b/GraphBLAS/FactoryKernels/GB_ew__times_fc32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_fc32.c rename to GraphBLAS/FactoryKernels/GB_ew__times_fc32.c index bfb09500b0..c63f899584 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_fc32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC32_mul (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_fc32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_fc32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_fc32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_fc32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_fc32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_fc32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_fc64.c b/GraphBLAS/FactoryKernels/GB_ew__times_fc64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_fc64.c rename to GraphBLAS/FactoryKernels/GB_ew__times_fc64.c index 8fda0134ca..a00ee2083f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_fc64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = GB_FC64_mul (x, y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_fc64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_fc64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_fc64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_fc64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_fc64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_fc64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_fp32.c b/GraphBLAS/FactoryKernels/GB_ew__times_fp32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_fp32.c rename to GraphBLAS/FactoryKernels/GB_ew__times_fp32.c index bf6f34dfb4..05129d2bb2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_fp32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_fp32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_fp32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_fp32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_fp32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_fp32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_fp32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_fp64.c b/GraphBLAS/FactoryKernels/GB_ew__times_fp64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_fp64.c rename to GraphBLAS/FactoryKernels/GB_ew__times_fp64.c index 44837d809a..64e6848147 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_fp64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_fp64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_fp64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_fp64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_fp64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_fp64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_fp64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_int16.c b/GraphBLAS/FactoryKernels/GB_ew__times_int16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_int16.c rename to GraphBLAS/FactoryKernels/GB_ew__times_int16.c index 88aae543d2..8464eb522d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_int16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_int16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_int16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_int16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_int16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_int16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_int16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_int16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_int32.c b/GraphBLAS/FactoryKernels/GB_ew__times_int32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_int32.c rename to GraphBLAS/FactoryKernels/GB_ew__times_int32.c index 9a8508b8eb..f46691a6f2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_int32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_int32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_int32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_int32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_int32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_int32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_int32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_int32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_int64.c b/GraphBLAS/FactoryKernels/GB_ew__times_int64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_int64.c rename to GraphBLAS/FactoryKernels/GB_ew__times_int64.c index 7c02ffd0fd..628987cba7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_int64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_int64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_int64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_int64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_int64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_int64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_int64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_int64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_int8.c b/GraphBLAS/FactoryKernels/GB_ew__times_int8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_int8.c rename to GraphBLAS/FactoryKernels/GB_ew__times_int8.c index c5c53cbd3d..561121037c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_int8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_int8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_int8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_int8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_int8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_int8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_int8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_int8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_uint16.c b/GraphBLAS/FactoryKernels/GB_ew__times_uint16.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_uint16.c rename to GraphBLAS/FactoryKernels/GB_ew__times_uint16.c index 25e6807418..798b50fd65 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_uint16.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_uint16) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_uint16) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_uint16) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_uint16) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_uint16) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_uint16) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_uint32.c b/GraphBLAS/FactoryKernels/GB_ew__times_uint32.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_uint32.c rename to GraphBLAS/FactoryKernels/GB_ew__times_uint32.c index afacd18063..ebb591c059 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_uint32.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_uint32) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_uint32) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_uint32) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_uint32) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_uint32) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_uint32) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_uint64.c b/GraphBLAS/FactoryKernels/GB_ew__times_uint64.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_uint64.c rename to GraphBLAS/FactoryKernels/GB_ew__times_uint64.c index 9715878a90..edc3b76dc6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_uint64.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_uint64) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_uint64) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_uint64) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_uint64) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_uint64) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_uint64) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_ew__times_uint8.c b/GraphBLAS/FactoryKernels/GB_ew__times_uint8.c similarity index 91% rename from GraphBLAS/Source/FactoryKernels/GB_ew__times_uint8.c rename to GraphBLAS/FactoryKernels/GB_ew__times_uint8.c index e0076c2a6a..35fb46ea7d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_ew__times_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_ew__times_uint8.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: #define GB_BINOP(z,x,y,i,j) z = (x) * (y) @@ -40,7 +42,7 @@ #define GB_DISABLE 0 #endif -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" //------------------------------------------------------------------------------ // C += A+B, all 3 matrices dense @@ -57,7 +59,7 @@ GrB_Info GB (_Cewise_fulla__times_uint8) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } @@ -73,7 +75,7 @@ GrB_Info GB (_Cewise_fulln__times_uint8) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -94,7 +96,7 @@ GrB_Info GB (_AxD__times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -114,7 +116,7 @@ GrB_Info GB (_DxB__times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -157,7 +159,7 @@ GrB_Info GB (_AaddB__times_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -204,7 +206,7 @@ GrB_Info GB (_AunionB__times_uint8) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -232,7 +234,7 @@ GrB_Info GB (_AemultB_08__times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -258,7 +260,7 @@ GrB_Info GB (_AemultB_02__times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -283,7 +285,7 @@ GrB_Info GB (_AemultB_04__times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -309,7 +311,7 @@ GrB_Info GB (_AemultB_bitmap__times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -331,7 +333,7 @@ GrB_Info GB (_bind1st__times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -353,7 +355,7 @@ GrB_Info GB (_bind2nd__times_uint8) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -387,7 +389,7 @@ GrB_Info GB (_bind1st_tran__times_uint8) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -421,7 +423,7 @@ GrB_Info GB (_bind2nd_tran__times_uint8) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_bool.c b/GraphBLAS/FactoryKernels/GB_red__any_bool.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_bool.c rename to GraphBLAS/FactoryKernels/GB_red__any_bool.c index 14b7cae747..0bb03e8b4d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_bool.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_bool.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_bool) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_fc32.c b/GraphBLAS/FactoryKernels/GB_red__any_fc32.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_fc32.c rename to GraphBLAS/FactoryKernels/GB_red__any_fc32.c index c87137166a..fcf4057ce0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_fc32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_fc32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_fc64.c b/GraphBLAS/FactoryKernels/GB_red__any_fc64.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_fc64.c rename to GraphBLAS/FactoryKernels/GB_red__any_fc64.c index f90b4cccc3..a4028df2e6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_fc64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_fc64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_fp32.c b/GraphBLAS/FactoryKernels/GB_red__any_fp32.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_fp32.c rename to GraphBLAS/FactoryKernels/GB_red__any_fp32.c index 2603927976..7750821dee 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_fp32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_fp32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_fp64.c b/GraphBLAS/FactoryKernels/GB_red__any_fp64.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_fp64.c rename to GraphBLAS/FactoryKernels/GB_red__any_fp64.c index f555b3d7cc..c8106d1716 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_fp64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_fp64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_int16.c b/GraphBLAS/FactoryKernels/GB_red__any_int16.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_int16.c rename to GraphBLAS/FactoryKernels/GB_red__any_int16.c index 0fff5f3d62..0a1fff127d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_int16.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_int16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_int16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_int32.c b/GraphBLAS/FactoryKernels/GB_red__any_int32.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_int32.c rename to GraphBLAS/FactoryKernels/GB_red__any_int32.c index 7c17384a33..73c3b81110 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_int32.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_int32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_int32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_int64.c b/GraphBLAS/FactoryKernels/GB_red__any_int64.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_int64.c rename to GraphBLAS/FactoryKernels/GB_red__any_int64.c index 8edf935ab7..26525c5df0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_int64.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_int64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_int64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_int8.c b/GraphBLAS/FactoryKernels/GB_red__any_int8.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_int8.c rename to GraphBLAS/FactoryKernels/GB_red__any_int8.c index 8bb010c46c..ada4947b69 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_int8.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_int8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_int8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_uint16.c b/GraphBLAS/FactoryKernels/GB_red__any_uint16.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_uint16.c rename to GraphBLAS/FactoryKernels/GB_red__any_uint16.c index ce8484d777..30be696c9d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_uint16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_uint16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_uint32.c b/GraphBLAS/FactoryKernels/GB_red__any_uint32.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_uint32.c rename to GraphBLAS/FactoryKernels/GB_red__any_uint32.c index fa883ed3ab..1f8586135b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_uint32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_uint32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_uint64.c b/GraphBLAS/FactoryKernels/GB_red__any_uint64.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_uint64.c rename to GraphBLAS/FactoryKernels/GB_red__any_uint64.c index 1c63d9db54..b4fc6041da 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_uint64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_uint64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__any_uint8.c b/GraphBLAS/FactoryKernels/GB_red__any_uint8.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__any_uint8.c rename to GraphBLAS/FactoryKernels/GB_red__any_uint8.c index 55393389a8..0b7bd1ed50 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__any_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_red__any_uint8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = a @@ -37,7 +37,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red__any_uint8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__eq_bool.c b/GraphBLAS/FactoryKernels/GB_red__eq_bool.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__eq_bool.c rename to GraphBLAS/FactoryKernels/GB_red__eq_bool.c index 0a2a76a7cb..8c65c9b109 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__eq_bool.c +++ b/GraphBLAS/FactoryKernels/GB_red__eq_bool.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = (z == a) @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__eq_bool) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__include.h b/GraphBLAS/FactoryKernels/GB_red__include.h similarity index 99% rename from GraphBLAS/Source/FactoryKernels/GB_red__include.h rename to GraphBLAS/FactoryKernels/GB_red__include.h index ac6b8122b1..3564ccc169 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__include.h +++ b/GraphBLAS/FactoryKernels/GB_red__include.h @@ -2,11 +2,11 @@ // GB_red__include.h: definitions for GB_red__*.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // This file has been automatically generated from Generator/GB_red.h -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB (_red__min_int8) ( diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__land_bool.c b/GraphBLAS/FactoryKernels/GB_red__land_bool.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__land_bool.c rename to GraphBLAS/FactoryKernels/GB_red__land_bool.c index befce4c3a5..3c14d987da 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__land_bool.c +++ b/GraphBLAS/FactoryKernels/GB_red__land_bool.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = (z && a) @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__land_bool) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__lor_bool.c b/GraphBLAS/FactoryKernels/GB_red__lor_bool.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__lor_bool.c rename to GraphBLAS/FactoryKernels/GB_red__lor_bool.c index 652fa228a4..f998792b9b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__lor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_red__lor_bool.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = (z || a) @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__lor_bool) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__lxor_bool.c b/GraphBLAS/FactoryKernels/GB_red__lxor_bool.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__lxor_bool.c rename to GraphBLAS/FactoryKernels/GB_red__lxor_bool.c index aa12471f06..aa7f5b56a5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__lxor_bool.c +++ b/GraphBLAS/FactoryKernels/GB_red__lxor_bool.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = (z != a) @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__lxor_bool) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_fp32.c b/GraphBLAS/FactoryKernels/GB_red__max_fp32.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_fp32.c rename to GraphBLAS/FactoryKernels/GB_red__max_fp32.c index 4a2403cae9..b45d8ecdf8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_fp32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if ((a > z) || (z != z)) { z = a ; } @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__max_fp32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_fp64.c b/GraphBLAS/FactoryKernels/GB_red__max_fp64.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_fp64.c rename to GraphBLAS/FactoryKernels/GB_red__max_fp64.c index d48533c7f2..3e3257a145 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_fp64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if ((a > z) || (z != z)) { z = a ; } @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__max_fp64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_int16.c b/GraphBLAS/FactoryKernels/GB_red__max_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_int16.c rename to GraphBLAS/FactoryKernels/GB_red__max_int16.c index bc3408d3db..966f6ff40b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_int16.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_int16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a > z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__max_int16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_int32.c b/GraphBLAS/FactoryKernels/GB_red__max_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_int32.c rename to GraphBLAS/FactoryKernels/GB_red__max_int32.c index 5b2a333018..1a7c9768c1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_int32.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_int32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a > z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__max_int32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_int64.c b/GraphBLAS/FactoryKernels/GB_red__max_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_int64.c rename to GraphBLAS/FactoryKernels/GB_red__max_int64.c index 50a35c0b88..caae74374f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_int64.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_int64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a > z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__max_int64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_int8.c b/GraphBLAS/FactoryKernels/GB_red__max_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_int8.c rename to GraphBLAS/FactoryKernels/GB_red__max_int8.c index ef25d6b6ab..5fa0e1291d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_int8.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_int8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a > z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__max_int8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_uint16.c b/GraphBLAS/FactoryKernels/GB_red__max_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_uint16.c rename to GraphBLAS/FactoryKernels/GB_red__max_uint16.c index cee1d2366c..3d59a748b3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_uint16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a > z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__max_uint16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_uint32.c b/GraphBLAS/FactoryKernels/GB_red__max_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_uint32.c rename to GraphBLAS/FactoryKernels/GB_red__max_uint32.c index 33876eb220..be96c26084 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_uint32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a > z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__max_uint32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_uint64.c b/GraphBLAS/FactoryKernels/GB_red__max_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_uint64.c rename to GraphBLAS/FactoryKernels/GB_red__max_uint64.c index 7a5e9308fc..f3df8b96c3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_uint64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a > z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__max_uint64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__max_uint8.c b/GraphBLAS/FactoryKernels/GB_red__max_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__max_uint8.c rename to GraphBLAS/FactoryKernels/GB_red__max_uint8.c index 0525f860f8..b41e2f0661 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__max_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_red__max_uint8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a > z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__max_uint8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_fp32.c b/GraphBLAS/FactoryKernels/GB_red__min_fp32.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_fp32.c rename to GraphBLAS/FactoryKernels/GB_red__min_fp32.c index 90cbb71783..d9dc3406c6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_fp32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if ((a < z) || (z != z)) { z = a ; } @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__min_fp32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_fp64.c b/GraphBLAS/FactoryKernels/GB_red__min_fp64.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_fp64.c rename to GraphBLAS/FactoryKernels/GB_red__min_fp64.c index 1a217258d4..801691b11d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_fp64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if ((a < z) || (z != z)) { z = a ; } @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__min_fp64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_int16.c b/GraphBLAS/FactoryKernels/GB_red__min_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_int16.c rename to GraphBLAS/FactoryKernels/GB_red__min_int16.c index 405c8bc508..18dbf14bcd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_int16.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_int16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a < z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__min_int16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_int32.c b/GraphBLAS/FactoryKernels/GB_red__min_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_int32.c rename to GraphBLAS/FactoryKernels/GB_red__min_int32.c index 8b174acd84..3465e9428e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_int32.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_int32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a < z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__min_int32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_int64.c b/GraphBLAS/FactoryKernels/GB_red__min_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_int64.c rename to GraphBLAS/FactoryKernels/GB_red__min_int64.c index 88cb82b58f..fe4921e9f0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_int64.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_int64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a < z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__min_int64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_int8.c b/GraphBLAS/FactoryKernels/GB_red__min_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_int8.c rename to GraphBLAS/FactoryKernels/GB_red__min_int8.c index 68db5e92e0..bb5f152d27 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_int8.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_int8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a < z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__min_int8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_uint16.c b/GraphBLAS/FactoryKernels/GB_red__min_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_uint16.c rename to GraphBLAS/FactoryKernels/GB_red__min_uint16.c index 970cfd86bd..f024db5589 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_uint16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a < z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__min_uint16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_uint32.c b/GraphBLAS/FactoryKernels/GB_red__min_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_uint32.c rename to GraphBLAS/FactoryKernels/GB_red__min_uint32.c index 6a4a59de67..5098c3f5b5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_uint32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a < z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__min_uint32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_uint64.c b/GraphBLAS/FactoryKernels/GB_red__min_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_uint64.c rename to GraphBLAS/FactoryKernels/GB_red__min_uint64.c index 986e9f5d28..f5deee39ec 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_uint64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a < z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__min_uint64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__min_uint8.c b/GraphBLAS/FactoryKernels/GB_red__min_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__min_uint8.c rename to GraphBLAS/FactoryKernels/GB_red__min_uint8.c index b0d199b536..3fc7e85953 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__min_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_red__min_uint8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) if (a < z) { z = a ; } @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__min_uint8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_fc32.c b/GraphBLAS/FactoryKernels/GB_red__plus_fc32.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_fc32.c rename to GraphBLAS/FactoryKernels/GB_red__plus_fc32.c index d2a88d6e38..c1a3e67953 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_fc32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = GB_FC32_add (z, a) @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_fc32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_fc64.c b/GraphBLAS/FactoryKernels/GB_red__plus_fc64.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_fc64.c rename to GraphBLAS/FactoryKernels/GB_red__plus_fc64.c index be1e75403d..b38556ec48 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_fc64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = GB_FC64_add (z, a) @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_fc64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_fp32.c b/GraphBLAS/FactoryKernels/GB_red__plus_fp32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_fp32.c rename to GraphBLAS/FactoryKernels/GB_red__plus_fp32.c index de00275b2f..d8adcbe94d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_fp32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_fp32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_fp64.c b/GraphBLAS/FactoryKernels/GB_red__plus_fp64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_fp64.c rename to GraphBLAS/FactoryKernels/GB_red__plus_fp64.c index 59c45ded29..e3e4546ac3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_fp64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_fp64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_int16.c b/GraphBLAS/FactoryKernels/GB_red__plus_int16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_int16.c rename to GraphBLAS/FactoryKernels/GB_red__plus_int16.c index 0bd491fa43..c6c2b6ebef 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_int16.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_int16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_int16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_int32.c b/GraphBLAS/FactoryKernels/GB_red__plus_int32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_int32.c rename to GraphBLAS/FactoryKernels/GB_red__plus_int32.c index cafc7d6730..50202e0278 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_int32.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_int32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_int32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_int64.c b/GraphBLAS/FactoryKernels/GB_red__plus_int64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_int64.c rename to GraphBLAS/FactoryKernels/GB_red__plus_int64.c index ca69ec7af0..4a619e9db2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_int64.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_int64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_int64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_int8.c b/GraphBLAS/FactoryKernels/GB_red__plus_int8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_int8.c rename to GraphBLAS/FactoryKernels/GB_red__plus_int8.c index 951da03bb7..99e0eecdbe 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_int8.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_int8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_int8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_uint16.c b/GraphBLAS/FactoryKernels/GB_red__plus_uint16.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_uint16.c rename to GraphBLAS/FactoryKernels/GB_red__plus_uint16.c index 0e04c149bb..a9a539f679 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_uint16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_uint16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_uint32.c b/GraphBLAS/FactoryKernels/GB_red__plus_uint32.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_uint32.c rename to GraphBLAS/FactoryKernels/GB_red__plus_uint32.c index d519c47f3a..77cdb6f768 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_uint32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_uint32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_uint64.c b/GraphBLAS/FactoryKernels/GB_red__plus_uint64.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_uint64.c rename to GraphBLAS/FactoryKernels/GB_red__plus_uint64.c index c395c506ca..4db081b7c5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_uint64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_uint64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__plus_uint8.c b/GraphBLAS/FactoryKernels/GB_red__plus_uint8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__plus_uint8.c rename to GraphBLAS/FactoryKernels/GB_red__plus_uint8.c index 02e0e5d68b..7ab5464a7a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__plus_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_red__plus_uint8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z += a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__plus_uint8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_fc32.c b/GraphBLAS/FactoryKernels/GB_red__times_fc32.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_fc32.c rename to GraphBLAS/FactoryKernels/GB_red__times_fc32.c index 5419343c74..c2cc4da5fa 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_fc32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = GB_FC32_mul (z, a) @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__times_fc32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_fc64.c b/GraphBLAS/FactoryKernels/GB_red__times_fc64.c similarity index 85% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_fc64.c rename to GraphBLAS/FactoryKernels/GB_red__times_fc64.c index 8a23e9aa8b..dd108920e1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_fc64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z = GB_FC64_mul (z, a) @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__times_fc64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_fp32.c b/GraphBLAS/FactoryKernels/GB_red__times_fp32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_fp32.c rename to GraphBLAS/FactoryKernels/GB_red__times_fp32.c index 86e871a4e2..4f933e247d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_fp32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__times_fp32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_fp64.c b/GraphBLAS/FactoryKernels/GB_red__times_fp64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_fp64.c rename to GraphBLAS/FactoryKernels/GB_red__times_fp64.c index 9dcdaee2a1..b5df94f8c1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_fp64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -36,7 +36,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -59,11 +59,11 @@ GrB_Info GB (_red__times_fp64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_int16.c b/GraphBLAS/FactoryKernels/GB_red__times_int16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_int16.c rename to GraphBLAS/FactoryKernels/GB_red__times_int16.c index 371b609a60..86d8e3eb21 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_int16.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_int16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__times_int16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_int32.c b/GraphBLAS/FactoryKernels/GB_red__times_int32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_int32.c rename to GraphBLAS/FactoryKernels/GB_red__times_int32.c index 046874c408..07269dc2be 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_int32.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_int32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__times_int32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_int64.c b/GraphBLAS/FactoryKernels/GB_red__times_int64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_int64.c rename to GraphBLAS/FactoryKernels/GB_red__times_int64.c index dfe08c07f8..103cf3cdcd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_int64.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_int64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__times_int64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_int8.c b/GraphBLAS/FactoryKernels/GB_red__times_int8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_int8.c rename to GraphBLAS/FactoryKernels/GB_red__times_int8.c index a56d956b31..b088eccf78 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_int8.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_int8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__times_int8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_uint16.c b/GraphBLAS/FactoryKernels/GB_red__times_uint16.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_uint16.c rename to GraphBLAS/FactoryKernels/GB_red__times_uint16.c index cccceeb87a..1f2261fee6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_uint16.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__times_uint16) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_uint32.c b/GraphBLAS/FactoryKernels/GB_red__times_uint32.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_uint32.c rename to GraphBLAS/FactoryKernels/GB_red__times_uint32.c index dbb529b996..5e5252857d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_uint32.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__times_uint32) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_uint64.c b/GraphBLAS/FactoryKernels/GB_red__times_uint64.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_uint64.c rename to GraphBLAS/FactoryKernels/GB_red__times_uint64.c index e90a24b0c4..8e57ce67ca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_uint64.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__times_uint64) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_red__times_uint8.c b/GraphBLAS/FactoryKernels/GB_red__times_uint8.c similarity index 86% rename from GraphBLAS/Source/FactoryKernels/GB_red__times_uint8.c rename to GraphBLAS/FactoryKernels/GB_red__times_uint8.c index a38ddbc802..cb77803ff0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_red__times_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_red__times_uint8.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: #define GB_UPDATE(z,a) z *= a @@ -41,7 +41,7 @@ #define GB_DISABLE 0 #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -64,11 +64,11 @@ GrB_Info GB (_red__times_uint8) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_bool.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_bool.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_bool.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_bool.c index 0387f408ab..a30e536e3b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_bool.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_bool.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE bool @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_bool) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_bool) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_bool) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fc32.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fc32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fc32.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fc32.c index 935db3d54f..a15c76078a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fc32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE GxB_FC32_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_fc32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_fc32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_fc32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fc64.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fc64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fc64.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fc64.c index 26b3d00209..c0055fc337 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fc64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE GxB_FC64_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_fc64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_fc64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_fc64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fp32.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fp32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fp32.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fp32.c index a83d5b39b5..787173df77 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fp32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE float @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_fp32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fp64.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fp64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fp64.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fp64.c index 7f73668172..5353b04718 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_fp64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE double @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_fp64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int16.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int16.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int16.c index 2a4820bc56..b696ce81c2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int16_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_int16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int32.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int32.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int32.c index 897f796a92..823c2ac0ed 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int32_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_int32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int64.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int64.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int64.c index 146d000f67..a861212ef7 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int64_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_int64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int8.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int8.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int8.c index de1c9f98a5..0b28262821 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_int8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_int8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int8_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_int8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint16.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint16.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint16.c index 2bff277a86..6299acab0d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint16_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_uint16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint32.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint32.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint32.c index 4139c534f2..f668ada330 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint32_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_uint32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint64.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint64.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint64.c index 0251d1834d..6c59557e13 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint64_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_uint64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint8.c b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint8.c rename to GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint8.c index b8f9a80cd9..c8f46a50f1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__eq_thunk_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__eq_thunk_uint8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint8_t @@ -18,7 +18,7 @@ #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) #define GB_ISO_SELECT 1 -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -37,7 +37,7 @@ GrB_Info GB (_sel_phase1__eq_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -60,7 +60,7 @@ GrB_Info GB (_sel_phase2__eq_thunk_uint8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -78,7 +78,7 @@ GrB_Info GB (_sel_bitmap__eq_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_fp32.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_fp32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_fp32.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_fp32.c index 99940a64f2..8114a910e4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_fp32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE float @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_fp32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_fp64.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_fp64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_fp64.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_fp64.c index a60fc3bef8..e36770d377 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_fp64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE double @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_fp64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int16.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int16.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int16.c index 62be3f2f3f..cf7caf30e1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_int16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int32.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int32.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int32.c index d31d36b03b..4328dbe8b4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_int32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int64.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int64.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int64.c index 9e7096f5ea..1de5138de5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_int64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int8.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int8.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int8.c index b9c4e57e17..a369f6a562 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_int8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_int8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_int8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint16.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint16.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint16.c index 252820d713..de6d8f9164 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_uint16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint32.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint32.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint32.c index 7c14c489f2..e2b6e6aa2d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_uint32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint64.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint64.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint64.c index bda37b5684..5b8c00ef4d 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_uint64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint8.c b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint8.c rename to GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint8.c index c1ecd325e2..0efdb9bcff 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ge_thunk_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ge_thunk_uint8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] >= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ge_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ge_thunk_uint8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ge_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_fp32.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_fp32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_fp32.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_fp32.c index c60de5d4a1..0cf2076990 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_fp32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE float @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_fp32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_fp64.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_fp64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_fp64.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_fp64.c index 7f7776275f..c24d9e35c0 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_fp64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE double @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_fp64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int16.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int16.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int16.c index 9248ca8238..7289ef3617 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_int16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int32.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int32.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int32.c index 71dbf33ec6..35dec7242f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_int32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int64.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int64.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int64.c index 8273f653ab..82c8cd1d6b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_int64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int8.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int8.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int8.c index 7ea2c478fa..ddb2336ee4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_int8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_int8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_int8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint16.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint16.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint16.c index 3491da8899..896290ae5c 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_uint16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint32.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint32.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint32.c index 5abb3fd5b8..95c4545a70 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_uint32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint64.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint64.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint64.c index ee8eaf598d..c9fc55e8b3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_uint64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint8.c b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint8.c rename to GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint8.c index e870db985c..a5504d87fb 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__gt_thunk_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__gt_thunk_uint8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] > y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__gt_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__gt_thunk_uint8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__gt_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__include.h b/GraphBLAS/FactoryKernels/GB_sel__include.h similarity index 99% rename from GraphBLAS/Source/FactoryKernels/GB_sel__include.h rename to GraphBLAS/FactoryKernels/GB_sel__include.h index c495c3f5e9..483a0ff945 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__include.h +++ b/GraphBLAS/FactoryKernels/GB_sel__include.h @@ -2,11 +2,11 @@ // GB_sel__include.h: definitions for GB_sel__*.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // This file has been automatically generated from Generator/GB_sel.h -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB (_sel_phase2__nonzombie_bool) diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_fp32.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_fp32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_fp32.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_fp32.c index c0bdb51a44..498cab4d84 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_fp32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE float @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_fp32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_fp64.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_fp64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_fp64.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_fp64.c index e0fb7b7457..40fc4fcdff 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_fp64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE double @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_fp64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int16.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_int16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int16.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_int16.c index d6bedc26e3..9a7b3d6619 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_int16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_int16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int32.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_int32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int32.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_int32.c index 7a561656d7..aa678b0b26 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_int32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_int32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int64.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_int64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int64.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_int64.c index cbc1070802..38548c47da 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_int64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_int64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int8.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_int8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int8.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_int8.c index a3a18fc26a..a570f2c359 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_int8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_int8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_int8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint16.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint16.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint16.c index c460924ea3..d162a35a46 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_uint16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint32.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint32.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint32.c index 39f3c7571b..0c6d2f47ed 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_uint32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint64.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint64.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint64.c index 650b66867c..a60e96e2ca 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_uint64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint8.c b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint8.c rename to GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint8.c index bfcd1705ac..baefa8f03b 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__le_thunk_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__le_thunk_uint8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] <= y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__le_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__le_thunk_uint8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__le_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_fp32.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_fp32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_fp32.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_fp32.c index 848410f605..264d08bfe1 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_fp32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE float @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_fp32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_fp64.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_fp64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_fp64.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_fp64.c index 16d82a6f50..807311ee9f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_fp64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE double @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_fp64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int16.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int16.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int16.c index 5f2be9333a..e10ff22a60 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_int16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int32.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int32.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int32.c index 57bbf259a5..91fa342629 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_int32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int64.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int64.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int64.c index f5b685ea0d..d5ab4fb370 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_int64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int8.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int8.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int8.c index c2e1ffeec3..180d51c0cc 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_int8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_int8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_int8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint16.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint16.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint16.c index 28f7ad9bcd..c5085ffbec 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_uint16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint32.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint32.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint32.c index 870e76235e..560d530103 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_uint32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint64.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint64.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint64.c index e8b6fc265f..d8a4707ee5 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_uint64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint8.c b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint8.c rename to GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint8.c index ec49f8c6a4..ec35e6e2a3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__lt_thunk_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__lt_thunk_uint8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] < y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__lt_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__lt_thunk_uint8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__lt_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fc32.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fc32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fc32.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fc32.c index d94975de8f..eb032b8da8 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fc32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE GxB_FC32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = GB_FC32_ne (Ax [p], y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_fc32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_fc32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_fc32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fc64.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fc64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fc64.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fc64.c index 71616a0c6a..dd961b94ba 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fc64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE GxB_FC64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = GB_FC64_ne (Ax [p], y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_fc64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_fc64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_fc64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fp32.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fp32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fp32.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fp32.c index 4cade88354..27c81837cd 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fp32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE float @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_fp32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_fp32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fp64.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fp64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fp64.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fp64.c index 930aa1bb54..ab4dcc2395 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_fp64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE double @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_fp64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_fp64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int16.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int16.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int16.c index ee76c0642e..5cf22d3209 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_int16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_int16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int32.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int32.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int32.c index 538ce49a2a..12dc282877 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_int32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_int32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int64.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int64.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int64.c index fa395a01e5..ee1a6c59a4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_int64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_int64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int8.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int8.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int8.c index 87f1aa545d..d295b6ff5f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_int8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_int8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_int8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_int8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint16.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint16.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint16.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint16.c index 514318c754..6958363979 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_uint16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_uint16) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint32.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint32.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint32.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint32.c index 0dac6d872c..93c830f3b3 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_uint32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_uint32) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint64.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint64.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint64.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint64.c index 731a502b3e..0f3f026e92 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_uint64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_uint64) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint8.c b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint8.c similarity index 84% rename from GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint8.c rename to GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint8.c index af28b14c8e..1db5e0d85a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__ne_thunk_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__ne_thunk_uint8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (Ax [p] != y) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase1 @@ -36,7 +36,7 @@ GrB_Info GB (_sel_phase1__ne_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -59,7 +59,7 @@ GrB_Info GB (_sel_phase2__ne_thunk_uint8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -77,7 +77,7 @@ GrB_Info GB (_sel_bitmap__ne_thunk_uint8) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_bool.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_bool.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_bool.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_bool.c index 970994437a..53b5a7f215 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_bool.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_bool.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE bool @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_bool) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fc32.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_fc32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fc32.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_fc32.c index 421638c776..46b170d1d4 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fc32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_fc32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE GxB_FC32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_fc32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fc64.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_fc64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fc64.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_fc64.c index b1a6732dd3..e0549a9074 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fc64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_fc64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE GxB_FC64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_fc64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fp32.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_fp32.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fp32.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_fp32.c index f38a62970e..690aae29b2 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fp32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_fp32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE float @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_fp32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fp64.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_fp64.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fp64.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_fp64.c index f14dcf4a63..bd9b748367 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_fp64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_fp64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE double @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_fp64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int16.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_int16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int16.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_int16.c index 27e82ee244..8c12dee73e 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_int16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_int16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int32.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_int32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int32.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_int32.c index 370b6df0cb..b47d616627 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_int32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_int32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int64.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_int64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int64.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_int64.c index b263324b78..bd23d0db36 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_int64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_int64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int8.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_int8.c similarity index 80% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int8.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_int8.c index f88754da5b..3baaedc301 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_int8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_int8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE int8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_int8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint16.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint16.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint16.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint16.c index 6a91f167ae..7005b3ee5f 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint16.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint16.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint16_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_uint16) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint32.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint32.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint32.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint32.c index 46413a2020..4be80bd48a 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint32.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint32.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint32_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_uint32) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint64.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint64.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint64.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint64.c index a8ef8a9d3f..02c1f17380 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint64.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint64.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint64_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_uint64) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint8.c b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint8.c similarity index 81% rename from GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint8.c rename to GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint8.c index 6ed25dbac5..dcdfd2bda6 100644 --- a/GraphBLAS/Source/FactoryKernels/GB_sel__nonzombie_uint8.c +++ b/GraphBLAS/FactoryKernels/GB_sel__nonzombie_uint8.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR #define GB_A_TYPE uint8_t @@ -17,7 +17,7 @@ #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) Cx [pC] = Ax [pA] -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" //------------------------------------------------------------------------------ // GB_sel_phase2 @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase2__nonzombie_uint8) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_bool_bool.c b/GraphBLAS/FactoryKernels/GB_uop__abs_bool_bool.c new file mode 100644 index 0000000000..6427d04390 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_bool_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE bool +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_bool_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_fp32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__abs_fp32_fc32.c new file mode 100644 index 0000000000..984e89d7fd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_fp32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cabsf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_fp32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__abs_fp32_fp32.c new file mode 100644 index 0000000000..f7953a1af5 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = fabsf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_fp64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__abs_fp64_fc64.c new file mode 100644 index 0000000000..369329351d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_fp64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cabs (x) +#define GB_Z_TYPE double +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_fp64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__abs_fp64_fp64.c new file mode 100644 index 0000000000..9103a630f0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = fabs (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_int16_int16.c b/GraphBLAS/FactoryKernels/GB_uop__abs_int16_int16.c new file mode 100644 index 0000000000..b6124b4e84 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_int16_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_IABS (x) +#define GB_Z_TYPE int16_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_int16_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_int32_int32.c b/GraphBLAS/FactoryKernels/GB_uop__abs_int32_int32.c new file mode 100644 index 0000000000..07395e314d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_int32_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_IABS (x) +#define GB_Z_TYPE int32_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_int32_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_int64_int64.c b/GraphBLAS/FactoryKernels/GB_uop__abs_int64_int64.c new file mode 100644 index 0000000000..98ea469b4a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_int64_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_IABS (x) +#define GB_Z_TYPE int64_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_int64_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_int8_int8.c b/GraphBLAS/FactoryKernels/GB_uop__abs_int8_int8.c new file mode 100644 index 0000000000..c9d3b2e95f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_int8_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_IABS (x) +#define GB_Z_TYPE int8_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_int8_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_uint16_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__abs_uint16_uint16.c new file mode 100644 index 0000000000..9390168f5f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_uint16_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_uint16_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_uint32_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__abs_uint32_uint32.c new file mode 100644 index 0000000000..39424aa260 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_uint32_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_uint32_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_uint64_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__abs_uint64_uint64.c new file mode 100644 index 0000000000..af9d16f9e5 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_uint64_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_uint64_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__abs_uint8_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__abs_uint8_uint8.c new file mode 100644 index 0000000000..ea410f9e54 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__abs_uint8_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ABS) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__abs_uint8_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__abs_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__acos_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__acos_fc32_fc32.c new file mode 100644 index 0000000000..365597aec9 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__acos_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cacosf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ACOS) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__acos_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__acos_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__acos_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__acos_fc64_fc64.c new file mode 100644 index 0000000000..c60807a52f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__acos_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cacos (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ACOS) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__acos_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__acos_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__acos_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__acos_fp32_fp32.c new file mode 100644 index 0000000000..5c59eaa518 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__acos_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = acosf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ACOS) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__acos_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__acos_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__acos_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__acos_fp64_fp64.c new file mode 100644 index 0000000000..871a501e3c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__acos_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = acos (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ACOS) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__acos_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__acos_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__acosh_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__acosh_fc32_fc32.c new file mode 100644 index 0000000000..d02ecb7cb8 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__acosh_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cacoshf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ACOSH) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__acosh_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__acosh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__acosh_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__acosh_fc64_fc64.c new file mode 100644 index 0000000000..aaa6216964 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__acosh_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cacosh (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ACOSH) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__acosh_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__acosh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__acosh_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__acosh_fp32_fp32.c new file mode 100644 index 0000000000..f5d4ecf851 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__acosh_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = acoshf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ACOSH) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__acosh_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__acosh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__acosh_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__acosh_fp64_fp64.c new file mode 100644 index 0000000000..72611b693b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__acosh_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = acosh (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ACOSH) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__acosh_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__acosh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_bool_bool.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_bool_bool.c new file mode 100644 index 0000000000..bfe3da1a19 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_bool_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE bool +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_bool_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_fc32_fc32.c new file mode 100644 index 0000000000..45a04a6a74 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_FC32_ainv (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_fc64_fc64.c new file mode 100644 index 0000000000..59c6488632 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_FC64_ainv (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_fp32_fp32.c new file mode 100644 index 0000000000..a8017e771b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_fp64_fp64.c new file mode 100644 index 0000000000..2ece74f193 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_int16_int16.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_int16_int16.c new file mode 100644 index 0000000000..2ae8151d0b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_int16_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_int16_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_int32_int32.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_int32_int32.c new file mode 100644 index 0000000000..323bd7e3a8 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_int32_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_int32_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_int64_int64.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_int64_int64.c new file mode 100644 index 0000000000..1bd6cde5fc --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_int64_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_int64_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_int8_int8.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_int8_int8.c new file mode 100644 index 0000000000..7edc93dd17 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_int8_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_int8_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_uint16_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_uint16_uint16.c new file mode 100644 index 0000000000..b9585687a8 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_uint16_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_uint16_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_uint32_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_uint32_uint32.c new file mode 100644 index 0000000000..f58ee62954 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_uint32_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_uint32_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_uint64_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_uint64_uint64.c new file mode 100644 index 0000000000..37ccf90fa2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_uint64_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_uint64_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ainv_uint8_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__ainv_uint8_uint8.c new file mode 100644 index 0000000000..95b65d3872 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ainv_uint8_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = -x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_AINV) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ainv_uint8_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ainv_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__asin_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__asin_fc32_fc32.c new file mode 100644 index 0000000000..af7cc3abb9 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__asin_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_casinf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ASIN) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__asin_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__asin_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__asin_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__asin_fc64_fc64.c new file mode 100644 index 0000000000..1eb300dd35 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__asin_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_casin (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ASIN) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__asin_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__asin_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__asin_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__asin_fp32_fp32.c new file mode 100644 index 0000000000..2cf6e2b315 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__asin_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = asinf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ASIN) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__asin_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__asin_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__asin_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__asin_fp64_fp64.c new file mode 100644 index 0000000000..7bb66e6eef --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__asin_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = asin (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ASIN) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__asin_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__asin_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__asinh_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__asinh_fc32_fc32.c new file mode 100644 index 0000000000..1ef02cf208 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__asinh_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_casinhf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ASINH) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__asinh_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__asinh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__asinh_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__asinh_fc64_fc64.c new file mode 100644 index 0000000000..c7ba30ad93 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__asinh_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_casinh (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ASINH) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__asinh_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__asinh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__asinh_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__asinh_fp32_fp32.c new file mode 100644 index 0000000000..927d4aaab6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__asinh_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = asinhf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ASINH) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__asinh_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__asinh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__asinh_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__asinh_fp64_fp64.c new file mode 100644 index 0000000000..4f3e1fe1d6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__asinh_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = asinh (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ASINH) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__asinh_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__asinh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__atan_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__atan_fc32_fc32.c new file mode 100644 index 0000000000..b06ed9131e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__atan_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_catanf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ATAN) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__atan_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__atan_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__atan_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__atan_fc64_fc64.c new file mode 100644 index 0000000000..469a6b407e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__atan_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_catan (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ATAN) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__atan_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__atan_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__atan_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__atan_fp32_fp32.c new file mode 100644 index 0000000000..048f5277df --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__atan_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = atanf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ATAN) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__atan_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__atan_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__atan_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__atan_fp64_fp64.c new file mode 100644 index 0000000000..65c5f7063c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__atan_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = atan (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ATAN) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__atan_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__atan_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__atanh_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__atanh_fc32_fc32.c new file mode 100644 index 0000000000..50d4dba6cc --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__atanh_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_catanhf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ATANH) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__atanh_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__atanh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__atanh_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__atanh_fc64_fc64.c new file mode 100644 index 0000000000..6dc4788aea --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__atanh_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_catanh (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ATANH) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__atanh_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__atanh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__atanh_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__atanh_fp32_fp32.c new file mode 100644 index 0000000000..2d9c92309e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__atanh_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = atanhf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ATANH) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__atanh_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__atanh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__atanh_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__atanh_fp64_fp64.c new file mode 100644 index 0000000000..1f97af7331 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__atanh_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = atanh (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ATANH) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__atanh_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__atanh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__bnot_int16_int16.c b/GraphBLAS/FactoryKernels/GB_uop__bnot_int16_int16.c new file mode 100644 index 0000000000..9cd07ca5cd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__bnot_int16_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ~(x) +#define GB_Z_TYPE int16_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_BNOT) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__bnot_int16_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__bnot_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__bnot_int32_int32.c b/GraphBLAS/FactoryKernels/GB_uop__bnot_int32_int32.c new file mode 100644 index 0000000000..8e43bb1695 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__bnot_int32_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ~(x) +#define GB_Z_TYPE int32_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_BNOT) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__bnot_int32_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__bnot_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__bnot_int64_int64.c b/GraphBLAS/FactoryKernels/GB_uop__bnot_int64_int64.c new file mode 100644 index 0000000000..1cf99ee29b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__bnot_int64_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ~(x) +#define GB_Z_TYPE int64_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_BNOT) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__bnot_int64_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__bnot_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__bnot_int8_int8.c b/GraphBLAS/FactoryKernels/GB_uop__bnot_int8_int8.c new file mode 100644 index 0000000000..e8ad0cf7e4 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__bnot_int8_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ~(x) +#define GB_Z_TYPE int8_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_BNOT) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__bnot_int8_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__bnot_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__bnot_uint16_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__bnot_uint16_uint16.c new file mode 100644 index 0000000000..624f64c468 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__bnot_uint16_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ~(x) +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_BNOT) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__bnot_uint16_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__bnot_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__bnot_uint32_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__bnot_uint32_uint32.c new file mode 100644 index 0000000000..8fb669ce70 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__bnot_uint32_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ~(x) +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_BNOT) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__bnot_uint32_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__bnot_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__bnot_uint64_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__bnot_uint64_uint64.c new file mode 100644 index 0000000000..e6c08dfbec --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__bnot_uint64_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ~(x) +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_BNOT) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__bnot_uint64_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__bnot_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__bnot_uint8_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__bnot_uint8_uint8.c new file mode 100644 index 0000000000..8c8c201bd1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__bnot_uint8_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ~(x) +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_BNOT) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__bnot_uint8_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__bnot_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__carg_fp32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__carg_fp32_fc32.c new file mode 100644 index 0000000000..302db10dff --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__carg_fp32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cargf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CARG) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__carg_fp32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__carg_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__carg_fp64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__carg_fp64_fc64.c new file mode 100644 index 0000000000..3825ee34dd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__carg_fp64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_carg (x) +#define GB_Z_TYPE double +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CARG) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__carg_fp64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__carg_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cbrt_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__cbrt_fp32_fp32.c new file mode 100644 index 0000000000..ac9228eee6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cbrt_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = cbrtf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CBRT) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cbrt_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cbrt_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cbrt_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__cbrt_fp64_fp64.c new file mode 100644 index 0000000000..a94862b84f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cbrt_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = cbrt (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CBRT) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cbrt_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cbrt_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ceil_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__ceil_fc32_fc32.c new file mode 100644 index 0000000000..22ee325db4 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ceil_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cceilf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CEIL) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ceil_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ceil_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ceil_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__ceil_fc64_fc64.c new file mode 100644 index 0000000000..eeff39ff9f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ceil_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cceil (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CEIL) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ceil_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ceil_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ceil_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__ceil_fp32_fp32.c new file mode 100644 index 0000000000..a3e5dc062b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ceil_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ceilf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CEIL) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ceil_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ceil_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__ceil_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__ceil_fp64_fp64.c new file mode 100644 index 0000000000..b83cfeeadc --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__ceil_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = ceil (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CEIL) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__ceil_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__ceil_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cimag_fp32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__cimag_fp32_fc32.c new file mode 100644 index 0000000000..3560736991 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cimag_fp32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cimagf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CIMAG) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cimag_fp32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cimag_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cimag_fp64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__cimag_fp64_fc64.c new file mode 100644 index 0000000000..069d222f60 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cimag_fp64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cimag (x) +#define GB_Z_TYPE double +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CIMAG) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cimag_fp64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cimag_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__conj_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__conj_fc32_fc32.c new file mode 100644 index 0000000000..b3f03609c0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__conj_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_conjf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CONJ) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__conj_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__conj_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__conj_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__conj_fc64_fc64.c new file mode 100644 index 0000000000..cc7b7515bc --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__conj_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_conj (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CONJ) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__conj_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__conj_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cos_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__cos_fc32_fc32.c new file mode 100644 index 0000000000..1cafa32a10 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cos_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ccosf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_COS) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cos_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cos_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cos_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__cos_fc64_fc64.c new file mode 100644 index 0000000000..7de3e656c6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cos_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ccos (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_COS) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cos_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cos_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cos_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__cos_fp32_fp32.c new file mode 100644 index 0000000000..0b89b3aeae --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cos_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = cosf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_COS) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cos_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cos_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cos_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__cos_fp64_fp64.c new file mode 100644 index 0000000000..b7aa7bddb6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cos_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = cos (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_COS) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cos_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cos_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cosh_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__cosh_fc32_fc32.c new file mode 100644 index 0000000000..cf92ea5f67 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cosh_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ccoshf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_COSH) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cosh_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cosh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cosh_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__cosh_fc64_fc64.c new file mode 100644 index 0000000000..03160131d2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cosh_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ccosh (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_COSH) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cosh_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cosh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cosh_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__cosh_fp32_fp32.c new file mode 100644 index 0000000000..3cca7399a1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cosh_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = coshf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_COSH) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cosh_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cosh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__cosh_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__cosh_fp64_fp64.c new file mode 100644 index 0000000000..650d81e361 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__cosh_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = cosh (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_COSH) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__cosh_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__cosh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__creal_fp32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__creal_fp32_fc32.c new file mode 100644 index 0000000000..1f37ed7c4e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__creal_fp32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_crealf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CREAL) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__creal_fp32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__creal_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__creal_fp64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__creal_fp64_fc64.c new file mode 100644 index 0000000000..f6dc29b4f7 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__creal_fp64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_creal (x) +#define GB_Z_TYPE double +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_CREAL) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__creal_fp64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__creal_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__erf_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__erf_fp32_fp32.c new file mode 100644 index 0000000000..87e03c55e5 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__erf_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = erff (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ERF) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__erf_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__erf_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__erf_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__erf_fp64_fp64.c new file mode 100644 index 0000000000..a13c4e736a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__erf_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = erf (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ERF) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__erf_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__erf_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__erfc_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__erfc_fp32_fp32.c new file mode 100644 index 0000000000..e0a7fcb981 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__erfc_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = erfcf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ERFC) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__erfc_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__erfc_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__erfc_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__erfc_fp64_fp64.c new file mode 100644 index 0000000000..33dc237d48 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__erfc_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = erfc (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ERFC) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__erfc_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__erfc_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__exp2_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__exp2_fc32_fc32.c new file mode 100644 index 0000000000..4cda8e723d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__exp2_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cexp2f (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXP2) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__exp2_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__exp2_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__exp2_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__exp2_fc64_fc64.c new file mode 100644 index 0000000000..c3db51bbb3 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__exp2_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cexp2 (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXP2) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__exp2_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__exp2_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__exp2_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__exp2_fp32_fp32.c new file mode 100644 index 0000000000..8aa88e1f90 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__exp2_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = exp2f (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXP2) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__exp2_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__exp2_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__exp2_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__exp2_fp64_fp64.c new file mode 100644 index 0000000000..aeb7501be8 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__exp2_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = exp2 (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXP2) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__exp2_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__exp2_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__exp_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__exp_fc32_fc32.c new file mode 100644 index 0000000000..ed1c33be23 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__exp_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cexpf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXP) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__exp_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__exp_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__exp_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__exp_fc64_fc64.c new file mode 100644 index 0000000000..0b1b7428db --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__exp_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cexp (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXP) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__exp_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__exp_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__exp_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__exp_fp32_fp32.c new file mode 100644 index 0000000000..3fcbc3b8fd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__exp_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = expf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXP) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__exp_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__exp_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__exp_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__exp_fp64_fp64.c new file mode 100644 index 0000000000..22aac398e3 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__exp_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = exp (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXP) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__exp_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__exp_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__expm1_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__expm1_fc32_fc32.c new file mode 100644 index 0000000000..df3b1fbe68 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__expm1_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cexpm1f (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXPM1) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__expm1_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__expm1_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__expm1_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__expm1_fc64_fc64.c new file mode 100644 index 0000000000..554e21a1a0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__expm1_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cexpm1 (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXPM1) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__expm1_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__expm1_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__expm1_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__expm1_fp32_fp32.c new file mode 100644 index 0000000000..3b9e5484ec --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__expm1_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = expm1f (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXPM1) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__expm1_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__expm1_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__expm1_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__expm1_fp64_fp64.c new file mode 100644 index 0000000000..ed552b2d5e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__expm1_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = expm1 (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_EXPM1) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__expm1_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__expm1_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__floor_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__floor_fc32_fc32.c new file mode 100644 index 0000000000..78851ee78d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__floor_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cfloorf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_FLOOR) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__floor_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__floor_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__floor_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__floor_fc64_fc64.c new file mode 100644 index 0000000000..b62f95c976 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__floor_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cfloor (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_FLOOR) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__floor_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__floor_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__floor_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__floor_fp32_fp32.c new file mode 100644 index 0000000000..4ad0fcd2b5 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__floor_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = floorf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_FLOOR) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__floor_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__floor_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__floor_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__floor_fp64_fp64.c new file mode 100644 index 0000000000..5a95536319 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__floor_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = floor (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_FLOOR) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__floor_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__floor_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__frexpe_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__frexpe_fp32_fp32.c new file mode 100644 index 0000000000..23e54c4d9e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__frexpe_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_frexpef (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_FREXPE) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__frexpe_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__frexpe_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__frexpe_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__frexpe_fp64_fp64.c new file mode 100644 index 0000000000..64f37f80ee --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__frexpe_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_frexpe (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_FREXPE) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__frexpe_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__frexpe_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__frexpx_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__frexpx_fp32_fp32.c new file mode 100644 index 0000000000..9b4cea915f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__frexpx_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_frexpxf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_FREXPX) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__frexpx_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__frexpx_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__frexpx_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__frexpx_fp64_fp64.c new file mode 100644 index 0000000000..cfd3910061 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__frexpx_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_frexpx (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_FREXPX) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__frexpx_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__frexpx_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_bool.c new file mode 100644 index 0000000000..40bef7b64b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_bool.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE bool +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fc32.c new file mode 100644 index 0000000000..d4b52763e1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (GB_crealf (x) != 0) || (GB_cimagf (x) != 0) +#define GB_Z_TYPE bool +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fc64.c new file mode 100644 index 0000000000..d2421c7b39 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (GB_creal (x) != 0) || (GB_cimag (x) != 0) +#define GB_Z_TYPE bool +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fp32.c new file mode 100644 index 0000000000..5b82d47b0b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (x != 0) +#define GB_Z_TYPE bool +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fp64.c new file mode 100644 index 0000000000..994806b9f4 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (x != 0) +#define GB_Z_TYPE bool +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int16.c new file mode 100644 index 0000000000..281d023501 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (bool) x +#define GB_Z_TYPE bool +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int32.c new file mode 100644 index 0000000000..6207088abd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (bool) x +#define GB_Z_TYPE bool +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int64.c new file mode 100644 index 0000000000..03769be13a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (bool) x +#define GB_Z_TYPE bool +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int8.c new file mode 100644 index 0000000000..4864d10f89 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (bool) x +#define GB_Z_TYPE bool +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint16.c new file mode 100644 index 0000000000..84c94834b1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (bool) x +#define GB_Z_TYPE bool +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint32.c new file mode 100644 index 0000000000..3947ea4737 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (bool) x +#define GB_Z_TYPE bool +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint64.c new file mode 100644 index 0000000000..0c0aa9829f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (bool) x +#define GB_Z_TYPE bool +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint8.c new file mode 100644 index 0000000000..1e98ce30aa --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_bool_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (bool) x +#define GB_Z_TYPE bool +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_bool_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_bool_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_bool.c new file mode 100644 index 0000000000..58168272ac --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fc32.c new file mode 100644 index 0000000000..e5cfa40f62 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fc32.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fc64.c new file mode 100644 index 0000000000..d1236e592d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) GB_creal (x), (float) GB_cimag (x)) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fp32.c new file mode 100644 index 0000000000..f855ce5c10 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fp64.c new file mode 100644 index 0000000000..8c81348381 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int16.c new file mode 100644 index 0000000000..539b76ae49 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int32.c new file mode 100644 index 0000000000..05f7d645be --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int64.c new file mode 100644 index 0000000000..5df186437b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int8.c new file mode 100644 index 0000000000..ce25a99c8b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint16.c new file mode 100644 index 0000000000..7c94c8c3e3 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint32.c new file mode 100644 index 0000000000..f85ac87f84 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint64.c new file mode 100644 index 0000000000..5d677f3fba --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint8.c new file mode 100644 index 0000000000..80867e1654 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc32_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc32_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc32_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_bool.c new file mode 100644 index 0000000000..e2fa0a2375 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fc32.c new file mode 100644 index 0000000000..aa3e3c2fa3 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) GB_crealf (x), (double) GB_cimagf (x)) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fc64.c new file mode 100644 index 0000000000..1045df6916 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fc64.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fp32.c new file mode 100644 index 0000000000..5c1673919d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fp64.c new file mode 100644 index 0000000000..94961aaac2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int16.c new file mode 100644 index 0000000000..9b2433b660 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int32.c new file mode 100644 index 0000000000..44618de085 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int64.c new file mode 100644 index 0000000000..f3df0fa62c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int8.c new file mode 100644 index 0000000000..e2d3608928 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint16.c new file mode 100644 index 0000000000..2ab01b74d6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint32.c new file mode 100644 index 0000000000..f58225ff84 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint64.c new file mode 100644 index 0000000000..bc7e9ffe7f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint8.c new file mode 100644 index 0000000000..d7d776f200 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fc64_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fc64_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fc64_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_bool.c new file mode 100644 index 0000000000..1d04d1e136 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) x +#define GB_Z_TYPE float +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fc32.c new file mode 100644 index 0000000000..0790e2bd27 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) GB_crealf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fc64.c new file mode 100644 index 0000000000..fddc1f4362 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) GB_creal (x) +#define GB_Z_TYPE float +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fp32.c new file mode 100644 index 0000000000..29b46a1597 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fp32.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fp64.c new file mode 100644 index 0000000000..9033e35df4 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE float +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int16.c new file mode 100644 index 0000000000..1435028440 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) x +#define GB_Z_TYPE float +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int32.c new file mode 100644 index 0000000000..c521e68676 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) x +#define GB_Z_TYPE float +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int64.c new file mode 100644 index 0000000000..ff308de14d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) x +#define GB_Z_TYPE float +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int8.c new file mode 100644 index 0000000000..246112f961 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) x +#define GB_Z_TYPE float +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint16.c new file mode 100644 index 0000000000..5d75d6e77d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) x +#define GB_Z_TYPE float +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint32.c new file mode 100644 index 0000000000..d86644b824 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) x +#define GB_Z_TYPE float +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint64.c new file mode 100644 index 0000000000..f7dce03f03 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) x +#define GB_Z_TYPE float +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint8.c new file mode 100644 index 0000000000..3f15fa32bc --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp32_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (float) x +#define GB_Z_TYPE float +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp32_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp32_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_bool.c new file mode 100644 index 0000000000..368ef85dc4 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fc32.c new file mode 100644 index 0000000000..d09da36d8b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) GB_crealf (x) +#define GB_Z_TYPE double +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fc64.c new file mode 100644 index 0000000000..6c5241790c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) GB_creal (x) +#define GB_Z_TYPE double +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fp32.c new file mode 100644 index 0000000000..c63a5e83a1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fp64.c new file mode 100644 index 0000000000..6a924ec63d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_fp64.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int16.c new file mode 100644 index 0000000000..f63bcda3e6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int32.c new file mode 100644 index 0000000000..136c1960e5 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int64.c new file mode 100644 index 0000000000..87220a6e89 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int8.c new file mode 100644 index 0000000000..c1660a20a5 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint16.c new file mode 100644 index 0000000000..8e3e9ab7c6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint32.c new file mode 100644 index 0000000000..66ce54992e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint64.c new file mode 100644 index 0000000000..9e5eb791e0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint8.c new file mode 100644 index 0000000000..b958ef5199 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_fp64_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (double) x +#define GB_Z_TYPE double +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_fp64_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_fp64_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_bool.c new file mode 100644 index 0000000000..d730387d9e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int16_t) x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fc32.c new file mode 100644 index 0000000000..08e3bf708b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int16_t ((double) GB_crealf (x)) +#define GB_Z_TYPE int16_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fc64.c new file mode 100644 index 0000000000..78eb60fad5 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int16_t (GB_creal (x)) +#define GB_Z_TYPE int16_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fp32.c new file mode 100644 index 0000000000..61bb82c93f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int16_t ((double) (x)) +#define GB_Z_TYPE int16_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fp64.c new file mode 100644 index 0000000000..39a2908a8c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int16_t ((double) (x)) +#define GB_Z_TYPE int16_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int16.c new file mode 100644 index 0000000000..891fd967e2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int16.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int32.c new file mode 100644 index 0000000000..bfdc9aa3a0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int16_t) x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int64.c new file mode 100644 index 0000000000..4dfd1c2a1d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int16_t) x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int8.c new file mode 100644 index 0000000000..125ca02036 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int16_t) x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint16.c new file mode 100644 index 0000000000..e72ba27fa0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int16_t) x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint32.c new file mode 100644 index 0000000000..47f61bc2f0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int16_t) x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint64.c new file mode 100644 index 0000000000..459890b334 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int16_t) x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint8.c new file mode 100644 index 0000000000..f6151e29fb --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int16_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int16_t) x +#define GB_Z_TYPE int16_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int16_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int16_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_bool.c new file mode 100644 index 0000000000..9385785d89 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int32_t) x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fc32.c new file mode 100644 index 0000000000..cc888c927f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int32_t ((double) GB_crealf (x)) +#define GB_Z_TYPE int32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fc64.c new file mode 100644 index 0000000000..61054fba8f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int32_t (GB_creal (x)) +#define GB_Z_TYPE int32_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fp32.c new file mode 100644 index 0000000000..f6a74f11fc --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int32_t ((double) (x)) +#define GB_Z_TYPE int32_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fp64.c new file mode 100644 index 0000000000..baec4367c6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int32_t ((double) (x)) +#define GB_Z_TYPE int32_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int16.c new file mode 100644 index 0000000000..f1292b83bc --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int32_t) x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int32.c new file mode 100644 index 0000000000..aa4ca8e21b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int32.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int64.c new file mode 100644 index 0000000000..d1fdb47887 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int32_t) x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int8.c new file mode 100644 index 0000000000..c1c201cfbf --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int32_t) x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint16.c new file mode 100644 index 0000000000..065e4352ef --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int32_t) x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint32.c new file mode 100644 index 0000000000..e90d211443 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int32_t) x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint64.c new file mode 100644 index 0000000000..8c0ef0b187 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int32_t) x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint8.c new file mode 100644 index 0000000000..8f5f68fc0f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int32_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int32_t) x +#define GB_Z_TYPE int32_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int32_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int32_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_bool.c new file mode 100644 index 0000000000..117f9d2742 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int64_t) x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fc32.c new file mode 100644 index 0000000000..94381a4f91 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int64_t ((double) GB_crealf (x)) +#define GB_Z_TYPE int64_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fc64.c new file mode 100644 index 0000000000..6d93bb57cc --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int64_t (GB_creal (x)) +#define GB_Z_TYPE int64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fp32.c new file mode 100644 index 0000000000..5240f24a32 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int64_t ((double) (x)) +#define GB_Z_TYPE int64_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fp64.c new file mode 100644 index 0000000000..68dc8eac02 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int64_t ((double) (x)) +#define GB_Z_TYPE int64_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int16.c new file mode 100644 index 0000000000..6892b15a77 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int64_t) x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int32.c new file mode 100644 index 0000000000..b45835bde1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int64_t) x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int64.c new file mode 100644 index 0000000000..7d7ba5ad13 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int64.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int8.c new file mode 100644 index 0000000000..5dd88d2902 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int64_t) x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint16.c new file mode 100644 index 0000000000..dc6beb5f46 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int64_t) x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint32.c new file mode 100644 index 0000000000..6b93a6bb79 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int64_t) x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint64.c new file mode 100644 index 0000000000..7ddf90aa07 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int64_t) x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint8.c new file mode 100644 index 0000000000..5aa05149e2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int64_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int64_t) x +#define GB_Z_TYPE int64_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int64_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int64_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_bool.c new file mode 100644 index 0000000000..ae9971bff8 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int8_t) x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fc32.c new file mode 100644 index 0000000000..63630131d0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int8_t ((double) GB_crealf (x)) +#define GB_Z_TYPE int8_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fc64.c new file mode 100644 index 0000000000..8a678fc850 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int8_t (GB_creal (x)) +#define GB_Z_TYPE int8_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fp32.c new file mode 100644 index 0000000000..7b86c56f6f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int8_t ((double) (x)) +#define GB_Z_TYPE int8_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fp64.c new file mode 100644 index 0000000000..d4355c08ac --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_int8_t ((double) (x)) +#define GB_Z_TYPE int8_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int16.c new file mode 100644 index 0000000000..4b7e75d82a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int8_t) x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int32.c new file mode 100644 index 0000000000..d776ab9bdb --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int8_t) x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int64.c new file mode 100644 index 0000000000..6125d0c54b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int8_t) x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int8.c new file mode 100644 index 0000000000..de1a823b6b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_int8.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint16.c new file mode 100644 index 0000000000..363be5c4eb --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int8_t) x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint32.c new file mode 100644 index 0000000000..a7e6944f96 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int8_t) x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint64.c new file mode 100644 index 0000000000..4185b843cc --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int8_t) x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint8.c new file mode 100644 index 0000000000..4df89ff5fd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_int8_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (int8_t) x +#define GB_Z_TYPE int8_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_int8_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_int8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_bool.c new file mode 100644 index 0000000000..cb5f01ae84 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint16_t) x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fc32.c new file mode 100644 index 0000000000..3c52b6050f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint16_t ((double) GB_crealf (x)) +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fc64.c new file mode 100644 index 0000000000..9304c16d04 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint16_t (GB_creal (x)) +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fp32.c new file mode 100644 index 0000000000..a55b73addd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint16_t ((double) (x)) +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fp64.c new file mode 100644 index 0000000000..3986d19247 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint16_t ((double) (x)) +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int16.c new file mode 100644 index 0000000000..b1a028da6c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint16_t) x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int32.c new file mode 100644 index 0000000000..8c080aaf16 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint16_t) x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int64.c new file mode 100644 index 0000000000..54d2ea6a06 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint16_t) x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int8.c new file mode 100644 index 0000000000..13a90a99d2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint16_t) x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint16.c new file mode 100644 index 0000000000..b93071b06f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint16.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint32.c new file mode 100644 index 0000000000..cca5137555 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint16_t) x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint64.c new file mode 100644 index 0000000000..e6805b5e41 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint16_t) x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint8.c new file mode 100644 index 0000000000..a9c36e77a9 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint16_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint16_t) x +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint16_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint16_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_bool.c new file mode 100644 index 0000000000..0f282bb0e7 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint32_t) x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fc32.c new file mode 100644 index 0000000000..bbbc706885 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint32_t ((double) GB_crealf (x)) +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fc64.c new file mode 100644 index 0000000000..808a060361 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint32_t (GB_creal (x)) +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fp32.c new file mode 100644 index 0000000000..b363e1ec9e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint32_t ((double) (x)) +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fp64.c new file mode 100644 index 0000000000..f4b0c4effd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint32_t ((double) (x)) +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int16.c new file mode 100644 index 0000000000..5a8da524a6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint32_t) x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int32.c new file mode 100644 index 0000000000..65f6a1943a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint32_t) x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int64.c new file mode 100644 index 0000000000..0eae1ba92a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint32_t) x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int8.c new file mode 100644 index 0000000000..320aa10726 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint32_t) x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint16.c new file mode 100644 index 0000000000..4f9df03bc0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint32_t) x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint32.c new file mode 100644 index 0000000000..f39550d4c4 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint32.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint64.c new file mode 100644 index 0000000000..556015b6b1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint32_t) x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint8.c new file mode 100644 index 0000000000..50cb8f0989 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint32_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint32_t) x +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint32_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint32_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_bool.c new file mode 100644 index 0000000000..a6dd8095f4 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint64_t) x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fc32.c new file mode 100644 index 0000000000..b35756460a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint64_t ((double) GB_crealf (x)) +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fc64.c new file mode 100644 index 0000000000..e07f7a605a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint64_t (GB_creal (x)) +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fp32.c new file mode 100644 index 0000000000..b4ac31c629 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint64_t ((double) (x)) +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fp64.c new file mode 100644 index 0000000000..1d8543f200 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint64_t ((double) (x)) +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int16.c new file mode 100644 index 0000000000..42bfdcd4c4 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint64_t) x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int32.c new file mode 100644 index 0000000000..bd3d82acd0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint64_t) x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int64.c new file mode 100644 index 0000000000..d4fa698678 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint64_t) x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int8.c new file mode 100644 index 0000000000..6807c4a8bb --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint64_t) x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint16.c new file mode 100644 index 0000000000..91e7ec6a5c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint64_t) x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint32.c new file mode 100644 index 0000000000..93c0959a31 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint64_t) x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint64.c new file mode 100644 index 0000000000..cb3a276996 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint64.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint8.c new file mode 100644 index 0000000000..c625011638 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint64_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint64_t) x +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint64_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint64_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_bool.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_bool.c new file mode 100644 index 0000000000..3eaa4eb12c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint8_t) x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fc32.c new file mode 100644 index 0000000000..636c7bb1a1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint8_t ((double) GB_crealf (x)) +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fc64.c new file mode 100644 index 0000000000..611846e842 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint8_t (GB_creal (x)) +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fp32.c new file mode 100644 index 0000000000..d34aed8439 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint8_t ((double) (x)) +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fp64.c new file mode 100644 index 0000000000..63a7c651ff --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cast_to_uint8_t ((double) (x)) +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int16.c new file mode 100644 index 0000000000..09e5fdd5c5 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint8_t) x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int32.c new file mode 100644 index 0000000000..ed05e47143 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint8_t) x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int64.c new file mode 100644 index 0000000000..9b5f3f7116 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint8_t) x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int8.c new file mode 100644 index 0000000000..351196f229 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint8_t) x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint16.c new file mode 100644 index 0000000000..3666992028 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint8_t) x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint32.c new file mode 100644 index 0000000000..228e11520e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint8_t) x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint64.c new file mode 100644 index 0000000000..ccbdeccb4b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (uint8_t) x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__identity_uint8_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint8.c new file mode 100644 index 0000000000..c4648839e6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__identity_uint8_uint8.c @@ -0,0 +1,67 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = x +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__identity_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__include.h b/GraphBLAS/FactoryKernels/GB_uop__include.h new file mode 100644 index 0000000000..5d051c3229 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__include.h @@ -0,0 +1,7113 @@ +//------------------------------------------------------------------------------ +// GB_uop__include.h: definitions for GB_uop__*.c +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +// This file has been automatically generated from Generator/GB_uop.h +#include "math/GB_math.h" + + +GrB_Info GB (_uop_tran__identity_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_bool_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_bool_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int8_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int8_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int16_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int16_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int32_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int32_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_int64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_int64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint8_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint8_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint16_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint16_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint32_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint32_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_uint64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_uint64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp32_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp32_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fp64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc32_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc32_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__identity_fc64_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__identity_fc64_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_tran__identity_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_bool_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_int8_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_int16_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_int32_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_int64_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_uint8_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_uint16_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_uint32_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_uint64_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ainv_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ainv_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_bool_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_int8_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_int16_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_int32_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_int64_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_uint8_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_uint16_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_uint32_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_uint64_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_bool_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_int8_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_int16_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_int32_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_int64_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_uint8_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_uint16_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_uint32_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_uint64_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__minv_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__minv_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_bool_bool) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_int8_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_int16_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_int32_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_int64_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_uint8_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_uint16_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_uint32_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_uint64_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lnot_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lnot_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__bnot_int8_int8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__bnot_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__bnot_int16_int16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__bnot_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__bnot_int32_int32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__bnot_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__bnot_int64_int64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__bnot_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__bnot_uint8_uint8) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__bnot_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__bnot_uint16_uint16) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__bnot_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__bnot_uint32_uint32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__bnot_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__bnot_uint64_uint64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__bnot_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sqrt_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sqrt_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sqrt_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sqrt_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sqrt_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sqrt_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sqrt_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sqrt_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__exp_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__exp_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__exp_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__exp_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__exp_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__exp_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__exp_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__exp_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sin_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sin_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sin_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sin_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sin_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sin_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sin_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sin_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cos_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cos_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cos_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cos_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cos_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cos_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cos_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cos_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tan_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tan_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tan_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tan_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tan_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tan_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tan_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tan_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__asin_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__asin_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__asin_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__asin_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__asin_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__asin_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__asin_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__asin_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__acos_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__acos_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__acos_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__acos_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__acos_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__acos_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__acos_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__acos_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__atan_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__atan_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__atan_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__atan_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__atan_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__atan_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__atan_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__atan_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sinh_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sinh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sinh_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sinh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sinh_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sinh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__sinh_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__sinh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cosh_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cosh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cosh_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cosh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cosh_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cosh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cosh_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cosh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tanh_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tanh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tanh_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tanh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tanh_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tanh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tanh_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tanh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__asinh_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__asinh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__asinh_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__asinh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__asinh_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__asinh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__asinh_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__asinh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__acosh_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__acosh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__acosh_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__acosh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__acosh_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__acosh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__acosh_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__acosh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__atanh_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__atanh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__atanh_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__atanh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__atanh_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__atanh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__atanh_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__atanh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__signum_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__signum_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__signum_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__signum_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__signum_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__signum_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__signum_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__signum_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ceil_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ceil_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ceil_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ceil_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ceil_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ceil_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__ceil_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__ceil_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__floor_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__floor_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__floor_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__floor_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__floor_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__floor_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__floor_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__floor_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__round_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__round_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__round_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__round_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__round_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__round_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__round_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__round_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__trunc_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__trunc_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__trunc_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__trunc_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__trunc_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__trunc_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__trunc_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__trunc_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__exp2_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__exp2_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__exp2_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__exp2_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__exp2_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__exp2_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__exp2_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__exp2_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__expm1_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__expm1_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__expm1_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__expm1_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__expm1_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__expm1_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__expm1_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__expm1_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log10_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log10_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log10_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log10_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log10_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log10_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log10_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log10_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log1p_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log1p_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log1p_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log1p_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log1p_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log1p_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log1p_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log1p_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log2_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log2_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log2_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log2_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log2_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log2_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__log2_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__log2_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__frexpx_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__frexpx_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__frexpx_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__frexpx_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__frexpe_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__frexpe_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__frexpe_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__frexpe_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lgamma_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lgamma_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__lgamma_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__lgamma_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tgamma_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tgamma_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__tgamma_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__tgamma_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__erf_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__erf_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__erf_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__erf_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__erfc_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__erfc_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__erfc_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__erfc_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cbrt_fp32_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cbrt_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cbrt_fp64_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cbrt_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__conj_fc32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__conj_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__conj_fc64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__conj_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_fp32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__abs_fp64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__abs_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__creal_fp32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__creal_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__creal_fp64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__creal_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cimag_fp32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cimag_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__cimag_fp64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__cimag_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__carg_fp32_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__carg_fp32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__carg_fp64_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__carg_fp64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isinf_bool_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isinf_bool_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isinf_bool_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isinf_bool_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isinf_bool_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isinf_bool_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isinf_bool_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isinf_bool_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isnan_bool_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isnan_bool_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isnan_bool_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isnan_bool_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isnan_bool_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isnan_bool_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isnan_bool_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isnan_bool_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isfinite_bool_fp32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isfinite_bool_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isfinite_bool_fp64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isfinite_bool_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isfinite_bool_fc32) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isfinite_bool_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + + +GrB_Info GB (_uop_apply__isfinite_bool_fc64) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; + +GrB_Info GB (_uop_tran__isfinite_bool_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fc32.c new file mode 100644 index 0000000000..718fc60bc2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cisfinitef (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISFINITE) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isfinite_bool_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isfinite_bool_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fc64.c new file mode 100644 index 0000000000..1af1318a8e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cisfinite (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISFINITE) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isfinite_bool_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isfinite_bool_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fp32.c new file mode 100644 index 0000000000..0256e3745e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = isfinite (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISFINITE) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isfinite_bool_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isfinite_bool_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fp64.c new file mode 100644 index 0000000000..777d673ba9 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isfinite_bool_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = isfinite (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISFINITE) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isfinite_bool_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isfinite_bool_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fc32.c new file mode 100644 index 0000000000..6b375066a6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cisinff (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISINF) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isinf_bool_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isinf_bool_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fc64.c new file mode 100644 index 0000000000..7dc6df2b96 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cisinf (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISINF) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isinf_bool_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isinf_bool_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fp32.c new file mode 100644 index 0000000000..cf4740cdcf --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = isinf (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISINF) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isinf_bool_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isinf_bool_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fp64.c new file mode 100644 index 0000000000..4f548e67a9 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isinf_bool_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = isinf (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISINF) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isinf_bool_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isinf_bool_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fc32.c new file mode 100644 index 0000000000..07fa6f116f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cisnanf (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISNAN) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isnan_bool_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isnan_bool_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fc64.c new file mode 100644 index 0000000000..4ef693970c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cisnan (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISNAN) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isnan_bool_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isnan_bool_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fp32.c new file mode 100644 index 0000000000..f11b31b984 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = isnan (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISNAN) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isnan_bool_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isnan_bool_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fp64.c new file mode 100644 index 0000000000..db05b54103 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__isnan_bool_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = isnan (x) +#define GB_Z_TYPE bool +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ISNAN) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__isnan_bool_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__isnan_bool_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lgamma_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__lgamma_fp32_fp32.c new file mode 100644 index 0000000000..1fbac97dbf --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lgamma_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = lgammaf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LGAMMA) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lgamma_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lgamma_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lgamma_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__lgamma_fp64_fp64.c new file mode 100644 index 0000000000..321e092624 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lgamma_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = lgamma (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LGAMMA) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lgamma_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lgamma_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_bool_bool.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_bool_bool.c new file mode 100644 index 0000000000..3201755675 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_bool_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !x +#define GB_Z_TYPE bool +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) bool aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_bool_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_fp32_fp32.c new file mode 100644 index 0000000000..b49a27fb8e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_fp64_fp64.c new file mode 100644 index 0000000000..f2cdb99be8 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_int16_int16.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_int16_int16.c new file mode 100644 index 0000000000..63f730a126 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_int16_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE int16_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_int16_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_int32_int32.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_int32_int32.c new file mode 100644 index 0000000000..939027f42b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_int32_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE int32_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_int32_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_int64_int64.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_int64_int64.c new file mode 100644 index 0000000000..7e4311529f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_int64_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE int64_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_int64_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_int8_int8.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_int8_int8.c new file mode 100644 index 0000000000..ef51ac02ee --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_int8_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE int8_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_int8_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_uint16_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_uint16_uint16.c new file mode 100644 index 0000000000..ba66b5c5ed --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_uint16_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_uint16_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_uint32_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_uint32_uint32.c new file mode 100644 index 0000000000..0130eb67c8 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_uint32_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_uint32_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_uint64_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_uint64_uint64.c new file mode 100644 index 0000000000..856b40fc36 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_uint64_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_uint64_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__lnot_uint8_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__lnot_uint8_uint8.c new file mode 100644 index 0000000000..50d65642a1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__lnot_uint8_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = !(x != 0) +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LNOT) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__lnot_uint8_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__lnot_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log10_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__log10_fc32_fc32.c new file mode 100644 index 0000000000..e270a30869 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log10_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_clog10f (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG10) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log10_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log10_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log10_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__log10_fc64_fc64.c new file mode 100644 index 0000000000..6040f2c7b4 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log10_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_clog10 (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG10) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log10_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log10_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log10_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__log10_fp32_fp32.c new file mode 100644 index 0000000000..584694efb1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log10_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = log10f (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG10) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log10_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log10_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log10_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__log10_fp64_fp64.c new file mode 100644 index 0000000000..35774fd72d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log10_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = log10 (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG10) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log10_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log10_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log1p_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__log1p_fc32_fc32.c new file mode 100644 index 0000000000..8d779e8070 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log1p_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_clog1pf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG1P) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log1p_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log1p_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log1p_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__log1p_fc64_fc64.c new file mode 100644 index 0000000000..b401400b2e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log1p_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_clog1p (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG1P) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log1p_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log1p_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log1p_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__log1p_fp32_fp32.c new file mode 100644 index 0000000000..4e78677fa0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log1p_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = log1pf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG1P) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log1p_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log1p_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log1p_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__log1p_fp64_fp64.c new file mode 100644 index 0000000000..3349c58610 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log1p_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = log1p (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG1P) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log1p_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log1p_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log2_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__log2_fc32_fc32.c new file mode 100644 index 0000000000..2cf2a1059d --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log2_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_clog2f (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG2) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log2_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log2_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log2_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__log2_fc64_fc64.c new file mode 100644 index 0000000000..6632acbd16 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log2_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_clog2 (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG2) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log2_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log2_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log2_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__log2_fp32_fp32.c new file mode 100644 index 0000000000..62718854ac --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log2_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = log2f (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG2) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log2_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log2_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log2_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__log2_fp64_fp64.c new file mode 100644 index 0000000000..fc63c1622f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log2_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = log2 (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG2) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log2_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log2_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__log_fc32_fc32.c new file mode 100644 index 0000000000..55bc220427 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_clogf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__log_fc64_fc64.c new file mode 100644 index 0000000000..d6d9d65c3a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_clog (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__log_fp32_fp32.c new file mode 100644 index 0000000000..1b09763dae --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = logf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__log_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__log_fp64_fp64.c new file mode 100644 index 0000000000..6689ce85ec --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__log_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = log (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_LOG) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__log_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__log_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_bool_bool.c b/GraphBLAS/FactoryKernels/GB_uop__minv_bool_bool.c new file mode 100644 index 0000000000..1067fedcf0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_bool_bool.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = true +#define GB_Z_TYPE bool +#define GB_X_TYPE bool + +// A matrix +#define GB_A_TYPE bool +#define GB_DECLAREA(aij) +#define GB_GETA(aij,Ax,pA,A_iso) + +// C matrix +#define GB_C_TYPE bool + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_BOOL)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_bool_bool) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_bool_bool) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__minv_fc32_fc32.c new file mode 100644 index 0000000000..c1f28d3ee2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_FC32_div (GxB_CMPLXF (1,0), x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__minv_fc64_fc64.c new file mode 100644 index 0000000000..7bcd758910 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_FC64_div (GxB_CMPLX (1,0), x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__minv_fp32_fp32.c new file mode 100644 index 0000000000..e734b85ac1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = (1.0F)/x +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__minv_fp64_fp64.c new file mode 100644 index 0000000000..be354720eb --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = 1./x +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_int16_int16.c b/GraphBLAS/FactoryKernels/GB_uop__minv_int16_int16.c new file mode 100644 index 0000000000..63c3ebba3a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_int16_int16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_idiv_int16 (1, x) +#define GB_Z_TYPE int16_t +#define GB_X_TYPE int16_t + +// A matrix +#define GB_A_TYPE int16_t +#define GB_DECLAREA(aij) int16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_INT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_int16_int16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_int16_int16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_int32_int32.c b/GraphBLAS/FactoryKernels/GB_uop__minv_int32_int32.c new file mode 100644 index 0000000000..c0c02c37a2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_int32_int32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_idiv_int32 (1, x) +#define GB_Z_TYPE int32_t +#define GB_X_TYPE int32_t + +// A matrix +#define GB_A_TYPE int32_t +#define GB_DECLAREA(aij) int32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_INT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_int32_int32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_int32_int32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_int64_int64.c b/GraphBLAS/FactoryKernels/GB_uop__minv_int64_int64.c new file mode 100644 index 0000000000..de31b158bf --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_int64_int64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_idiv_int64 (1, x) +#define GB_Z_TYPE int64_t +#define GB_X_TYPE int64_t + +// A matrix +#define GB_A_TYPE int64_t +#define GB_DECLAREA(aij) int64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_INT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_int64_int64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_int64_int64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_int8_int8.c b/GraphBLAS/FactoryKernels/GB_uop__minv_int8_int8.c new file mode 100644 index 0000000000..c910b37da2 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_int8_int8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_idiv_int8 (1, x) +#define GB_Z_TYPE int8_t +#define GB_X_TYPE int8_t + +// A matrix +#define GB_A_TYPE int8_t +#define GB_DECLAREA(aij) int8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE int8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_INT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_int8_int8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_int8_int8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_uint16_uint16.c b/GraphBLAS/FactoryKernels/GB_uop__minv_uint16_uint16.c new file mode 100644 index 0000000000..cc83669ce6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_uint16_uint16.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_idiv_uint16 (1, x) +#define GB_Z_TYPE uint16_t +#define GB_X_TYPE uint16_t + +// A matrix +#define GB_A_TYPE uint16_t +#define GB_DECLAREA(aij) uint16_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint16_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_UINT16)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_uint16_uint16) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_uint16_uint16) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_uint32_uint32.c b/GraphBLAS/FactoryKernels/GB_uop__minv_uint32_uint32.c new file mode 100644 index 0000000000..aa1f2b5f64 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_uint32_uint32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_idiv_uint32 (1, x) +#define GB_Z_TYPE uint32_t +#define GB_X_TYPE uint32_t + +// A matrix +#define GB_A_TYPE uint32_t +#define GB_DECLAREA(aij) uint32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_UINT32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_uint32_uint32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_uint32_uint32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_uint64_uint64.c b/GraphBLAS/FactoryKernels/GB_uop__minv_uint64_uint64.c new file mode 100644 index 0000000000..4503a9ac88 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_uint64_uint64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_idiv_uint64 (1, x) +#define GB_Z_TYPE uint64_t +#define GB_X_TYPE uint64_t + +// A matrix +#define GB_A_TYPE uint64_t +#define GB_DECLAREA(aij) uint64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_UINT64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_uint64_uint64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_uint64_uint64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__minv_uint8_uint8.c b/GraphBLAS/FactoryKernels/GB_uop__minv_uint8_uint8.c new file mode 100644 index 0000000000..73271314dd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__minv_uint8_uint8.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_idiv_uint8 (1, x) +#define GB_Z_TYPE uint8_t +#define GB_X_TYPE uint8_t + +// A matrix +#define GB_A_TYPE uint8_t +#define GB_DECLAREA(aij) uint8_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE uint8_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_MINV) || defined(GxB_NO_UINT8)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__minv_uint8_uint8) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__minv_uint8_uint8) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__round_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__round_fc32_fc32.c new file mode 100644 index 0000000000..fce65d448f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__round_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_croundf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ROUND) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__round_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__round_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__round_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__round_fc64_fc64.c new file mode 100644 index 0000000000..e9793a89ec --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__round_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_cround (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ROUND) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__round_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__round_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__round_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__round_fp32_fp32.c new file mode 100644 index 0000000000..d883f1d8b7 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__round_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = roundf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ROUND) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__round_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__round_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__round_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__round_fp64_fp64.c new file mode 100644 index 0000000000..0fbb2d1ac3 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__round_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = round (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_ROUND) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__round_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__round_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__signum_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__signum_fc32_fc32.c new file mode 100644 index 0000000000..2b7af1990a --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__signum_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_csignumf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SIGNUM) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__signum_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__signum_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__signum_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__signum_fc64_fc64.c new file mode 100644 index 0000000000..b3e1d9065c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__signum_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_csignum (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SIGNUM) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__signum_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__signum_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__signum_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__signum_fp32_fp32.c new file mode 100644 index 0000000000..75491b1c81 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__signum_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_signumf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SIGNUM) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__signum_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__signum_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__signum_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__signum_fp64_fp64.c new file mode 100644 index 0000000000..11bc9ab205 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__signum_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_signum (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SIGNUM) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__signum_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__signum_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sin_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__sin_fc32_fc32.c new file mode 100644 index 0000000000..3caa5208c1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sin_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_csinf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SIN) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sin_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sin_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sin_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__sin_fc64_fc64.c new file mode 100644 index 0000000000..305c80f952 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sin_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_csin (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SIN) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sin_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sin_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sin_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__sin_fp32_fp32.c new file mode 100644 index 0000000000..fcc96a97d8 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sin_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = sinf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SIN) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sin_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sin_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sin_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__sin_fp64_fp64.c new file mode 100644 index 0000000000..23e655cd05 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sin_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = sin (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SIN) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sin_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sin_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sinh_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__sinh_fc32_fc32.c new file mode 100644 index 0000000000..ec79b60ca3 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sinh_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_csinhf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SINH) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sinh_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sinh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sinh_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__sinh_fc64_fc64.c new file mode 100644 index 0000000000..03139bd931 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sinh_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_csinh (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SINH) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sinh_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sinh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sinh_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__sinh_fp32_fp32.c new file mode 100644 index 0000000000..a8b4deef5e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sinh_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = sinhf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SINH) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sinh_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sinh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sinh_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__sinh_fp64_fp64.c new file mode 100644 index 0000000000..635c3992fd --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sinh_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = sinh (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SINH) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sinh_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sinh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sqrt_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__sqrt_fc32_fc32.c new file mode 100644 index 0000000000..b782021986 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sqrt_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_csqrtf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SQRT) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sqrt_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sqrt_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sqrt_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__sqrt_fc64_fc64.c new file mode 100644 index 0000000000..2f7a5b61e0 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sqrt_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_csqrt (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SQRT) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sqrt_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sqrt_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sqrt_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__sqrt_fp32_fp32.c new file mode 100644 index 0000000000..21fefdab29 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sqrt_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = sqrtf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SQRT) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sqrt_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sqrt_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__sqrt_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__sqrt_fp64_fp64.c new file mode 100644 index 0000000000..ba5271792b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__sqrt_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = sqrt (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_SQRT) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__sqrt_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__sqrt_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tan_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__tan_fc32_fc32.c new file mode 100644 index 0000000000..1e5ce41805 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tan_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ctanf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TAN) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tan_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tan_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tan_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__tan_fc64_fc64.c new file mode 100644 index 0000000000..24d40f550c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tan_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ctan (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TAN) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tan_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tan_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tan_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__tan_fp32_fp32.c new file mode 100644 index 0000000000..f0e2a3a5c6 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tan_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = tanf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TAN) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tan_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tan_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tan_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__tan_fp64_fp64.c new file mode 100644 index 0000000000..990e34fb8b --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tan_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = tan (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TAN) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tan_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tan_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tanh_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__tanh_fc32_fc32.c new file mode 100644 index 0000000000..15c62ce07f --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tanh_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ctanhf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TANH) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tanh_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tanh_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tanh_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__tanh_fc64_fc64.c new file mode 100644 index 0000000000..d1cd246d7c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tanh_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ctanh (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TANH) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tanh_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tanh_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tanh_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__tanh_fp32_fp32.c new file mode 100644 index 0000000000..06c8c8f72e --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tanh_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = tanhf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TANH) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tanh_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tanh_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tanh_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__tanh_fp64_fp64.c new file mode 100644 index 0000000000..87334278d7 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tanh_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = tanh (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TANH) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tanh_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tanh_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tgamma_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__tgamma_fp32_fp32.c new file mode 100644 index 0000000000..53ad6c5ab7 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tgamma_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = tgammaf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TGAMMA) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tgamma_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tgamma_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__tgamma_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__tgamma_fp64_fp64.c new file mode 100644 index 0000000000..31dc9e0523 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__tgamma_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = tgamma (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TGAMMA) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__tgamma_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__tgamma_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__trunc_fc32_fc32.c b/GraphBLAS/FactoryKernels/GB_uop__trunc_fc32_fc32.c new file mode 100644 index 0000000000..508c4fe12c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__trunc_fc32_fc32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ctruncf (x) +#define GB_Z_TYPE GxB_FC32_t +#define GB_X_TYPE GxB_FC32_t + +// A matrix +#define GB_A_TYPE GxB_FC32_t +#define GB_DECLAREA(aij) GxB_FC32_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC32_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TRUNC) || defined(GxB_NO_FC32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__trunc_fc32_fc32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__trunc_fc32_fc32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__trunc_fc64_fc64.c b/GraphBLAS/FactoryKernels/GB_uop__trunc_fc64_fc64.c new file mode 100644 index 0000000000..eeb7bd93fb --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__trunc_fc64_fc64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = GB_ctrunc (x) +#define GB_Z_TYPE GxB_FC64_t +#define GB_X_TYPE GxB_FC64_t + +// A matrix +#define GB_A_TYPE GxB_FC64_t +#define GB_DECLAREA(aij) GxB_FC64_t aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE GxB_FC64_t + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TRUNC) || defined(GxB_NO_FC64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__trunc_fc64_fc64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__trunc_fc64_fc64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__trunc_fp32_fp32.c b/GraphBLAS/FactoryKernels/GB_uop__trunc_fp32_fp32.c new file mode 100644 index 0000000000..42a63f0a5c --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__trunc_fp32_fp32.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = truncf (x) +#define GB_Z_TYPE float +#define GB_X_TYPE float + +// A matrix +#define GB_A_TYPE float +#define GB_DECLAREA(aij) float aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE float + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TRUNC) || defined(GxB_NO_FP32)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__trunc_fp32_fp32) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__trunc_fp32_fp32) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/FactoryKernels/GB_uop__trunc_fp64_fp64.c b/GraphBLAS/FactoryKernels/GB_uop__trunc_fp64_fp64.c new file mode 100644 index 0000000000..09b50157f1 --- /dev/null +++ b/GraphBLAS/FactoryKernels/GB_uop__trunc_fp64_fp64.c @@ -0,0 +1,88 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +#define GB_UNARYOP(z,x) z = trunc (x) +#define GB_Z_TYPE double +#define GB_X_TYPE double + +// A matrix +#define GB_A_TYPE double +#define GB_DECLAREA(aij) double aij +#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] + +// C matrix +#define GB_C_TYPE double + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +#if (defined(GxB_NO_TRUNC) || defined(GxB_NO_FP64)) +#define GB_DISABLE 1 +#else +#define GB_DISABLE 0 +#endif + +#include "apply/include/GB_apply_shared_definitions.h" + +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply__trunc_fp64_fp64) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran__trunc_fp64_fp64) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/GraphBLAS/@GrB/log.m b/GraphBLAS/GraphBLAS/@GrB/log.m index ac55fe648d..d6f07bc694 100644 --- a/GraphBLAS/GraphBLAS/@GrB/log.m +++ b/GraphBLAS/GraphBLAS/@GrB/log.m @@ -10,5 +10,5 @@ % SPDX-License-Identifier: Apache-2.0 G = G.opaque ; -C = GrB (gb_check_imag_zero (gb_trig ('log', gbfull (G)))) ; +C = GrB (gb_make_real (gb_trig ('log', gbfull (G)))) ; diff --git a/GraphBLAS/GraphBLAS/@GrB/log10.m b/GraphBLAS/GraphBLAS/@GrB/log10.m index d29717f0f2..ecc21271a2 100644 --- a/GraphBLAS/GraphBLAS/@GrB/log10.m +++ b/GraphBLAS/GraphBLAS/@GrB/log10.m @@ -10,5 +10,5 @@ % SPDX-License-Identifier: Apache-2.0 G = G.opaque ; -C = GrB (gb_check_imag_zero (gb_trig ('log10', gbfull (G)))) ; +C = GrB (gb_make_real (gb_trig ('log10', gbfull (G)))) ; diff --git a/GraphBLAS/GraphBLAS/@GrB/log2.m b/GraphBLAS/GraphBLAS/@GrB/log2.m index 7b0df9ce67..cb65031282 100644 --- a/GraphBLAS/GraphBLAS/@GrB/log2.m +++ b/GraphBLAS/GraphBLAS/@GrB/log2.m @@ -18,7 +18,7 @@ if (nargout == 1) % C = log2 (G) - F = GrB (gb_check_imag_zero (gb_trig ('log2', gbfull (G)))) ; + F = GrB (gb_make_real (gb_trig ('log2', gbfull (G)))) ; else % [F,E] = log2 (G) type = gbtype (G) ; diff --git a/GraphBLAS/GraphBLAS/@GrB/private/.gitignore b/GraphBLAS/GraphBLAS/@GrB/private/.gitignore new file mode 100644 index 0000000000..af86b0481a --- /dev/null +++ b/GraphBLAS/GraphBLAS/@GrB/private/.gitignore @@ -0,0 +1 @@ +GraphBLAS_MATLAB_OpenMP.cmake diff --git a/GraphBLAS/GraphBLAS/@GrB/private/complex/mex_complex.c b/GraphBLAS/GraphBLAS/@GrB/private/complex/mex_complex.c new file mode 100644 index 0000000000..d4ad4d9b50 --- /dev/null +++ b/GraphBLAS/GraphBLAS/@GrB/private/complex/mex_complex.c @@ -0,0 +1,48 @@ +//------------------------------------------------------------------------------ +// mex_complex: test the complex type supported by the compiler +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "mex.h" + +#if defined (GxB_HAVE_COMPLEX_MSVC) + // Microsoft Windows complex types for C + #include + #include + typedef _Fcomplex GxB_FC32_t ; + typedef _Dcomplex GxB_FC64_t ; +#elif defined (GxB_HAVE_COMPLEX_C99) + // C11 complex types + #include + #include + typedef float _Complex GxB_FC32_t ; + typedef double _Complex GxB_FC64_t ; +#else + #error "Complex type undefined" +#endif + +void mexFunction +( + int nargout, + mxArray *pargout [ ], + int nargin, + const mxArray *pargin [ ] +) +{ + #if defined (GxB_HAVE_COMPLEX_MSVC) + _Dcomplex z1 = {2., 3.} ; + _Dcomplex z2 = {1., 2.} ; + _Dcomplex z3 = _Cmulcc (z1, z2) ; + mexPrintf ("MSVC complex type OK: (%g,%g)\n", creal (z3), cimag (z3)) ; + #elif defined (GxB_HAVE_COMPLEX_C99) + double _Complex z1 = 2. + 3.*I ; + double _Complex z2 = 1. + 2.*I ; + double _Complex z3 = z1 * z2 ; + mexPrintf ("C99 complex type OK: (%g,%g)\n", creal (z3), cimag (z3)) ; + #endif +} + diff --git a/GraphBLAS/GraphBLAS/@GrB/private/gb_check_imag_zero.m b/GraphBLAS/GraphBLAS/@GrB/private/gb_check_imag_zero.m deleted file mode 100644 index 3368721283..0000000000 --- a/GraphBLAS/GraphBLAS/@GrB/private/gb_check_imag_zero.m +++ /dev/null @@ -1,13 +0,0 @@ -function C = gb_check_imag_zero (G) -%GB_TO_REAL_IF_IMAG_ZERO convert complex matrix to real if imag(G) is zero - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -if (gb_contains (gbtype (G), 'complex') && ... - gbnvals (gbselect ('nonzero', gbapply ('cimag', G))) == 0) - C = gbapply ('creal', G) ; -else - C = G ; -end - diff --git a/GraphBLAS/GraphBLAS/@GrB/private/gb_make_real.m b/GraphBLAS/GraphBLAS/@GrB/private/gb_make_real.m new file mode 100644 index 0000000000..c290375619 --- /dev/null +++ b/GraphBLAS/GraphBLAS/@GrB/private/gb_make_real.m @@ -0,0 +1,13 @@ +function C = gb_make_real (G) +%GB_MAKE_REAL convert complex matrix to real if imag(G) is zero + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +if (gb_contains (gbtype (G), 'complex') && ... + gbnvals (gbselect ('nonzero', gbapply ('cimag', G))) == 0) + C = gbapply ('creal', G) ; +else + C = G ; +end + diff --git a/GraphBLAS/GraphBLAS/@GrB/private/gb_power.m b/GraphBLAS/GraphBLAS/@GrB/private/gb_power.m index 0304e21664..203a75fb94 100644 --- a/GraphBLAS/GraphBLAS/@GrB/private/gb_power.m +++ b/GraphBLAS/GraphBLAS/@GrB/private/gb_power.m @@ -92,6 +92,6 @@ % convert C to real if imaginary part is zero if (~c_is_real) - C = gb_check_imag_zero (C) ; + C = gb_make_real (C) ; end diff --git a/GraphBLAS/GraphBLAS/@GrB/private/gbmake.m b/GraphBLAS/GraphBLAS/@GrB/private/gbmake.m index 490bed66a1..432c2e5318 100644 --- a/GraphBLAS/GraphBLAS/@GrB/private/gbmake.m +++ b/GraphBLAS/GraphBLAS/@GrB/private/gbmake.m @@ -47,17 +47,55 @@ function gbmake (what) make_all = (isequal (what, 'all')) ; +% use -R2018a for the new interleaved complex API flags = '-O -R2018a -DGBNCPUFEAT' ; -% use -R2018a for the new interleaved complex API +if ispc + % First do the following in GraphBLAS/build, in the Windows console: + % + % cmake .. + % cmake --build . --config Release + % + % The above commands require MS Visual Studio. The graphblas.lib is + % compiled and placed in GraphBLAS/build/Release. Then in the + % Command Window do: + % + % gbmake + % + if (need_rename) + library_path = sprintf ('%s/../../build/Release', pwd) ; + else + library_path = sprintf ('%s/../../../build/Release', pwd) ; + end +else + % First do one the following in GraphBLAS (use JOBS=n for a parallel + % build, which is faster): + % + % make + % make JOBS=8 + % sudo make install + % + % If you can't do "sudo make install" then add the GraphBLAS/build + % folder to your LD_LIBRARY_PATH. Then in this folder in the + % Command Window do: + % + % gbmake + % + if (need_rename) + library_path = sprintf ('%s/../../build', pwd) ; + else + library_path = sprintf ('%s/../../../build', pwd) ; + end +end + if (have_octave) % Octave does not have the new MEX classdef object and as of version 7, the % mex command doesn't handle compiler options the same way. flags = [flags ' -std=c11 -fopenmp -fPIC -Wno-pragmas' ] ; else + % remove -ansi from CFLAGS and replace it with -std=c11 try if (strncmp (computer, 'GLNX', 4)) - % remove -ansi from CFLAGS and replace it with -std=c11 cc = mex.getCompilerConfigurations ('C', 'Selected') ; env = cc.Details.SetEnv ; c1 = strfind (env, 'CFLAGS=') ; @@ -76,10 +114,21 @@ function gbmake (what) end catch end - if (~ismac && isunix) - flags = [ flags ' CFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; - flags = [ flags ' CXXFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; - flags = [ flags ' LDFLAGS="$LDFLAGS -fopenmp -fPIC" '] ; + % revise compiler flags for MATLAB + if (ismac) + cflags = '' ; + ldflags = '-fPIC' ; + rpath = '-rpath ' ; + elseif (isunix) + cflags = '-fopenmp' ; + ldflags = '-fopenmp -fPIC' ; + rpath = '-rpath=' ; + end + if (ismac || isunix) + rpath = sprintf (' -Wl,%s''''%s'''' ', rpath, library_path) ; + flags = [ flags ' CFLAGS=''$CFLAGS ' cflags ' -Wno-pragmas'' '] ; + flags = [ flags ' CXXFLAGS=''$CXXFLAGS ' cflags ' -Wno-pragmas'' '] ; + flags = [ flags ' LDFLAGS=''$LDFLAGS ' ldflags rpath ' '' '] ; end end @@ -91,53 +140,54 @@ function gbmake (what) object_suffix = '.o' ; end -inc = '-Iutil -I../../../Include -I../../../Source -I../../../Source/Shared -I../../../Source/Template -I../../../Source/Factories ' ; - -if ispc - % First do the following in GraphBLAS/build, in the Windows console: - % - % cmake .. - % devenv graphblas.sln /build "release|x64" /project graphblas - % - % The above commands require MS Visual Studio. The graphblas.lib is - % compiled and placed in GraphBLAS/build/Release. Then in the - % Command Window do: - % - % gbmake - if (need_rename) - library = sprintf ('%s/../../build/Release', pwd) ; - else - library = sprintf ('%s/../../../build/Release', pwd) ; - end -else - % First do one the following in GraphBLAS (use JOBS=n for a parallel - % build, which is faster): - % - % make - % make JOBS=8 - % sudo make install - % - % If you can't do "sudo make install" then add the GraphBLAS/build - % folder to your LD_LIBRARY_PATH. Then in this folder in the - % Command Window do: - % - % gbmake - if (need_rename) - library = sprintf ('%s/../../build', pwd) ; - else - library = sprintf ('%s/../../../build', pwd) ; - end -end +inc = '-Iutil -I../../../Include -I../../../Source ' ; + inc = [inc '-I../../../Source/include '] ; + inc = [inc '-I../../.. ' ] ; + inc = [inc '-I../../../Source/ij ' ] ; + inc = [inc '-I../../../Source/math ' ] ; + inc = [inc '-I../../../Source/cast ' ] ; + inc = [inc '-I../../../Source/binaryop ' ] ; + inc = [inc '-I../../../Source/transpose ' ] ; + inc = [inc '-I../../../Source/helper ' ] ; + inc = [inc '-I../../../Source/builtin ' ] ; if (need_rename) + % use the renamed library for MATLAB flags = [flags ' -DGBMATLAB=1 ' ] ; inc = [inc ' -I../../rename ' ] ; libgraphblas = '-lgraphblas_matlab' ; else + % use the regular library for Octave libgraphblas = '-lgraphblas' ; end -ldflags = sprintf ('-L''%s''', library) ; +% determine if the compiler supports C99 or MSVC complex types +try + % try C99 complex types + cflag = ' -DGxB_HAVE_COMPLEX_C99=1' ; + mexcmd = sprintf ('mex -silent %s %s complex/mex_complex.c', ... + flags, cflag) ; + eval (mexcmd) ; +catch me + % try MSVC complex types + try + cflag = ' -DGxB_HAVE_COMPLEX_MSVC=1' ; + mexcmd = sprintf ('mex -silent %s %s complex/mex_complex.c', ... + flags, cflag) ; + eval (mexcmd) ; + catch me + error ('C99 or MSVC complex support required') ; + end +end +flags = [flags cflag] ; +mex_complex + +Lflags = sprintf ('-L''%s''', library_path) ; + +fprintf ('compiler flags: %s\n', flags) ; +fprintf ('compiler incs: %s\n', inc) ; +fprintf ('linking flags: %s\n', Lflags) ; +fprintf ('library: %s\n', libgraphblas) ; hfiles = [ dir('*.h') ; dir('util/*.h') ] ; @@ -180,6 +230,7 @@ function gbmake (what) % fprintf ('%s\n', cfile) ; fprintf ('.') ; mexcmd = sprintf ('mex -c %s -silent %s ''%s''', flags, inc, cfile) ; + % fprintf ('%s\n', mexcmd) ; eval (mexcmd) ; any_c_compiled = true ; end @@ -209,7 +260,7 @@ function gbmake (what) if (make_all || tc > tobj || any_c_compiled) % compile the mexFunction mexcmd = sprintf ('mex %s -silent %s %s ''%s'' %s %s', ... - ldflags, flags, inc, mexfunction, objlist, libgraphblas) ; + Lflags, flags, inc, mexfunction, objlist, libgraphblas) ; % fprintf ('%s\n', mexcmd) ; fprintf (':') ; eval (mexcmd) ; @@ -229,11 +280,9 @@ function gbmake (what) end if ispc lib_path = sprintf ('%s/build/Release', pwd) ; -else - lib_path = sprintf ('%s/build', pwd) ; + fprintf (' addpath (''%s'') ;\n', lib_path) ; + addpath (lib_path) ; end -fprintf (' addpath (''%s'') ;\n', lib_path) ; -addpath (lib_path) ; cd (here1) ; fprintf ('\nFor a quick demo of GraphBLAS, type the following commands:\n\n') ; diff --git a/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbargminmax.c b/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbargminmax.c index cbd10df043..7e3a261caf 100644 --- a/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbargminmax.c +++ b/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbargminmax.c @@ -121,7 +121,24 @@ static void gb_argminmax // For both cases, use the SECONDI1 operator since built-in indexing is // 1-based. The ANY monoid would be faster, but this uses MIN so that the // result for the user is repeatable. - OK (GrB_mxm (*p, NULL, NULL, GxB_MIN_SECONDI1_INT64, G, y, desc)) ; + + #if 1 + // p = G*y or G'*y using the MIN_SECONDI semiring + // this is faster than the method below + OK (GrB_mxm (*p, NULL, NULL, GxB_MIN_SECONDI1_INT64, G, y, desc)) ; + #else + printf ("without 2ndi\n") ; + // H = rowindex1 (G) if dim is 1, or colindex1 (G) if dim is 2. + GrB_Matrix H = NULL ; + OK (GrB_Matrix_new (&H, GrB_INT64, nrows, ncols)) ; + OK (GrB_apply (H, NULL, NULL, + (dim == 1) ? GrB_ROWINDEX_INT64 : GrB_COLINDEX_INT64, G, + (int64_t) 1, NULL)) ; + // p = H*y or H'*y using the MIN_FIRST semiring + OK (GrB_mxm (*p, NULL, NULL, GrB_MIN_FIRST_SEMIRING_INT64, H, y, + desc)) ; + OK (GrB_Matrix_free (&H)) ; + #endif //-------------------------------------------------------------------------- // free workspace diff --git a/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbselect.c b/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbselect.c index a933ab563f..4e06f2ce6a 100644 --- a/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbselect.c +++ b/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbselect.c @@ -126,14 +126,14 @@ void gb_isnanfc64 (bool *z, const GxB_FC64_t *aij, void gb_isnotnanfc32 (bool *z, const GxB_FC32_t *aij, int64_t i, int64_t j, const void *thunk) { - (*z) = !isnan (GB_crealf (*aij)) && !isnan (GB_cimag (*aij)) ; + (*z) = !isnan (GB_crealf (*aij)) && !isnan (GB_cimagf (*aij)) ; } #define GB_ISNOTNANFC32_DEFN \ "void gb_isnotnanfc32 (bool *z, const GxB_FC32_t *aij, \n" \ " int64_t i, int64_t j, const void *thunk) \n" \ "{ \n" \ -" (*z) = !isnan (GB_crealf (*aij)) && !isnan (GB_cimag (*aij)) ; \n" \ +" (*z) = !isnan (GB_crealf (*aij)) && !isnan (GB_cimagf (*aij)) ; \n" \ "}" void gb_isnotnanfc64 (bool *z, const GxB_FC64_t *aij, diff --git a/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbver.c b/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbver.c index 6bcfcb5d4d..87d719a02a 100644 --- a/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbver.c +++ b/GraphBLAS/GraphBLAS/@GrB/private/mexfunctions/gbver.c @@ -49,12 +49,13 @@ void mexFunction printf ("%s\n", about) ; printf ("Version: %d.%d.%d (%s)\n", version [0], version [1], version [2], date) ; - char *compiler ; - int cver [3] ; - bool have_openmp ; - OK (GxB_get (GxB_COMPILER_NAME, &compiler)) ; - OK (GxB_get (GxB_COMPILER_VERSION, cver)) ; - OK (GxB_get (GxB_LIBRARY_OPENMP, &have_openmp)) ; + char compiler [2048] ; + int32_t cver [3] ; + int32_t have_openmp ; +// OK (GrB_Global_get_SIZE (GrB_GLOBAL, &len, GxB_COMPILER_NAME)) ; + OK (GrB_Global_get_String (GrB_GLOBAL, compiler, GxB_COMPILER_NAME)) ; + OK (GrB_Global_get_VOID (GrB_GLOBAL, (void *) cver, GxB_COMPILER_VERSION)) ; + OK (GrB_Global_get_INT32 (GrB_GLOBAL, &have_openmp, GxB_LIBRARY_OPENMP)) ; printf ("GraphBLAS compiled with %s (v%d.%d.%d), %s OpenMP\n", compiler, cver [0], cver [1], cver [2], have_openmp ? "with" : "without") ; diff --git a/GraphBLAS/GraphBLAS/@GrB/sqrt.m b/GraphBLAS/GraphBLAS/@GrB/sqrt.m index 8046bf02af..c0490161f3 100644 --- a/GraphBLAS/GraphBLAS/@GrB/sqrt.m +++ b/GraphBLAS/GraphBLAS/@GrB/sqrt.m @@ -8,5 +8,5 @@ % SPDX-License-Identifier: Apache-2.0 G = G.opaque ; -C = GrB (gb_check_imag_zero (gb_trig ('sqrt', G))) ; +C = GrB (gb_make_real (gb_trig ('sqrt', G))) ; diff --git a/GraphBLAS/GraphBLAS/CMakeLists.txt b/GraphBLAS/GraphBLAS/CMakeLists.txt index 51156a96ea..10335eee09 100644 --- a/GraphBLAS/GraphBLAS/CMakeLists.txt +++ b/GraphBLAS/GraphBLAS/CMakeLists.txt @@ -143,17 +143,36 @@ message ( STATUS "CMAKE have OpenMP: ${OpenMP_C_FOUND}" ) set ( CMAKE_INCLUDE_CURRENT_DIR ON ) -if ( GRAPHBLAS_COMPACT ) - # do not compile the FactoryKernels - include_directories ( ../Source/Template ../Source ../Include rename - ../Source/Shared Config ../Source/JitKernels ../JITpackage - ../lz4 ../zstd ../zstd/zstd_subset ../xxHash ../Source/Factories ) -else ( ) - include_directories ( ../Source/Template ../Source ../Include rename - ../Source/Shared Config ../Source/JitKernels ../JITpackage - ../Source/FactoryKernels - ../lz4 ../zstd ../zstd/zstd_subset ../xxHash ../Source/Factories ) -endif ( ) +include_directories ( ${PROJECT_SOURCE_DIR}/../ ../Source ../Include Config + ../xxHash ../lz4 ../zstd ../zstd/zstd_subset ../JITpackage + rename + # include all Source/* folders that have include/ or template/ subfolders: + ../Source/apply + ../Source/assign + ../Source/builder + ../Source/builtin + ../Source/callback + ../Source/concat + ../Source/convert + ../Source/ewise + ../Source/hyper + ../Source/jit_kernels + ../Source/math + ../Source/memory + ../Source/monoid + ../Source/mxm + ../Source/ok + ../Source/omp + ../Source/print + ../Source/reduce + ../Source/select + ../Source/split + ../Source/slice + ../Source/transpose + ../Source/type + ../Source/wait + ../Source/werk + ) #------------------------------------------------------------------------------- # compiler options: @@ -165,28 +184,30 @@ include ( GraphBLAS_compiler_options ) # dynamic graphblas_matlab library properties #------------------------------------------------------------------------------- +file ( GLOB GRAPHBLAS_SOURCES "../PreJIT/*.c" "../Config/*.c" + "../Source/*/*.c" ) + +if ( NOT GRAPHBLAS_COMPACT ) + # compile the FactoryKernels + file ( GLOB GRAPHBLAS_FACTORYKERNELS "../FactoryKernels/*.c" ) + list ( APPEND GRAPHBLAS_SOURCES ${GRAPHBLAS_FACTORYKERNELS} ) +endif ( ) + if ( GRAPHBLAS_USE_JIT ) - if ( GRAPHBLAS_COMPACT ) - # with the JIT; but do not compile the FactoryKernels - file ( GLOB GRAPHBLAS_SOURCES "../Source/*.c" - "../PreJIT/*.c" "../Config/GB_prejit.c" "../JITpackage/*.c" ) - else ( ) - # with the JIT and the FactoryKernels - file ( GLOB GRAPHBLAS_SOURCES "../Source/*.c" - "../PreJIT/*.c" "../Config/GB_prejit.c" "../JITpackage/*.c" - "../Source/FactoryKernels/*.c" ) - endif ( ) + # generate compressed JIT sources to create GB_JITpackage.c + message ( STATUS "Creating the GraphBLAS/JITpackage:" ) + add_subdirectory ( ../JITpackage build ) + # GLOB does not include files that do not yet exist, so prepend + # the GB_JITpackage.c file here: + list ( PREPEND GRAPHBLAS_SOURCES + $ ) else ( ) - if ( GRAPHBLAS_COMPACT ) - # no JIT, do not compile the FactoryKernels - file ( GLOB GRAPHBLAS_SOURCES "../Source/*.c" - "../PreJIT/*.c" "../Config/GB_prejit.c" ) - else ( ) - # no JIT, but do compile the FactoryKernels - file ( GLOB GRAPHBLAS_SOURCES "../Source/*.c" - "../PreJIT/*.c" "../Config/GB_prejit.c" - "../Source/FactoryKernels/*.c" ) - endif ( ) + # create an empty GB_JITpackage.c file: + message ( STATUS "Creating an empty GraphBLAS/JITpackage (JIT disabled):" ) + configure_file ( "../Config/GB_JITpackage_NJIT.c.in" + "../JITpackage/GB_JITpackage.c" + NEWLINE_STYLE LF ) + list ( PREPEND GRAPHBLAS_SOURCES "../JITpackage/GB_JITpackage.c") endif ( ) add_library ( graphblas_matlab SHARED ${GRAPHBLAS_SOURCES} ) @@ -197,6 +218,11 @@ set_target_properties ( graphblas_matlab PROPERTIES C_STANDARD_REQUIRED ON PUBLIC_HEADER "../Include/GraphBLAS.h" ) +if ( GRAPHBLAS_USE_JIT ) + # Make sure compressed sources are built before library + add_dependencies ( graphblas_matlab GB_JITpackage ) +endif ( ) + #------------------------------------------------------------------------------- # select the math library (not required for Microsoft Visual Studio) #------------------------------------------------------------------------------- @@ -211,10 +237,10 @@ if ( NOT WIN32 ) target_link_libraries ( graphblas_matlab PUBLIC dl ) endif ( ) -include ( SuiteSparseAtomic ) -if ( LIBATOMIC_REQUIRED ) - target_link_libraries ( graphblas_matlab PUBLIC atomic ) -endif ( ) +# include ( SuiteSparseAtomic ) +# if ( LIBATOMIC_REQUIRED ) +# target_link_libraries ( graphblas_matlab PUBLIC atomic ) +# endif ( ) #------------------------------------------------------------------------------- # add library dependencies @@ -223,7 +249,8 @@ endif ( ) if ( GRAPHBLAS_HAS_OPENMP ) message ( STATUS "CMAKE OpenMP libraries: " ${OpenMP_C_LIBRARIES} ) message ( STATUS "CMAKE OpenMP include: " ${OpenMP_C_INCLUDE_DIRS} ) - target_link_libraries ( graphblas_matlab PUBLIC ${OpenMP_C_LIBRARIES} ) +# target_link_libraries ( graphblas_matlab PUBLIC ${OpenMP_C_LIBRARIES} ) + include ( GraphBLAS_MATLAB_OpenMP.cmake ) set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS} " ) include_directories ( ${OpenMP_C_INCLUDE_DIRS} ) else ( ) @@ -253,6 +280,21 @@ endif ( ) # get the current library list get_target_property ( GB_CMAKE_LIBRARIES graphblas_matlab LINK_LIBRARIES ) +if ( NOT GB_CMAKE_LIBRARIES ) + set ( GB_CMAKE_LIBRARIES "" ) +endif ( ) + +#------------------------------------------------------------------------------- +# determine complex type +#------------------------------------------------------------------------------- + +include ( GraphBLAS_complex ) +if ( GxB_HAVE_COMPLEX_C99 ) + set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGxB_HAVE_COMPLEX_C99=1 " ) +endif ( ) +if ( GxB_HAVE_COMPLEX_MSVC ) + set ( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DGxB_HAVE_COMPLEX_MSVC=1 " ) +endif ( ) #------------------------------------------------------------------------------- # print final C flags diff --git a/GraphBLAS/GraphBLAS/Contents.m b/GraphBLAS/GraphBLAS/Contents.m index e15d66278e..f07afa664e 100644 --- a/GraphBLAS/GraphBLAS/Contents.m +++ b/GraphBLAS/GraphBLAS/Contents.m @@ -22,6 +22,10 @@ % overloaded by the @GrB class, so that they can be used for GraphBLAS % matrices. See 'help GrB' for more details. % +% To install the GraphBLAS library and its MATLAB interface: +% +% graphblas_install - compile SuiteSparse:GraphBLAS for MATLAB or Octave +% % Tim Davis, Texas A&M University, % http://faculty.cse.tamu.edu/davis/GraphBLAS % diff --git a/GraphBLAS/GraphBLAS/GraphBLAS_MATLAB_OpenMP.cmake b/GraphBLAS/GraphBLAS/GraphBLAS_MATLAB_OpenMP.cmake new file mode 100644 index 0000000000..733bddc784 --- /dev/null +++ b/GraphBLAS/GraphBLAS/GraphBLAS_MATLAB_OpenMP.cmake @@ -0,0 +1 @@ +target_link_libraries ( graphblas_matlab PRIVATE ${OpenMP_C_LIBRARIES} ) diff --git a/GraphBLAS/GraphBLAS/README.md b/GraphBLAS/GraphBLAS/README.md index 83fc5ba2f4..e44ecb8406 100644 --- a/GraphBLAS/GraphBLAS/README.md +++ b/GraphBLAS/GraphBLAS/README.md @@ -1,6 +1,6 @@ # GraphBLAS/GraphBLAS: MATLAB/Octave interface for SuiteSparse:GraphBLAS -SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. SPDX-License-Identifier: Apache-2.0 The @GrB class provides an easy-to-use interface to SuiteSparse:GraphBLAS. @@ -8,12 +8,7 @@ The @GrB class provides an easy-to-use interface to SuiteSparse:GraphBLAS. To install it for use in MATLAB/Octave, first compile the GraphBLAS library, -lgraphblas (for Octave) or -lgraphblas_matlab (for MATLAB). See the instructions in the top-level GraphBLAS folder for details. Be sure to use -OpenMP for best performance. The default installation process places the -GraphBLAS library in /usr/local/lib. If you do not have root access and cannot -install GraphBLAS into /usr/local/lib, then follow the instructions below to -modify your library path, but instead of /usr/local/lib, use -/home/me/SuiteSparse/GraphBLAS/build, where "/home/me/SuiteSparse/GraphBLAS" is -where you placed your copy of GraphBLAS. +OpenMP for best performance. MATLAB (not Octave) the gbmake script will link against the library -lgraphblas_matlab, not -lgraphblas, because that version of MATLAB includes @@ -21,29 +16,6 @@ its own version of SuiteSparse:GraphBLAS (v3.3.3, an earlier one). To avoid a name conflict, you must compile the -lgraphblas_matlab library in /home/me/SuiteSparse/GraphBLAS/GraphBLAS/build. -MATLAB/Octave needs to know where to find the compiled GraphBLAS library. On -Linux/Unix, if you are using the bash or korn shells, make sure that add the -following to your login profile (typically .bash_profile for bash, or .profile -for korn): - - LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib - export LD_LIBRARY_PATH - -On Linux/Unix with the csh, tcsh or related shells, use: - - setenv PATH $PATH\:/usr/local/lib - -On the Mac, use the following: - - DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:/usr/local/lib - export DYLD_LIBRARY_PATH - -If you don't have system priveledges to change /usr/local/lib, then add the -build folder to your LD_LIBRARY_PATH instead, either. For Octave, use -/home/me/SuiteSparse/GraphBLAS/build for libgraphblas.so, -For MATLAB, use: /home/me/SuiteSparse/GraphBLAS/GraphBLAS/build for -libgraphblas_matlab.so. - On Windows 10, on the Search bar type env and hit enter; (or you can right-click My Computer or This PC and select Properties, and then select Advanced System Settings). Select "Edit the system environment variables", diff --git a/GraphBLAS/GraphBLAS/graphblas_install.m b/GraphBLAS/GraphBLAS/graphblas_install.m new file mode 100644 index 0000000000..d345f3c523 --- /dev/null +++ b/GraphBLAS/GraphBLAS/graphblas_install.m @@ -0,0 +1,132 @@ +function graphblas_install (cmake_options) +%GRAPHBLAS_INSTALL compile SuiteSparse:GraphBLAS for MATLAB or Octave +% +% Usage: +% graphblas_install +% +% MATLAB 9.4 (R2018a) or Octave 7 later is required. This function must +% be run while your current working directory is the same as the directory +% that contains graphblas_install.m. +% +% See also mex. +% +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +% make sure we +here = pwd ; +my_fullpath = mfilename ('fullpath') ; +slash = strfind (my_fullpath, filesep) ; +if (~isempty (slash)) + slash = slash (end) ; + my_folder = my_fullpath (1:slash-1) ; + if (~isequal (my_folder, here)) + fprintf ('current working directory is: %s\n', here) ; + fprintf ('graphblas_install is in : %s\n', my_folder) ; + fprintf ('do this before running graphblas_install:\n') ; + fprintf (' cd %s\n', my_folder) ; + error ('graphblas_install must be run when in its containing folder') ; + end +end + +have_octave = (exist ('OCTAVE_VERSION', 'builtin') == 5) ; + +if (have_octave) + % Octave can use the normal libgraphblas.so + need_rename = false ; + if verLessThan ('octave', '7') + error ('GrB:mex', 'Octave 7 or later is required') ; + end +else + if verLessThan ('matlab', '9.4') + error ('GrB:mex', 'MATLAB 9.4 (R2018a) or later is required') ; + end + % MATLAB 9.10 (R2021a) and following include a built-in GraphBLAS library + % that conflicts with this version, so rename this version. + % Earlier versions of MATLAB can use this renamed version too, so + % for simplicity, use libgraphblas_matlab.so for all MATLAB versions. + need_rename = true ; +end + +if (nargin < 1) + cmake_options = '' ; +end + +% by default, use OpenMP as found by cmake +openmp_library = '${OpenMP_C_LIBRARIES}' ; +if (ismac) + % use the OpenMP library inside MATLAB + % look for libomp.dylib for Apple Silicon Macs + o = [matlabroot '/bin/maca64/libomp.dylib'] ; + if (isfile (o)) + openmp_library = o ; + else + % look for libiomp5.dylib for Intel Macs + o = [matlabroot '/sys/os/maci64/libiomp5.dylib'] ; + if (isfile (o)) + openmp_library = o ; + end + end +end + +% write the configuration file for cmake +f = fopen ('GraphBLAS_MATLAB_OpenMP.cmake', 'w') ; +fprintf (f, 'target_link_libraries ( graphblas_matlab PRIVATE %s )\n', ... + openmp_library) ; +fclose (f) ; + +% build the GraphBLAS library +threads = maxNumCompThreads * 2 ; + +try + + % cd to the build directory + if (need_rename) + % building libgraphblas_matlab for MATLAB + cd build + else + % building libgraphblas for Octave + cd ../build + end + + % cmd1: configure with cmake + build_folder = pwd ; + cmd1 = sprintf ('cmake %s ..', cmake_options) ; + + % build the GraphBLAS library + cmd2 = sprintf ('cmake --build . --config Release -j%d', threads) ; + + % execute cmd1: configure with cmake + clear mex + fprintf ('\n================================\n%s\n', cmd1) ; + [status, result] = system (cmd1, '-echo') ; + if (status ~= 0) + cd (here) ; + error ('GrB:mex', 'GraphBLAS library not compiled') ; + end + + % execute cmd2: build the GraphBLAS library + fprintf ('\n================================\n%s\n', cmd2) ; + [status, result] = system (cmd2, '-echo') ; + cd (here) ; + if (status ~= 0) + error ('GrB:mex', 'GraphBLAS library not compiled') ; + end + +catch me + me + fprintf ('Building GraphBLAS with cmake failed. Try this outside of MATLAB:\n') ; + fprintf ('\n cd %s\n %s\n %s\n', build_folder, cmd1, cmd2) ; + cd (here) ; + + fprintf ('\nThen do this inside MATLAB:\n\n') ; + fprintf (' cd %s/@GrB/private\n gbmake\n', here) ; + return ; +end + +% build the GraphBLAS MATLAB interface +cd '@GrB/private' +gbmake + +cd (here) ; + diff --git a/GraphBLAS/GraphBLAS/rename/GB_rename.h b/GraphBLAS/GraphBLAS/rename/GB_rename.h index d3362f4ee5..2767635b09 100644 --- a/GraphBLAS/GraphBLAS/rename/GB_rename.h +++ b/GraphBLAS/GraphBLAS/rename/GB_rename.h @@ -7,6 +7,7 @@ #define GB_add_phase2 GM_add_phase2 #define GB_add_sparsity GM_add_sparsity #define GB_all_aliased GM_all_aliased +#define GB_all_entries_are_iso GM_all_entries_are_iso #define GB_any_aliased GM_any_aliased #define GB_apply_bind1st_jit GM_apply_bind1st_jit #define GB_apply_bind2nd_jit GM_apply_bind2nd_jit @@ -206,7 +207,6 @@ #define GB_cexpm1 GM_cexpm1 #define GB_cfloorf GM_cfloorf #define GB_cfloor GM_cfloor -#define GB_check_if_iso GM_check_if_iso #define GB_cisfinitef GM_cisfinitef #define GB_cisfinite GM_cisfinite #define GB_cisinff GM_cisinff @@ -520,6 +520,26 @@ #define GB_is_diagonal GM_is_diagonal #define GB_is_shallow GM_is_shallow #define GB_ix_realloc GM_ix_realloc +#define GB_jit__add__1002e0e0eee00__wildtype GM_jit__add__1002e0e0eee00__wildtype +#define GB_jit__add__1002e0e0eee00__wildtype_query GM_jit__add__1002e0e0eee00__wildtype_query +#define GB_jit__apply_unop__0000db0dbe__fx64_cmplx_imag GM_jit__apply_unop__0000db0dbe__fx64_cmplx_imag +#define GB_jit__apply_unop__0000db0dbe__fx64_cmplx_imag_query GM_jit__apply_unop__0000db0dbe__fx64_cmplx_imag_query +#define GB_jit__apply_unop__0000db0dbe__fx64_cmplx_real GM_jit__apply_unop__0000db0dbe__fx64_cmplx_real +#define GB_jit__apply_unop__0000db0dbe__fx64_cmplx_real_query GM_jit__apply_unop__0000db0dbe__fx64_cmplx_real_query +#define GB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss GM_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss +#define GB_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss_query GM_jit__AxB_dot4__03fe900eee0eeec5__addgauss_multgauss_query +#define GB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss GM_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss +#define GB_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss_query GM_jit__AxB_saxbit__03fe100eee0eee8a__addgauss_multgauss_query +#define GB_jit__AxB_saxbit__03fe100eee0eee8a__mycx_plus_mycx_times GM_jit__AxB_saxbit__03fe100eee0eee8a__mycx_plus_mycx_times +#define GB_jit__AxB_saxbit__03fe100eee0eee8a__mycx_plus_mycx_times_query GM_jit__AxB_saxbit__03fe100eee0eee8a__mycx_plus_mycx_times_query +#define GB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult GM_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult +#define GB_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult_query GM_jit__AxB_saxpy3__03fe100eee0eee45__wildadd_wildmult_query +#define GB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss GM_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss +#define GB_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss_query GM_jit__AxB_saxpy4__03fe300eee0eeec7__addgauss_multgauss_query +#define GB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss GM_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss +#define GB_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss_query GM_jit__AxB_saxpy5__03fe500eee0eeecd__addgauss_multgauss_query +#define GB_jit__build__02eeeee__wildtype GM_jit__build__02eeeee__wildtype +#define GB_jit__build__02eeeee__wildtype_query GM_jit__build__02eeeee__wildtype_query #define GB_jitifyer_alloc_space GM_jitifyer_alloc_space #define GB_jitifyer_cmake_compile GM_jitifyer_cmake_compile #define GB_jitifyer_direct_compile GM_jitifyer_direct_compile @@ -542,12 +562,14 @@ #define GB_jitifyer_hash GM_jitifyer_hash #define GB_jitifyer_init GM_jitifyer_init #define GB_jitifyer_insert GM_jitifyer_insert +#define GB_jitifyer_load2_worker GM_jitifyer_load2_worker #define GB_jitifyer_load GM_jitifyer_load #define GB_jitifyer_load_worker GM_jitifyer_load_worker #define GB_jitifyer_lookup GM_jitifyer_lookup #define GB_jitifyer_nvcc_compile GM_jitifyer_nvcc_compile #define GB_jitifyer_path_256 GM_jitifyer_path_256 #define GB_jitifyer_query GM_jitifyer_query +#define GB_jitifyer_sanitize GM_jitifyer_sanitize #define GB_jitifyer_set_cache_path GM_jitifyer_set_cache_path #define GB_jitifyer_set_cache_path_worker GM_jitifyer_set_cache_path_worker #define GB_jitifyer_set_C_cmake_libs GM_jitifyer_set_C_cmake_libs @@ -569,7 +591,6 @@ #define GB_jitifyer_set_error_log_worker GM_jitifyer_set_error_log_worker #define GB_jitifyer_set_use_cmake GM_jitifyer_set_use_cmake #define GB_jitifyer_table_free GM_jitifyer_table_free -#define GB_jitifyer_worker GM_jitifyer_worker #define GB_JITpackage_0 GM_JITpackage_0 #define GB_JITpackage_100 GM_JITpackage_100 #define GB_JITpackage_101 GM_JITpackage_101 @@ -721,7 +742,13 @@ #define GB_JITpackage_233 GM_JITpackage_233 #define GB_JITpackage_234 GM_JITpackage_234 #define GB_JITpackage_235 GM_JITpackage_235 +#define GB_JITpackage_236 GM_JITpackage_236 +#define GB_JITpackage_237 GM_JITpackage_237 +#define GB_JITpackage_238 GM_JITpackage_238 +#define GB_JITpackage_239 GM_JITpackage_239 #define GB_JITpackage_23 GM_JITpackage_23 +#define GB_JITpackage_240 GM_JITpackage_240 +#define GB_JITpackage_241 GM_JITpackage_241 #define GB_JITpackage_24 GM_JITpackage_24 #define GB_JITpackage_25 GM_JITpackage_25 #define GB_JITpackage_26 GM_JITpackage_26 @@ -808,6 +835,26 @@ #define GB_JITpackage_9 GM_JITpackage_9 #define GB_JITpackage_index GM_JITpackage_index #define GB_JITpackage_nfiles GM_JITpackage_nfiles +#define GB_jit__subassign_22__1000eee0eec8__addgauss GM_jit__subassign_22__1000eee0eec8__addgauss +#define GB_jit__subassign_22__1000eee0eec8__addgauss_query GM_jit__subassign_22__1000eee0eec8__addgauss_query +#define GB_jit__subassign_22__1000eee0eec8__multgauss GM_jit__subassign_22__1000eee0eec8__multgauss +#define GB_jit__subassign_22__1000eee0eec8__multgauss_query GM_jit__subassign_22__1000eee0eec8__multgauss_query +#define GB_jit__trans_bind1st__0000eee0efe41__multgauss GM_jit__trans_bind1st__0000eee0efe41__multgauss +#define GB_jit__trans_bind1st__0000eee0efe41__multgauss_query GM_jit__trans_bind1st__0000eee0efe41__multgauss_query +#define GB_jit__trans_bind2nd__0000eee0eef44__multgauss GM_jit__trans_bind2nd__0000eee0eef44__multgauss +#define GB_jit__trans_bind2nd__0000eee0eef44__multgauss_query GM_jit__trans_bind2nd__0000eee0eef44__multgauss_query +#define GB_jit__trans_unop__08006e06ef__realgauss GM_jit__trans_unop__08006e06ef__realgauss +#define GB_jit__trans_unop__08006e06ef__realgauss_query GM_jit__trans_unop__08006e06ef__realgauss_query +#define GB_jit__trans_unop__0802ee0ee5__gauss GM_jit__trans_unop__0802ee0ee5__gauss +#define GB_jit__trans_unop__0802ee0ee5__gauss_query GM_jit__trans_unop__0802ee0ee5__gauss_query +#define GB_jit__trans_unop__0802ee0ee5__wildtype GM_jit__trans_unop__0802ee0ee5__wildtype +#define GB_jit__trans_unop__0802ee0ee5__wildtype_query GM_jit__trans_unop__0802ee0ee5__wildtype_query +#define GB_jit__trans_unop__0802ee0eef__gauss GM_jit__trans_unop__0802ee0eef__gauss +#define GB_jit__trans_unop__0802ee0eef__gauss_query GM_jit__trans_unop__0802ee0eef__gauss_query +#define GB_jit__user_op__0__addgauss GM_jit__user_op__0__addgauss +#define GB_jit__user_op__0__addgauss_query GM_jit__user_op__0__addgauss_query +#define GB_jit__user_type__0__gauss GM_jit__user_type__0__gauss +#define GB_jit__user_type__0__gauss_query GM_jit__user_type__0__gauss_query #define GB_kroner GM_kroner #define GB_kron GM_kron #define GB_LZ4_attach_dictionary GM_LZ4_attach_dictionary diff --git a/GraphBLAS/GraphBLAS/rename/Makefile b/GraphBLAS/GraphBLAS/rename/Makefile index 0b0f25624f..9d9be39525 100644 --- a/GraphBLAS/GraphBLAS/rename/Makefile +++ b/GraphBLAS/GraphBLAS/rename/Makefile @@ -8,23 +8,21 @@ #------------------------------------------------------------------------------- # Linux is required, but the result (GB_rename.h) is then used for all -# platforms. This Makefile onstructs the GB_rename.h file from the compiled +# platforms. This Makefile constructs the GB_rename.h file from the compiled # ../../build/libgraphblas.so, which is then used to compile # libgraphblas_matlab.so with renamed symbols, to avoid conflicting with the # built-in libmwgraphblas.so (v3.3.3) in MATLAB R2021a and later. # GxB_*Iterator* methods are #define'd as both macros and functions in -# GraphBLAS.h, so they are not renamed. Functions with "__" in their name are -# renamed using macros internally, and so they do not need to be renamed with -# GB_rename.h. +# GraphBLAS.h, so they are not renamed. Functions with "GB__" in their name +# are renamed using macros internally, and so they do not need to be renamed +# with GB_rename.h. go: - nm -gD ../../build/libgraphblas.so | grep -v "__" > lib + nm -gD ../../build/libgraphblas.so | grep -v "GB__" > lib grep " GrB_" lib > temp.h - grep " GxB_" lib \ - | grep -v Iterator >> temp.h - grep " GB_" lib \ - | grep -v Iterator >> temp.h + grep " GxB_" lib | grep -v Iterator >> temp.h + grep " GB_" lib | grep -v Iterator >> temp.h awk -f rename.awk < temp.h > temp2.h echo "#define GB_complex GM_complex" >> temp2.h echo "#define GB_complexf GM_complexf" >> temp2.h @@ -33,12 +31,10 @@ go: # on the Mac, use "make mac" mac: - nm -gA ../../build/libgraphblas.dylib | grep -v "__" > lib + nm -gA ../../build/libgraphblas.dylib | grep -v "GB__" > lib grep " _GrB_" lib > temp.h - grep " _GxB_" lib \ - | grep -v Iterator >> temp.h - grep " _GB_" lib \ - | grep -v Iterator >> temp.h + grep " _GxB_" lib | grep -v Iterator >> temp.h + grep " _GB_" lib | grep -v Iterator >> temp.h awk -f rename.awk < temp.h | sort > GB_rename.h rm temp.h lib diff --git a/GraphBLAS/GraphBLAS/test/gbtest51.m b/GraphBLAS/GraphBLAS/test/gbtest51.m index f0f7353f6a..f47c42988c 100644 --- a/GraphBLAS/GraphBLAS/test/gbtest51.m +++ b/GraphBLAS/GraphBLAS/test/gbtest51.m @@ -43,7 +43,7 @@ for k = 1:nfiles % fprintf ('--------------------------load file:\n') ; filename = files {k} ; - T = load (fullfile (filepath, filename)) ; + T = load ('-ascii', fullfile (filepath, filename)) ; nz = size (T, 1) ; X = ones (nz,1) ; G = GrB.build (int64 (T (:,1)), int64 (T (:,2)), X, desc) ; diff --git a/GraphBLAS/GraphBLAS/test/tcov/gbcovmake.m b/GraphBLAS/GraphBLAS/test/tcov/gbcovmake.m index d78642cc2b..b746ff598d 100644 --- a/GraphBLAS/GraphBLAS/test/tcov/gbcovmake.m +++ b/GraphBLAS/GraphBLAS/test/tcov/gbcovmake.m @@ -86,14 +86,13 @@ libraries = '-L../../../../../../build -L. -L/usr/local/lib -lgraphblas' ; end - if (~ismac && isunix) flags = [ flags ' CFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; flags = [ flags ' CXXFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; flags = [ flags ' LDFLAGS="$LDFLAGS -fopenmp -fPIC" '] ; end -inc = [ inc '-I. -I../util -I../../../../../../Include -I../../../../../../Source -I../../../../../../Source/Template -I../../../../../../cpu_features/include ' ] ; +inc = [ inc '-I. -I../util -I../../../../../../Include -I../../../../../../Source -I../../../../../../Source/include -I../../../../../../cpu_features/include ' ] ; cd tmp/@GrB/private try diff --git a/GraphBLAS/Include/GraphBLAS.h b/GraphBLAS/Include/GraphBLAS.h index 680ebdfd92..6803295e54 100644 --- a/GraphBLAS/Include/GraphBLAS.h +++ b/GraphBLAS/Include/GraphBLAS.h @@ -1,4 +1,4 @@ -// SuiteSparse:GraphBLAS 9.1.0 +// SuiteSparse:GraphBLAS 9.3.0 //------------------------------------------------------------------------------ // GraphBLAS.h: definitions for the GraphBLAS package //------------------------------------------------------------------------------ @@ -41,9 +41,18 @@ #define GRAPHBLAS_H //============================================================================== -// include files required by GraphBLAS +//=== GraphBLAS macros, typedefs, enums, and global variables ================= //============================================================================== +// This GraphBLAS.h header file is split into two parts. The first part +// defines macros, typedefs, enums, global variables, and pulls in standard C +// #include files. The second part defines all of the user-callable GrB_*, +// with access controlled by the internal definition, GB_CUDA_FOLDER. + +//------------------------------------------------------------------------------ +// include files required by GraphBLAS +//------------------------------------------------------------------------------ + #include #include #include @@ -56,13 +65,24 @@ #include #include -//============================================================================== -// renaming for use in MATLAB R2021a or later -//============================================================================== +//------------------------------------------------------------------------------ +// helper macros +//------------------------------------------------------------------------------ + +// These are required for internal use in GraphBLAS.h, but should not be used +// by the end user application. #define GB_CAT2(x,y) x ## y #define GB_EVAL2(x,y) GB_CAT2 (x,y) +// GB_STR: convert the content of x into a string "x" +#define GB_XSTR(x) GB_STR(x) +#define GB_STR(x) #x + +//------------------------------------------------------------------------------ +// renaming for use in MATLAB R2021a or later +//------------------------------------------------------------------------------ + #if defined ( GBMATLAB ) && !defined ( GB_JIT_RUNTIME ) // All symbols must be renamed for the @GrB interface when using MATLAB // R2021a and following, since those versions include an earlier version of @@ -143,11 +163,32 @@ #ifndef GXB_COMPLEX_H #define GXB_COMPLEX_H -// Compiler has support for C99 floating point number arithmetic -#define GxB_HAVE_COMPLEX_C99 - -// Compiler has support for MSVC-style complex numbers + #if defined ( GxB_HAVE_COMPLEX_C99 ) || defined ( GxB_HAVE_COMPLEX_MSVC ) + // Bypass the cmake configuration and let the user application decide + // itself which complex type to use. This may differ from the compiled + // GraphBLAS library so this approach may not work in all cases. + // To use C99 complex types, use: + // + // -DGxB_HAVE_COMPLEX_C99 + // + // To use MS complex types for C: + // + // -DGxB_HAVE_COMPLEX_MSVC + // + // One of the above options is required. To use the JIT, these two + // options must also be added at run time via + // GrB_set (GrB_Global, GxB_JIT_C_COMPILER_FLAGS, "...") + // where "..." would be all the flags required to compile a JIT kernel, + // including "-O3 -fopenmp" and so on, as well as one of the above two + // options. + #else + // Let the cmake configuration script determine the complex type + // that is available: + // Compiler has support for C99 floating point number arithmetic + #define GxB_HAVE_COMPLEX_C99 + // Compiler has support for MSVC-style complex numbers /* #undef GxB_HAVE_COMPLEX_MSVC */ + #endif #if defined (GxB_HAVE_COMPLEX_MSVC) @@ -234,9 +275,9 @@ // The version of this implementation, and the GraphBLAS API version: #define GxB_IMPLEMENTATION_NAME "SuiteSparse:GraphBLAS" -#define GxB_IMPLEMENTATION_DATE "Mar 22, 2024" +#define GxB_IMPLEMENTATION_DATE "Aug 2, 2024" #define GxB_IMPLEMENTATION_MAJOR 9 -#define GxB_IMPLEMENTATION_MINOR 1 +#define GxB_IMPLEMENTATION_MINOR 3 #define GxB_IMPLEMENTATION_SUB 0 #define GxB_SPEC_DATE "Dec 22, 2023" #define GxB_SPEC_MAJOR 2 @@ -311,10 +352,6 @@ typedef uint64_t GrB_Index ; // called, which returns a string that provides more information on the last // return value from GraphBLAS. -// The v1.3 C API did not specify the enum values, but they appear in v2.0. -// Changing them will require SuiteSparse:GraphBLAS to bump to v6.x. -// Error codes GrB_NOT_IMPLEMENTED and GrB_EMPTY_OBJECT are new to v2.0. - typedef enum { @@ -350,6 +387,10 @@ typedef enum } GrB_Info ; +// for null and invalid objects +#define GrB_NULL NULL +#define GrB_INVALID_HANDLE NULL + //============================================================================== // GrB_init / GrB_finalize //============================================================================== @@ -375,45 +416,6 @@ typedef enum } GrB_Mode ; -#if defined ( __cplusplus ) -extern "C" -{ -#endif - -GrB_Info GrB_init // start up GraphBLAS -( - GrB_Mode mode // blocking or non-blocking mode, no GPU -) ; - -GrB_Info GxB_init // start up GraphBLAS and also define malloc, etc -( - GrB_Mode mode, // blocking or non-blocking mode, - // with or without GPU - // pointers to memory management functions - void * (* user_malloc_function ) (size_t), - void * (* user_calloc_function ) (size_t, size_t), - void * (* user_realloc_function ) (void *, size_t), - void (* user_free_function ) (void *) -) ; - -GrB_Info GrB_finalize (void) ; // finish GraphBLAS - -//============================================================================== -// GrB_getVersion: GraphBLAS C API version -//============================================================================== - -// GrB_getVersion provides a runtime access of the C API Version. Can also be -// done with two calls to GrB_Global_get_INT32 with the v2.1 C API: -// -// GrB_get (GrB_GLOBAL, &version, GrB_API_VER_MAJOR) ; -// GrB_get (GrB_GLOBAL, &subversion, GrB_API_VER_MINOR) ; - -GrB_Info GrB_getVersion // runtime access to C API version number -( - unsigned int *version, // returns GRB_VERSION - unsigned int *subversion // returns GRB_SUBVERSION -) ; - //============================================================================== // GrB_Descriptor: the GraphBLAS descriptor //============================================================================== @@ -542,26 +544,6 @@ GrB_Desc_Value ; typedef struct GB_Descriptor_opaque *GrB_Descriptor ; -GrB_Info GrB_Descriptor_new // create a new descriptor -( - GrB_Descriptor *descriptor // handle of descriptor to create -) ; - -// historical methods; use GrB_set and GrB_get instead: -GrB_Info GrB_Descriptor_set (GrB_Descriptor, GrB_Desc_Field, GrB_Desc_Value) ; -GrB_Info GxB_Descriptor_get (GrB_Desc_Value *, GrB_Descriptor, GrB_Desc_Field) ; -GrB_Info GxB_Desc_set (GrB_Descriptor, GrB_Desc_Field, ...) ; -GrB_Info GxB_Desc_set_INT32 (GrB_Descriptor, GrB_Desc_Field, int32_t) ; -GrB_Info GxB_Desc_set_FP64 (GrB_Descriptor, GrB_Desc_Field, double) ; -GrB_Info GxB_Desc_get (GrB_Descriptor, GrB_Desc_Field, ...) ; -GrB_Info GxB_Desc_get_INT32 (GrB_Descriptor, GrB_Desc_Field, int32_t *) ; -GrB_Info GxB_Desc_get_FP64 (GrB_Descriptor, GrB_Desc_Field, double *) ; - -GrB_Info GrB_Descriptor_free // free a descriptor -( - GrB_Descriptor *descriptor // handle of descriptor to free -) ; - // Predefined descriptors and their values: GB_GLOBAL GrB_Descriptor @@ -642,119 +624,8 @@ GB_GLOBAL GrB_Type GxB_FC32 , // in C: float complex GxB_FC64 ; // in C: double complex -//------------------------------------------------------------------------------ -// helper macros for polymorphic functions -//------------------------------------------------------------------------------ - -#define GB_CAT(w,x,y,z) w ## x ## y ## z -#define GB_CONCAT(w,x,y,z) GB_CAT (w, x, y, z) - -// methods for C scalars of various types -#define GB_CASES(prefix,func) \ - bool : GB_CONCAT ( prefix, _, func, _BOOL ), \ - int8_t : GB_CONCAT ( prefix, _, func, _INT8 ), \ - int16_t : GB_CONCAT ( prefix, _, func, _INT16 ), \ - int32_t : GB_CONCAT ( prefix, _, func, _INT32 ), \ - int64_t : GB_CONCAT ( prefix, _, func, _INT64 ), \ - uint8_t : GB_CONCAT ( prefix, _, func, _UINT8 ), \ - uint16_t : GB_CONCAT ( prefix, _, func, _UINT16 ), \ - uint32_t : GB_CONCAT ( prefix, _, func, _UINT32 ), \ - uint64_t : GB_CONCAT ( prefix, _, func, _UINT64 ), \ - float : GB_CONCAT ( prefix, _, func, _FP32 ), \ - double : GB_CONCAT ( prefix, _, func, _FP64 ), \ - GxB_FC32_t : GB_CONCAT ( GxB , _, func, _FC32 ), \ - GxB_FC64_t : GB_CONCAT ( GxB , _, func, _FC64 ), \ - const void * : GB_CONCAT ( prefix, _, func, _UDT ), \ - void * : GB_CONCAT ( prefix, _, func, _UDT ) - -// methods for C arrays of various types -#define GB_PCASES(prefix,func) \ - const bool * : GB_CONCAT ( prefix, _, func, _BOOL ), \ - bool * : GB_CONCAT ( prefix, _, func, _BOOL ), \ - const int8_t * : GB_CONCAT ( prefix, _, func, _INT8 ), \ - int8_t * : GB_CONCAT ( prefix, _, func, _INT8 ), \ - const int16_t * : GB_CONCAT ( prefix, _, func, _INT16 ), \ - int16_t * : GB_CONCAT ( prefix, _, func, _INT16 ), \ - const int32_t * : GB_CONCAT ( prefix, _, func, _INT32 ), \ - int32_t * : GB_CONCAT ( prefix, _, func, _INT32 ), \ - const int64_t * : GB_CONCAT ( prefix, _, func, _INT64 ), \ - int64_t * : GB_CONCAT ( prefix, _, func, _INT64 ), \ - const uint8_t * : GB_CONCAT ( prefix, _, func, _UINT8 ), \ - uint8_t * : GB_CONCAT ( prefix, _, func, _UINT8 ), \ - const uint16_t * : GB_CONCAT ( prefix, _, func, _UINT16 ), \ - uint16_t * : GB_CONCAT ( prefix, _, func, _UINT16 ), \ - const uint32_t * : GB_CONCAT ( prefix, _, func, _UINT32 ), \ - uint32_t * : GB_CONCAT ( prefix, _, func, _UINT32 ), \ - const uint64_t * : GB_CONCAT ( prefix, _, func, _UINT64 ), \ - uint64_t * : GB_CONCAT ( prefix, _, func, _UINT64 ), \ - const float * : GB_CONCAT ( prefix, _, func, _FP32 ), \ - float * : GB_CONCAT ( prefix, _, func, _FP32 ), \ - const double * : GB_CONCAT ( prefix, _, func, _FP64 ), \ - double * : GB_CONCAT ( prefix, _, func, _FP64 ), \ - const GxB_FC32_t * : GB_CONCAT ( GxB , _, func, _FC32 ), \ - GxB_FC32_t * : GB_CONCAT ( GxB , _, func, _FC32 ), \ - const GxB_FC64_t * : GB_CONCAT ( GxB , _, func, _FC64 ), \ - GxB_FC64_t * : GB_CONCAT ( GxB , _, func, _FC64 ), \ - const void * : GB_CONCAT ( prefix, _, func, _UDT ), \ - void * : GB_CONCAT ( prefix, _, func, _UDT ) - -//------------------------------------------------------------------------------ -// GrB_Type_new: create a new type -//------------------------------------------------------------------------------ - -GrB_Info GrB_Type_new // create a new GraphBLAS type -( - GrB_Type *type, // handle of user type to create - size_t sizeof_ctype // size = sizeof (ctype) of the C type -) ; - -// GxB_Type_new creates a type with a name and definition that are known to -// GraphBLAS, as strings. The type_name is any valid string (max length of 128 -// characters, including the required null-terminating character) that may -// appear as the name of a C type created by a C "typedef" statement. It must -// not contain any white-space characters. Example, creating a type of size -// 16*4+4 = 68 bytes, with a 4-by-4 dense float array and a 32-bit integer: -// -// typedef struct { float x [4][4] ; int color ; } myquaternion ; -// GrB_Type MyQtype ; -// GxB_Type_new (&MyQtype, sizeof (myquaternion), "myquaternion", -// "typedef struct { float x [4][4] ; int color ; } myquaternion ;") ; -// -// The type_name and type_defn are both null-terminated strings. The two -// strings are required for best performance in the JIT (both on the CPU and -// GPU). User defined types created by GrB_Type_new will not work with a JIT. -// -// At most GxB_MAX_NAME_LEN characters are accessed in type_name; characters -// beyond that limit are silently ignored. - #define GxB_MAX_NAME_LEN 128 -GrB_Info GxB_Type_new // create a new named GraphBLAS type -( - GrB_Type *type, // handle of user type to create - size_t sizeof_ctype, // size = sizeof (ctype) of the C type - const char *type_name, // name of the type (max 128 characters) - const char *type_defn // typedef for the type (no max length) -) ; - -// historical; use GrB_get instead: -GrB_Info GxB_Type_name (char *type_name, const GrB_Type type) ; -GrB_Info GxB_Type_size (size_t *size, const GrB_Type type) ; - -GrB_Info GxB_Type_from_name // return the built-in GrB_Type from a name -( - GrB_Type *type, // built-in type, or NULL if user-defined. - // The name can be the underlying C type - // ("int8_t") or the GraphBLAS name - // ("GrB_INT8"). - const char *type_name // array of size at least GxB_MAX_NAME_LEN -) ; - -GrB_Info GrB_Type_free // free a user-defined type -( - GrB_Type *type // handle of user-defined type to free -) ; - //============================================================================== // GrB_UnaryOp: unary operators //============================================================================== @@ -945,43 +816,8 @@ GB_GLOBAL GrB_UnaryOp GxB_ISFINITE_FC32, // isfinite (real (x)) && isfinite (cimag (x)) GxB_ISFINITE_FC64 ; // isfinite (real (x)) && isfinite (cimag (x)) -//------------------------------------------------------------------------------ -// methods for unary operators -//------------------------------------------------------------------------------ - typedef void (*GxB_unary_function) (void *, const void *) ; -// GrB_UnaryOp_new creates a user-defined unary op (with no name or defn) -GrB_Info GrB_UnaryOp_new // create a new user-defined unary operator -( - GrB_UnaryOp *unaryop, // handle for the new unary operator - GxB_unary_function function, // pointer to the unary function - GrB_Type ztype, // type of output z - GrB_Type xtype // type of input x -) ; - -// GxB_UnaryOp_new creates a named and defined user-defined unary op. -GrB_Info GxB_UnaryOp_new // create a new user-defined unary operator -( - GrB_UnaryOp *unaryop, // handle for the new unary operator - GxB_unary_function function, // pointer to the unary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x - const char *unop_name, // name of the user function - const char *unop_defn // definition of the user function -) ; - -// historical; use GrB_get instead: -GrB_Info GxB_UnaryOp_ztype (GrB_Type *ztype, GrB_UnaryOp unaryop) ; -GrB_Info GxB_UnaryOp_ztype_name (char *type_name, const GrB_UnaryOp unaryop) ; -GrB_Info GxB_UnaryOp_xtype (GrB_Type *xtype, GrB_UnaryOp unaryop) ; -GrB_Info GxB_UnaryOp_xtype_name (char *type_name, const GrB_UnaryOp unaryop) ; - -GrB_Info GrB_UnaryOp_free // free a user-created unary operator -( - GrB_UnaryOp *unaryop // handle of unary operator to free -) ; - //============================================================================== // GrB_BinaryOp: binary operators //============================================================================== @@ -1381,58 +1217,18 @@ GB_GLOBAL GrB_BinaryOp GxB_IGNORE_DUP ; // BXOR, and BXNOR. This assumes that the computations for each bit are // entirely independent (so BSHIFT would not fit in the table above). -//------------------------------------------------------------------------------ -// methods for binary operators -//------------------------------------------------------------------------------ - typedef void (*GxB_binary_function) (void *, const void *, const void *) ; -// GrB_BinaryOp_new creates a user-defined binary op (no name or defn) -GrB_Info GrB_BinaryOp_new -( - GrB_BinaryOp *binaryop, // handle for the new binary operator - GxB_binary_function function, // pointer to the binary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x - GrB_Type ytype // type of input y -) ; - -// GxB_BinaryOp_new creates a named and defined user-defined binary op. -GrB_Info GxB_BinaryOp_new -( - GrB_BinaryOp *op, // handle for the new binary operator - GxB_binary_function function, // pointer to the binary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x - GrB_Type ytype, // type of input y - const char *binop_name, // name of the user function - const char *binop_defn // definition of the user function -) ; - -// historical; use GrB_get instead: -GrB_Info GxB_BinaryOp_ztype (GrB_Type *ztype, GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_ztype_name (char *type_name, const GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_xtype (GrB_Type *xtype, GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_xtype_name (char *type_name, const GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_ytype (GrB_Type *ytype, GrB_BinaryOp op) ; -GrB_Info GxB_BinaryOp_ytype_name (char *type_name, const GrB_BinaryOp op) ; - -GrB_Info GrB_BinaryOp_free // free a user-created binary operator -( - GrB_BinaryOp *binaryop // handle of binary operator to free -) ; - -//============================================================================== -// GxB_SelectOp: select operators (DEPRECATED: do not use) -//============================================================================== +//============================================================================== +// GxB_SelectOp: select operators (DEPRECATED: do not use) +//============================================================================== // historical; use GrB_select and GrB_IndexUnaryOp instead: typedef struct GB_SelectOp_opaque *GxB_SelectOp ; GB_GLOBAL GxB_SelectOp GxB_TRIL, GxB_TRIU, GxB_DIAG, GxB_OFFDIAG, GxB_NONZERO, -GxB_EQ_ZERO, GxB_GT_ZERO, GxB_GE_ZERO, GxB_LT_ZERO, GxB_LE_ZERO, GxB_NE_THUNK, -GxB_EQ_THUNK, GxB_GT_THUNK, GxB_GE_THUNK, GxB_LT_THUNK, GxB_LE_THUNK ; -GrB_Info GxB_SelectOp_xtype (GrB_Type *xtype, GxB_SelectOp selectop) ; -GrB_Info GxB_SelectOp_ttype (GrB_Type *ttype, GxB_SelectOp selectop) ; + GxB_EQ_ZERO, GxB_GT_ZERO, GxB_GE_ZERO, GxB_LT_ZERO, GxB_LE_ZERO, + GxB_NE_THUNK, GxB_EQ_THUNK, GxB_GT_THUNK, GxB_GE_THUNK, GxB_LT_THUNK, + GxB_LE_THUNK ; //============================================================================== // GrB_IndexUnaryOp: a unary operator that depends on the row/col indices @@ -1453,41 +1249,9 @@ typedef void (*GxB_index_unary_function) const void *y // input scalar y ) ; -// GrB_IndexUnaryOp_new creates a user-defined unary op (no name or defn) - -GrB_Info GrB_IndexUnaryOp_new // create a new user-defined IndexUnary op -( - GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator - GxB_index_unary_function function, // pointer to IndexUnary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x (the A(i,j) entry) - GrB_Type ytype // type of input y (the scalar) -) ; - -GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp -( - GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator - GxB_index_unary_function function, // pointer to index_unary function - GrB_Type ztype, // type of output z - GrB_Type xtype, // type of input x (the A(i,j) entry) - GrB_Type ytype, // type of input y (the scalar) - const char *idxop_name, // name of the user function - const char *idxop_defn // definition of the user function -) ; - -// historical; use GrB_get instead: -GrB_Info GxB_IndexUnaryOp_ztype_name (char *, const GrB_IndexUnaryOp op) ; -GrB_Info GxB_IndexUnaryOp_xtype_name (char *, const GrB_IndexUnaryOp op) ; -GrB_Info GxB_IndexUnaryOp_ytype_name (char *, const GrB_IndexUnaryOp op) ; - -GrB_Info GrB_IndexUnaryOp_free // free a user-created IndexUnaryOp -( - GrB_IndexUnaryOp *op // handle of IndexUnary to free -) ; - -//------------------------------------------------------------------------------ -// built-in IndexUnaryOps -//------------------------------------------------------------------------------ +//============================================================================== +// GrB_IndexUnaryOp: a unary operator that depends on the row/col indices +//============================================================================== // To facilitate computations with negative integers, the indices i and j are // of type int64_t. The scalar y has the type corresponding to the suffix @@ -1579,5646 +1343,6166 @@ GB_GLOBAL GrB_IndexUnaryOp typedef struct GB_Monoid_opaque *GrB_Monoid ; -GrB_Info GrB_Monoid_new_BOOL // create a new boolean monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - bool identity // identity value of the monoid -) ; +//============================================================================== +// GrB_Semiring +//============================================================================== -GrB_Info GrB_Monoid_new_INT8 // create a new int8 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int8_t identity // identity value of the monoid -) ; +typedef struct GB_Semiring_opaque *GrB_Semiring ; -GrB_Info GrB_Monoid_new_UINT8 // create a new uint8 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint8_t identity // identity value of the monoid -) ; +//============================================================================== +// GrB_Scalar: a GraphBLAS scalar +//============================================================================== -GrB_Info GrB_Monoid_new_INT16 // create a new int16 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int16_t identity // identity value of the monoid -) ; +typedef struct GB_Scalar_opaque *GxB_Scalar ; // historical: use GrB_Scalar +typedef struct GB_Scalar_opaque *GrB_Scalar ; // use this instead -GrB_Info GrB_Monoid_new_UINT16 // create a new uint16 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint16_t identity // identity value of the monoid -) ; +//============================================================================== +// GrB_Vector: a GraphBLAS vector +//============================================================================== -GrB_Info GrB_Monoid_new_INT32 // create a new int32 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int32_t identity // identity value of the monoid -) ; +typedef struct GB_Vector_opaque *GrB_Vector ; -GrB_Info GrB_Monoid_new_UINT32 // create a new uint32 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint32_t identity // identity value of the monoid -) ; +//============================================================================== +// GrB_Matrix: a GraphBLAS matrix +//============================================================================== -GrB_Info GrB_Monoid_new_INT64 // create a new int64 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int64_t identity // identity value of the monoid -) ; +typedef struct GB_Matrix_opaque *GrB_Matrix ; -GrB_Info GrB_Monoid_new_UINT64 // create a new uint64 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint64_t identity // identity value of the monoid -) ; +//============================================================================== +// SuiteSparse:GraphBLAS options +//============================================================================== -GrB_Info GrB_Monoid_new_FP32 // create a new float monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - float identity // identity value of the monoid -) ; +// The following options modify how SuiteSparse:GraphBLAS stores and operates +// on its matrices. The GrB_get/set methods allow the user to suggest how the +// internal representation of a matrix, or all matrices, should be held. These +// options have no effect on the result (except for minor roundoff differences +// for floating-point types). They only affect the time and memory usage of the +// computations. -GrB_Info GrB_Monoid_new_FP64 // create a new double monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - double identity // identity value of the monoid -) ; +typedef enum // for global options or matrix options +{ -GrB_Info GxB_Monoid_new_FC32 // create a new float complex monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - GxB_FC32_t identity // identity value of the monoid -) ; + //------------------------------------------------------------ + // GrB_get / GrB_set for GrB_Matrix and GrB_GLOBAL: + //------------------------------------------------------------ -GrB_Info GxB_Monoid_new_FC64 // create a new double complex monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - GxB_FC64_t identity // identity value of the monoid -) ; + GxB_HYPER_SWITCH = 7000, // switch to hypersparse (double value) + GxB_HYPER_HASH = 7048, // hyper_hash control (global int64 value, + // or bool per matrix) + GxB_BITMAP_SWITCH = 7001, // switch to bitmap (double value) + GxB_FORMAT = 7002, // historical; use GrB_STORAGE_ORIENTATION_HINT -GrB_Info GrB_Monoid_new_UDT // create a monoid with a user-defined type -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - void *identity // identity value of the monoid -) ; + //------------------------------------------------------------ + // GrB_get for GrB_GLOBAL: + //------------------------------------------------------------ -// Type-generic method for creating a new monoid: + GxB_MODE = 7003, // historical; use GrB_BLOCKING_MODE + GxB_LIBRARY_NAME = 7004, // historical; use GrB_NAME + GxB_LIBRARY_VERSION = 7005, // historical; use GrB_LIBRARY_VER_* + GxB_LIBRARY_DATE = 7006, // date of the library (char *) + GxB_LIBRARY_ABOUT = 7007, // about the library (char *) + GxB_LIBRARY_URL = 7008, // URL for the library (char *) + GxB_LIBRARY_LICENSE = 7009, // license of the library (char *) + GxB_LIBRARY_COMPILE_DATE = 7010, // date library was compiled (char *) + GxB_LIBRARY_COMPILE_TIME = 7011, // time library was compiled (char *) + GxB_API_VERSION = 7012, // historical; use GrB_API_VER_* + GxB_API_DATE = 7013, // date of the API (char *) + GxB_API_ABOUT = 7014, // about the API (char *) + GxB_API_URL = 7015, // URL for the API (char *) + GxB_COMPILER_VERSION = 7016, // compiler version (3 int's) + GxB_COMPILER_NAME = 7017, // compiler name (char *) + GxB_LIBRARY_OPENMP = 7018, // library compiled with OpenMP + GxB_MALLOC_FUNCTION = 7037, // malloc function pointer + GxB_CALLOC_FUNCTION = 7038, // calloc function pointer + GxB_REALLOC_FUNCTION = 7039, // realloc function pointer + GxB_FREE_FUNCTION = 7040, // free function pointer -/* -GrB_Info GrB_Monoid_new // create a monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - identity // identity value of the monoid -) ; -*/ + //------------------------------------------------------------ + // GrB_get / GrB_set for GrB_GLOBAL: + //------------------------------------------------------------ -#if GxB_STDC_VERSION >= 201112L -#define GrB_Monoid_new(monoid,op,identity) \ - _Generic \ - ( \ - (identity), \ - GB_CASES (GrB, Monoid_new) \ - ) \ - (monoid, op, identity) -#endif + GxB_GLOBAL_NTHREADS = GxB_NTHREADS, // max number of threads to use + GxB_GLOBAL_CHUNK = GxB_CHUNK, // chunk size for small problems. + GxB_GLOBAL_GPU_ID = GxB_GPU_ID, // which GPU to use (DRAFT) -// GxB_Monoid_terminal_new is identical to GrB_Monoid_new, except that a -// terminal value can be specified. The terminal may be NULL, which indicates -// no terminal value (and in this case, it is identical to GrB_Monoid_new). -// The terminal value, if not NULL, must have the same type as the identity. + GxB_BURBLE = 7019, // diagnostic output + GxB_PRINTF = 7020, // printf function diagnostic output + GxB_FLUSH = 7021, // flush function diagnostic output + GxB_MEMORY_POOL = 7022, // no longer used + GxB_PRINT_1BASED = 7023, // print matrices as 0-based or 1-based -GrB_Info GxB_Monoid_terminal_new_BOOL // create a new boolean monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - bool identity, // identity value of the monoid - bool terminal // terminal value of the monoid -) ; + GxB_JIT_C_COMPILER_NAME = 7024, // CPU JIT C compiler name + GxB_JIT_C_COMPILER_FLAGS = 7025, // CPU JIT C compiler flags + GxB_JIT_C_LINKER_FLAGS = 7026, // CPU JIT C linker flags + GxB_JIT_C_LIBRARIES = 7027, // CPU JIT C libraries + GxB_JIT_C_PREFACE = 7028, // CPU JIT C preface + GxB_JIT_C_CONTROL = 7029, // CPU JIT C control + GxB_JIT_CACHE_PATH = 7030, // CPU/CUDA JIT path for compiled kernels + GxB_JIT_C_CMAKE_LIBS = 7031, // CPU JIT C libraries when using cmake + GxB_JIT_USE_CMAKE = 7032, // CPU JIT: use cmake or direct compile + GxB_JIT_ERROR_LOG = 7033, // CPU JIT: error log file -GrB_Info GxB_Monoid_terminal_new_INT8 // create a new int8 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int8_t identity, // identity value of the monoid - int8_t terminal // terminal value of the monoid -) ; - -GrB_Info GxB_Monoid_terminal_new_UINT8 // create a new uint8 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint8_t identity, // identity value of the monoid - uint8_t terminal // terminal value of the monoid -) ; + GxB_JIT_CUDA_PREFACE = 7100, // CUDA JIT C++ preface -GrB_Info GxB_Monoid_terminal_new_INT16 // create a new int16 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int16_t identity, // identity value of the monoid - int16_t terminal // terminal value of the monoid -) ; + //------------------------------------------------------------ + // GrB_get for GrB_Matrix: + //------------------------------------------------------------ -GrB_Info GxB_Monoid_terminal_new_UINT16 // create a new uint16 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint16_t identity, // identity value of the monoid - uint16_t terminal // terminal value of the monoid -) ; + GxB_SPARSITY_STATUS = 7034, // hyper, sparse, bitmap or full (1,2,4,8) + GxB_IS_HYPER = 7035, // historical; use GxB_SPARSITY_STATUS -GrB_Info GxB_Monoid_terminal_new_INT32 // create a new int32 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int32_t identity, // identity value of the monoid - int32_t terminal // terminal value of the monoid -) ; + //------------------------------------------------------------ + // GrB_get/GrB_set for GrB_Matrix: + //------------------------------------------------------------ -GrB_Info GxB_Monoid_terminal_new_UINT32 // create a new uint32 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint32_t identity, // identity value of the monoid - uint32_t terminal // terminal value of the monoid -) ; + GxB_SPARSITY_CONTROL = 7036, // sparsity control: 0 to 15; see below -GrB_Info GxB_Monoid_terminal_new_INT64 // create a new int64 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - int64_t identity, // identity value of the monoid - int64_t terminal // terminal value of the monoid -) ; +} GxB_Option_Field ; -GrB_Info GxB_Monoid_terminal_new_UINT64 // create a new uint64 monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - uint64_t identity, // identity value of the monoid - uint64_t terminal // terminal value of the monoid -) ; +// for GxB_JIT_C_CONTROL: +typedef enum +{ + GxB_JIT_OFF = 0, // do not use the JIT: free all JIT kernels if loaded + GxB_JIT_PAUSE = 1, // do not run JIT kernels but keep any loaded + GxB_JIT_RUN = 2, // run JIT kernels if already loaded; no load/compile + GxB_JIT_LOAD = 3, // able to load and run JIT kernels; may not compile + GxB_JIT_ON = 4, // full JIT: able to compile, load, and run +} +GxB_JIT_Control ; -GrB_Info GxB_Monoid_terminal_new_FP32 // create a new float monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - float identity, // identity value of the monoid - float terminal // terminal value of the monoid -) ; +// GxB_FORMAT is historical, but it can be by row or by column: +typedef enum +{ + GxB_BY_ROW = 0, // CSR: compressed sparse row format + GxB_BY_COL = 1, // CSC: compressed sparse column format + GxB_NO_FORMAT = -1 // format not defined +} +GxB_Format_Value ; -GrB_Info GxB_Monoid_terminal_new_FP64 // create a new double monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - double identity, // identity value of the monoid - double terminal // terminal value of the monoid -) ; +// The default format is by row. These constants are defined as GB_GLOBAL +// const, so that if SuiteSparse:GraphBLAS is recompiled with a different +// default format, and the application is relinked but not recompiled, it will +// acquire the new default values. +GB_GLOBAL const GxB_Format_Value GxB_FORMAT_DEFAULT ; -GrB_Info GxB_Monoid_terminal_new_FC32 // create a new float complex monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - GxB_FC32_t identity, // identity value of the monoid - GxB_FC32_t terminal // terminal value of the monoid -) ; +// the default hyper_switch parameter +GB_GLOBAL const double GxB_HYPER_DEFAULT ; -GrB_Info GxB_Monoid_terminal_new_FC64 // create a new double complex monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - GxB_FC64_t identity, // identity value of the monoid - GxB_FC64_t terminal // terminal value of the monoid -) ; +// GxB_SPARSITY_CONTROL can be any sum or bitwise OR of these 4 values: +#define GxB_HYPERSPARSE 1 // store matrix in hypersparse form +#define GxB_SPARSE 2 // store matrix as sparse form (compressed vector) +#define GxB_BITMAP 4 // store matrix as a bitmap +#define GxB_FULL 8 // store matrix as full; all entries must be present -GrB_Info GxB_Monoid_terminal_new_UDT // create a monoid with a user type -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - void *identity, // identity value of the monoid - void *terminal // terminal value of the monoid -) ; +// size of b array for GxB_set/get (GxB_BITMAP_SWITCH, b) +#define GxB_NBITMAP_SWITCH 8 // size of bitmap_switch parameter array -// Type-generic method for creating a new monoid with a terminal value: +// any sparsity value: +#define GxB_ANY_SPARSITY (GxB_HYPERSPARSE + GxB_SPARSE + GxB_BITMAP + GxB_FULL) -/* -GrB_Info GxB_Monoid_terminal_new // create a monoid -( - GrB_Monoid *monoid, // handle of monoid to create - GrB_BinaryOp op, // binary operator of the monoid - identity, // identity value of the monoid - terminal // terminal value of the monoid -) ; -*/ +// the default sparsity control is any format: +#define GxB_AUTO_SPARSITY GxB_ANY_SPARSITY -#if GxB_STDC_VERSION >= 201112L -#define GxB_Monoid_terminal_new(monoid,op,identity,terminal) \ - _Generic \ - ( \ - (identity), \ - GB_CASES (GxB, Monoid_terminal_new) \ - ) \ - (monoid, op, identity, terminal) -#endif +// GrB_set (A, scontrol, GxB_SPARSITY_CONTROL) provides hints +// about which data structure GraphBLAS should use for the matrix A: +// +// GxB_AUTO_SPARSITY: GraphBLAS selects automatically. +// GxB_HYPERSPARSE: always hypersparse, taking O(nvals(A)) space. +// GxB_SPARSE: always in a sparse struture: compressed-sparse row/column, +// taking O(nrows+nvals(A)) space if stored by row, or +// O(ncols+nvals(A)) if stored by column. +// GxB_BITMAP: always in a bitmap struture, taking O(nrows*ncols) space. +// GxB_FULL: always in a full structure, taking O(nrows*ncols) space, +// unless not all entries are present, in which case the bitmap +// storage is used. +// +// These options can be summed. For example, to allow a matrix to be sparse +// or hypersparse, but not bitmap or full, use GxB_SPARSE + GxB_HYPERSPARSE. +// Since GxB_FULL can only be used when all entries are present, matrices with +// the just GxB_FULL control setting are stored in bitmap form if any entries +// are not present. +// +// Only the least 4 bits of the sparsity control are considered, so the +// formats can be bitwise negated. For example, to allow for any format +// except full, use ~GxB_FULL. +// +// GrB_get (A, &sparsity, GxB_SPARSITY_STATUS) returns the +// current data structure currently used for the matrix A (either hypersparse, +// sparse, bitmap, or full). +// +// GrB_get (A, &scontrol, GxB_SPARSITY_CONTROL) returns the hint +// for how A should be stored (hypersparse, sparse, bitmap, or full, or any +// combination). -// historical; use GrB_get instead: -GrB_Info GxB_Monoid_operator (GrB_BinaryOp *op, GrB_Monoid monoid) ; -GrB_Info GxB_Monoid_identity (void *identity, GrB_Monoid monoid) ; -GrB_Info GxB_Monoid_terminal (bool *, void *terminal, GrB_Monoid monoid) ; +// GxB_HYPER_SWITCH: +// If the matrix or vector structure can be sparse or hypersparse, the +// GxB_HYPER_SWITCH parameter controls when each of these structures are +// used. The parameter is not used if the matrix or vector is full or +// bitmap. +// +// Let k be the actual number of non-empty vectors (with at least one +// entry). This value k is not dependent on whether or not the matrix is +// stored in hypersparse structure. Let n be the number of vectors (the # +// of columns if CSC, or rows if CSR). Let h be the value of the +// GxB_HYPER_SWITCH setting of the matrix. +// +// If a matrix is currently hypersparse, it can be converted to +// non-hypersparse if (n <= 1 || k > 2*n*h). Otherwise it stays +// hypersparse. If (n <= 1) the matrix is always stored as +// non-hypersparse. +// +// If currently non-hypersparse, it can be converted to hypersparse if (n +// > 1 && k <= n*h). Otherwise, it stays non-hypersparse. If (n <= 1) +// the matrix always remains non-hypersparse. +// +// Setting GxB_HYPER_SWITCH to GxB_ALWAYS_HYPER or GxB_NEVER_HYPER ensures +// a matrix always stays hypersparse, or always stays non-hypersparse, +// respectively. -GrB_Info GrB_Monoid_free // free a user-created monoid -( - GrB_Monoid *monoid // handle of monoid to free -) ; +GB_GLOBAL const double GxB_ALWAYS_HYPER, GxB_NEVER_HYPER ; //============================================================================== -// GrB_Semiring +// GxB_Context: for managing computational resources //============================================================================== -typedef struct GB_Semiring_opaque *GrB_Semiring ; +typedef struct GB_Context_opaque *GxB_Context ; -GrB_Info GrB_Semiring_new // create a semiring -( - GrB_Semiring *semiring, // handle of semiring to create - GrB_Monoid add, // add monoid of the semiring - GrB_BinaryOp multiply // multiply operator of the semiring -) ; +// GxB_CONTEXT_WORLD is the default Context for all user threads. +GB_GLOBAL GxB_Context GxB_CONTEXT_WORLD ; -// historical; use GrB_get instead: -GrB_Info GxB_Semiring_add (GrB_Monoid *add, GrB_Semiring semiring) ; -GrB_Info GxB_Semiring_multiply (GrB_BinaryOp *multiply, GrB_Semiring semiring) ; +typedef enum +{ + GxB_CONTEXT_NTHREADS = GxB_NTHREADS, // max number of threads to use. + // If <= 0, then one thread is used. -GrB_Info GrB_Semiring_free // free a user-created semiring -( - GrB_Semiring *semiring // handle of semiring to free -) ; + GxB_CONTEXT_CHUNK = GxB_CHUNK, // chunk size for small problems. + // If < 1, then the default is used. + + // GPU control (DRAFT: in progress, do not use) + GxB_CONTEXT_GPU_ID = GxB_GPU_ID, +} +GxB_Context_Field ; //============================================================================== -// GrB_Scalar: a GraphBLAS scalar +// GrB_set and GrB_get //============================================================================== -typedef struct GB_Scalar_opaque *GxB_Scalar ; // historical: use GrB_Scalar -typedef struct GB_Scalar_opaque *GrB_Scalar ; // use this instead +typedef struct GB_Global_opaque *GrB_Global ; +GB_GLOBAL const GrB_Global GrB_GLOBAL ; -// These methods create, free, copy, and clear a GrB_Scalar. The nvals, -// and type methods return basic information about a GrB_Scalar. +typedef enum +{ -GrB_Info GrB_Scalar_new // create a new GrB_Scalar with no entry -( - GrB_Scalar *s, // handle of GrB_Scalar to create - GrB_Type type // type of GrB_Scalar to create -) ; + //-------------------------------------------------------------------------- + // GrB enums in the C API + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_dup // make an exact copy of a GrB_Scalar -( - GrB_Scalar *s, // handle of output GrB_Scalar to create - const GrB_Scalar t // input GrB_Scalar to copy -) ; + // GrB_Descriptor only: + GrB_OUTP_FIELD = 0, // descriptor for output of a method + GrB_MASK_FIELD = 1, // descriptor for the mask input of a method + GrB_INP0_FIELD = 2, // descriptor for the first input of a method + GrB_INP1_FIELD = 3, // descriptor for the second input of a method -GrB_Info GrB_Scalar_clear // clear a GrB_Scalar of its entry -( // type remains unchanged. - GrB_Scalar s // GrB_Scalar to clear -) ; + // all objects, including GrB_GLOBAL: + GrB_NAME = 10, // name of the object, as a string -GrB_Info GrB_Scalar_nvals // get the number of entries in a GrB_Scalar -( - GrB_Index *nvals, // GrB_Scalar has nvals entries (0 or 1) - const GrB_Scalar s // GrB_Scalar to query -) ; + // GrB_GLOBAL only: + GrB_LIBRARY_VER_MAJOR = 11, // SuiteSparse:GraphBLAS version + GrB_LIBRARY_VER_MINOR = 12, + GrB_LIBRARY_VER_PATCH = 13, + GrB_API_VER_MAJOR = 14, // C API version + GrB_API_VER_MINOR = 15, + GrB_API_VER_PATCH = 16, + GrB_BLOCKING_MODE = 17, // GrB_Mode -// historical; use GrB_get instead: -GrB_Info GxB_Scalar_type (GrB_Type *type, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_type_name (char *type_name, const GrB_Scalar s) ; + // GrB_GLOBAL, GrB_Matrix, GrB_Vector, GrB_Scalar: + GrB_STORAGE_ORIENTATION_HINT = 100, // GrB_Orientation -GrB_Info GxB_Scalar_memoryUsage // return # of bytes used for a scalar -( - size_t *size, // # of bytes used by the scalar s - const GrB_Scalar s // GrB_Scalar to query -) ; + // GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize): + GrB_EL_TYPE_CODE = 102, // a GrB_Type_Code (see below) + GrB_EL_TYPE_STRING = 106, // name of the type -GrB_Info GrB_Scalar_free // free a GrB_Scalar -( - GrB_Scalar *s // handle of GrB_Scalar to free -) ; + // GrB_*Op, GrB_Monoid, and GrB_Semiring: + GrB_INP0_TYPE_CODE = 103, // GrB_Type_Code + GrB_INP1_TYPE_CODE = 104, + GrB_OUTP_TYPE_CODE = 105, + GrB_INP0_TYPE_STRING = 107, // name of the type, as a string + GrB_INP1_TYPE_STRING = 108, + GrB_OUTP_TYPE_STRING = 109, -// historical names identical to GrB_Scalar_methods above: -GrB_Info GxB_Scalar_new (GrB_Scalar *s, GrB_Type type) ; -GrB_Info GxB_Scalar_dup (GrB_Scalar *s, const GrB_Scalar t) ; -GrB_Info GxB_Scalar_clear (GrB_Scalar s) ; -GrB_Info GxB_Scalar_nvals (GrB_Index *nvals, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_free (GrB_Scalar *s) ; + // GrB_Type (readable only): + GrB_SIZE = 110, // size of the type -//------------------------------------------------------------------------------ -// GrB_Scalar_setElement -//------------------------------------------------------------------------------ + //-------------------------------------------------------------------------- + // SuiteSparse extensions: + //-------------------------------------------------------------------------- -// Set a single GrB_Scalar s, from a user scalar x: s = x, typecasting from the -// type of x to the type of w as needed. + // GrB_Type, GrB_UnaryOp, GrB_BinaryOp, and GrB_IndexUnaryOp: + GxB_JIT_C_NAME = 7041, // C type or function name + GxB_JIT_C_DEFINITION = 7042, // C typedef or function definition -GrB_Info GrB_Scalar_setElement_BOOL // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - bool x // user scalar to assign to s -) ; + // GrB_Monoid and GrB_Semiring: + GxB_MONOID_IDENTITY = 7043, // monoid identity value + GxB_MONOID_TERMINAL = 7044, // monoid terminal value + GxB_MONOID_OPERATOR = 7045, // monoid binary operator -GrB_Info GrB_Scalar_setElement_INT8 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - int8_t x // user scalar to assign to s -) ; + // GrB_Semiring only: + GxB_SEMIRING_MONOID = 7046, // semiring monoid + GxB_SEMIRING_MULTIPLY = 7047, // semiring multiplicative op +} +GrB_Field ; -GrB_Info GrB_Scalar_setElement_UINT8 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - uint8_t x // user scalar to assign to s -) ; +typedef enum +{ + GrB_ROWMAJOR = 0, + GrB_COLMAJOR = 1, + GrB_BOTH = 2, + GrB_UNKNOWN = 3, +} +GrB_Orientation ; -GrB_Info GrB_Scalar_setElement_INT16 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - int16_t x // user scalar to assign to s -) ; +typedef enum +{ + GrB_UDT_CODE = 0, // user-defined type + GrB_BOOL_CODE = 1, // GraphBLAS: GrB_BOOL C: bool + GrB_INT8_CODE = 2, // GraphBLAS: GrB_INT8 C: int8_t + GrB_UINT8_CODE = 3, // GraphBLAS: GrB_UINT8 C: uint8_t + GrB_INT16_CODE = 4, // GraphBLAS: GrB_INT16 C: int16_t + GrB_UINT16_CODE = 5, // GraphBLAS: GrB_UINT16 C: uint16_t + GrB_INT32_CODE = 6, // GraphBLAS: GrB_INT32 C: int32_t + GrB_UINT32_CODE = 7, // GraphBLAS: GrB_UINT32 C: uint32_t + GrB_INT64_CODE = 8, // GraphBLAS: GrB_INT64 C: int64_t + GrB_UINT64_CODE = 9, // GraphBLAS: GrB_UINT64 C: uint64_t + GrB_FP32_CODE = 10, // GraphBLAS: GrB_FP32 C: float + GrB_FP64_CODE = 11, // GraphBLAS: GrB_FP64 C: double + GxB_FC32_CODE = 7070, // GraphBLAS: GxB_FC32 C: float complex + GxB_FC64_CODE = 7071, // GraphBLAS: GxB_FC64 C: double complex +} +GrB_Type_Code ; -GrB_Info GrB_Scalar_setElement_UINT16 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - uint16_t x // user scalar to assign to s -) ; +//============================================================================== +// GrB_wait: finish computations +//============================================================================== -GrB_Info GrB_Scalar_setElement_INT32 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - int32_t x // user scalar to assign to s -) ; +typedef enum +{ + GrB_COMPLETE = 0, // establishes a happens-before relation; work may + // remain to compute the object but this can now + // be done safely by any user thread. + GrB_MATERIALIZE = 1 // all work on the object is finished (also + // establishes a happens-before relation). The + // object can be safely be used as an input to a + // GraphBLAS method by multiple user threads at + // the same time. For example, the A or B matrices + // of GrB_mxm can be shared by 2 user threads, but + // their output matrices C must be different. +} +GrB_WaitMode ; -GrB_Info GrB_Scalar_setElement_UINT32 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - uint32_t x // user scalar to assign to s -) ; +//============================================================================== +// GrB_extract: extract a submatrix or subvector +//============================================================================== -GrB_Info GrB_Scalar_setElement_INT64 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - int64_t x // user scalar to assign to s -) ; +GB_GLOBAL const uint64_t *GrB_ALL ; -GrB_Info GrB_Scalar_setElement_UINT64 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - uint64_t x // user scalar to assign to s -) ; +// These special values of ni and nj can be used for GrB_assign, +// GrB_extract, and GxB_subassign. +#define GxB_RANGE (INT64_MAX) +#define GxB_STRIDE (INT64_MAX-1) +#define GxB_BACKWARDS (INT64_MAX-2) -GrB_Info GrB_Scalar_setElement_FP32 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - float x // user scalar to assign to s -) ; +// for the strided range begin:inc:end, I [GxB_BEGIN] is the value of begin, I +// [GxB_END] is the value end, I [GxB_INC] is the magnitude of the stride. If +// the stride is negative, use ni = GxB_BACKWARDS. +#define GxB_BEGIN (0) +#define GxB_END (1) +#define GxB_INC (2) -GrB_Info GrB_Scalar_setElement_FP64 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - double x // user scalar to assign to s -) ; +//============================================================================== +// GrB_Monoid: built-in monoids +//============================================================================== -GrB_Info GxB_Scalar_setElement_FC32 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - GxB_FC32_t x // user scalar to assign to s -) ; +GB_GLOBAL GrB_Monoid -GrB_Info GxB_Scalar_setElement_FC64 // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - GxB_FC64_t x // user scalar to assign to s -) ; + //-------------------------------------------------------------------------- + // 10 MIN monoids: (not for complex types) + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_setElement_UDT // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - void *x // user scalar to assign to s -) ; + // GxB_MIN monoids, historical, use GrB_MIN_MONOID_* instead: + GxB_MIN_INT8_MONOID, // identity: INT8_MAX terminal: INT8_MIN + GxB_MIN_INT16_MONOID, // identity: INT16_MAX terminal: INT16_MIN + GxB_MIN_INT32_MONOID, // identity: INT32_MAX terminal: INT32_MIN + GxB_MIN_INT64_MONOID, // identity: INT64_MAX terminal: INT32_MIN + GxB_MIN_UINT8_MONOID, // identity: UINT8_MAX terminal: 0 + GxB_MIN_UINT16_MONOID, // identity: UINT16_MAX terminal: 0 + GxB_MIN_UINT32_MONOID, // identity: UINT32_MAX terminal: 0 + GxB_MIN_UINT64_MONOID, // identity: UINT64_MAX terminal: 0 + GxB_MIN_FP32_MONOID, // identity: INFINITY terminal: -INFINITY + GxB_MIN_FP64_MONOID, // identity: INFINITY terminal: -INFINITY -// historical names identical to GrB_Scalar_methods above: -GrB_Info GxB_Scalar_setElement_BOOL (GrB_Scalar s, bool x) ; -GrB_Info GxB_Scalar_setElement_INT8 (GrB_Scalar s, int8_t x) ; -GrB_Info GxB_Scalar_setElement_INT16 (GrB_Scalar s, int16_t x) ; -GrB_Info GxB_Scalar_setElement_INT32 (GrB_Scalar s, int32_t x) ; -GrB_Info GxB_Scalar_setElement_INT64 (GrB_Scalar s, int64_t x) ; -GrB_Info GxB_Scalar_setElement_UINT8 (GrB_Scalar s, uint8_t x) ; -GrB_Info GxB_Scalar_setElement_UINT16 (GrB_Scalar s, uint16_t x) ; -GrB_Info GxB_Scalar_setElement_UINT32 (GrB_Scalar s, uint32_t x) ; -GrB_Info GxB_Scalar_setElement_UINT64 (GrB_Scalar s, uint64_t x) ; -GrB_Info GxB_Scalar_setElement_FP32 (GrB_Scalar s, float x) ; -GrB_Info GxB_Scalar_setElement_FP64 (GrB_Scalar s, double x) ; -GrB_Info GxB_Scalar_setElement_UDT (GrB_Scalar s, void *x) ; + // preferred names from the v1.3 spec: + GrB_MIN_MONOID_INT8, // identity: INT8_MAX terminal: INT8_MIN + GrB_MIN_MONOID_INT16, // identity: INT16_MAX terminal: INT16_MIN + GrB_MIN_MONOID_INT32, // identity: INT32_MAX terminal: INT32_MIN + GrB_MIN_MONOID_INT64, // identity: INT64_MAX terminal: INT32_MIN + GrB_MIN_MONOID_UINT8, // identity: UINT8_MAX terminal: 0 + GrB_MIN_MONOID_UINT16, // identity: UINT16_MAX terminal: 0 + GrB_MIN_MONOID_UINT32, // identity: UINT32_MAX terminal: 0 + GrB_MIN_MONOID_UINT64, // identity: UINT64_MAX terminal: 0 + GrB_MIN_MONOID_FP32, // identity: INFINITY terminal: -INFINITY + GrB_MIN_MONOID_FP64, // identity: INFINITY terminal: -INFINITY -// Type-generic version: x can be any supported C type or void * for a -// user-defined type. + //-------------------------------------------------------------------------- + // 10 MAX monoids: + //-------------------------------------------------------------------------- -/* -GrB_Info GrB_Scalar_setElement // s = x -( - GrB_Scalar s, // GrB_Scalar to modify - x // user scalar to assign to s -) ; -*/ - -#if GxB_STDC_VERSION >= 201112L -#define GrB_Scalar_setElement(s,x) \ - _Generic \ - ( \ - (x), \ - GB_CASES (GrB, Scalar_setElement) \ - ) \ - (s, x) + // GxB_MAX monoids, historical, use GrB_MAX_MONOID_* instead: + GxB_MAX_INT8_MONOID, // identity: INT8_MIN terminal: INT8_MAX + GxB_MAX_INT16_MONOID, // identity: INT16_MIN terminal: INT16_MAX + GxB_MAX_INT32_MONOID, // identity: INT32_MIN terminal: INT32_MAX + GxB_MAX_INT64_MONOID, // identity: INT64_MIN terminal: INT64_MAX + GxB_MAX_UINT8_MONOID, // identity: 0 terminal: UINT8_MAX + GxB_MAX_UINT16_MONOID, // identity: 0 terminal: UINT16_MAX + GxB_MAX_UINT32_MONOID, // identity: 0 terminal: UINT32_MAX + GxB_MAX_UINT64_MONOID, // identity: 0 terminal: UINT64_MAX + GxB_MAX_FP32_MONOID, // identity: -INFINITY terminal: INFINITY + GxB_MAX_FP64_MONOID, // identity: -INFINITY terminal: INFINITY -// historical; use GrB_Scalar_setElement instead: -#define GxB_Scalar_setElement(s,x) GrB_Scalar_setElement (s, x) -#endif + // preferred names from the v1.3 spec: + GrB_MAX_MONOID_INT8, // identity: INT8_MIN terminal: INT8_MAX + GrB_MAX_MONOID_INT16, // identity: INT16_MIN terminal: INT16_MAX + GrB_MAX_MONOID_INT32, // identity: INT32_MIN terminal: INT32_MAX + GrB_MAX_MONOID_INT64, // identity: INT64_MIN terminal: INT64_MAX + GrB_MAX_MONOID_UINT8, // identity: 0 terminal: UINT8_MAX + GrB_MAX_MONOID_UINT16, // identity: 0 terminal: UINT16_MAX + GrB_MAX_MONOID_UINT32, // identity: 0 terminal: UINT32_MAX + GrB_MAX_MONOID_UINT64, // identity: 0 terminal: UINT64_MAX + GrB_MAX_MONOID_FP32, // identity: -INFINITY terminal: INFINITY + GrB_MAX_MONOID_FP64, // identity: -INFINITY terminal: INFINITY -//------------------------------------------------------------------------------ -// GrB_Scalar_extractElement -//------------------------------------------------------------------------------ + //-------------------------------------------------------------------------- + // 12 PLUS monoids: + //-------------------------------------------------------------------------- -// Extract a single entry from a GrB_Scalar, x = s, typecasting from the type -// of s to the type of x as needed. + // GxB_PLUS monoids, historical, use GrB_PLUS_MONOID_* instead: + GxB_PLUS_INT8_MONOID, // identity: 0 + GxB_PLUS_INT16_MONOID, // identity: 0 + GxB_PLUS_INT32_MONOID, // identity: 0 + GxB_PLUS_INT64_MONOID, // identity: 0 + GxB_PLUS_UINT8_MONOID, // identity: 0 + GxB_PLUS_UINT16_MONOID, // identity: 0 + GxB_PLUS_UINT32_MONOID, // identity: 0 + GxB_PLUS_UINT64_MONOID, // identity: 0 + GxB_PLUS_FP32_MONOID, // identity: 0 + GxB_PLUS_FP64_MONOID, // identity: 0 -GrB_Info GrB_Scalar_extractElement_BOOL // x = s -( - bool *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // preferred names from the v1.3 spec: + GrB_PLUS_MONOID_INT8, // identity: 0 + GrB_PLUS_MONOID_INT16, // identity: 0 + GrB_PLUS_MONOID_INT32, // identity: 0 + GrB_PLUS_MONOID_INT64, // identity: 0 + GrB_PLUS_MONOID_UINT8, // identity: 0 + GrB_PLUS_MONOID_UINT16, // identity: 0 + GrB_PLUS_MONOID_UINT32, // identity: 0 + GrB_PLUS_MONOID_UINT64, // identity: 0 + GrB_PLUS_MONOID_FP32, // identity: 0 + GrB_PLUS_MONOID_FP64, // identity: 0 -GrB_Info GrB_Scalar_extractElement_INT8 // x = s -( - int8_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // complex monoids: + GxB_PLUS_FC32_MONOID, // identity: 0 + GxB_PLUS_FC64_MONOID, // identity: 0 -GrB_Info GrB_Scalar_extractElement_UINT8 // x = s -( - uint8_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + //-------------------------------------------------------------------------- + // 12 TIMES monoids: identity value is 1, int* and uint* are terminal + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_extractElement_INT16 // x = s -( - int16_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // GxB_TIMES monoids, historical, use GrB_TIMES_MONOID_* instead: + GxB_TIMES_INT8_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_INT16_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_INT32_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_INT64_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_UINT8_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_UINT16_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_UINT32_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_UINT64_MONOID, // identity: 1 terminal: 0 + GxB_TIMES_FP32_MONOID, // identity: 1 + GxB_TIMES_FP64_MONOID, // identity: 1 -GrB_Info GrB_Scalar_extractElement_UINT16 // x = s -( - uint16_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // preferred names from the v1.3 spec: + GrB_TIMES_MONOID_INT8, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_INT16, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_INT32, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_INT64, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_UINT8, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_UINT16, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_UINT32, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_UINT64, // identity: 1 terminal: 0 + GrB_TIMES_MONOID_FP32, // identity: 1 + GrB_TIMES_MONOID_FP64, // identity: 1 -GrB_Info GrB_Scalar_extractElement_INT32 // x = s -( - int32_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // complex monoids: + GxB_TIMES_FC32_MONOID, // identity: 1 + GxB_TIMES_FC64_MONOID, // identity: 1 -GrB_Info GrB_Scalar_extractElement_UINT32 // x = s -( - uint32_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + //-------------------------------------------------------------------------- + // 13 ANY monoids: + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_extractElement_INT64 // x = s -( - int64_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + GxB_ANY_BOOL_MONOID, // identity: any value terminal: any value + GxB_ANY_INT8_MONOID, // identity: any value terminal: any value + GxB_ANY_INT16_MONOID, // identity: any value terminal: any value + GxB_ANY_INT32_MONOID, // identity: any value terminal: any value + GxB_ANY_INT64_MONOID, // identity: any value terminal: any value + GxB_ANY_UINT8_MONOID, // identity: any value terminal: any value + GxB_ANY_UINT16_MONOID, // identity: any value terminal: any value + GxB_ANY_UINT32_MONOID, // identity: any value terminal: any value + GxB_ANY_UINT64_MONOID, // identity: any value terminal: any value + GxB_ANY_FP32_MONOID, // identity: any value terminal: any value + GxB_ANY_FP64_MONOID, // identity: any value terminal: any value + GxB_ANY_FC32_MONOID, // identity: any value terminal: any value + GxB_ANY_FC64_MONOID, // identity: any value terminal: any value -GrB_Info GrB_Scalar_extractElement_UINT64 // x = s -( - uint64_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + //-------------------------------------------------------------------------- + // 4 Boolean monoids: (see also the GxB_ANY_BOOL_MONOID above) + //-------------------------------------------------------------------------- -GrB_Info GrB_Scalar_extractElement_FP32 // x = s -( - float *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // GxB_* boolean monoids, historical, use GrB_* instead: + GxB_LOR_BOOL_MONOID, // identity: false terminal: true + GxB_LAND_BOOL_MONOID, // identity: true terminal: false + GxB_LXOR_BOOL_MONOID, // identity: false + GxB_LXNOR_BOOL_MONOID, // identity: true + GxB_EQ_BOOL_MONOID, // (another name for GrB_LXNOR_MONOID_BOOL) -GrB_Info GrB_Scalar_extractElement_FP64 // x = s -( - double *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // preferred names from the v1.3 spec: + GrB_LOR_MONOID_BOOL, // identity: false terminal: true + GrB_LAND_MONOID_BOOL, // identity: true terminal: false + GrB_LXOR_MONOID_BOOL, // identity: false + GrB_LXNOR_MONOID_BOOL, // identity: true -GrB_Info GxB_Scalar_extractElement_FC32 // x = s -( - GxB_FC32_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + //-------------------------------------------------------------------------- + // 16 Bitwise-or monoids: + //-------------------------------------------------------------------------- -GrB_Info GxB_Scalar_extractElement_FC64 // x = s -( - GxB_FC64_t *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // BOR monoids (bitwise or): + GxB_BOR_UINT8_MONOID, // identity: 0 terminal: 0xFF + GxB_BOR_UINT16_MONOID, // identity: 0 terminal: 0xFFFF + GxB_BOR_UINT32_MONOID, // identity: 0 terminal: 0xFFFFFFFF + GxB_BOR_UINT64_MONOID, // identity: 0 terminal: 0xFFFFFFFFFFFFFFFF -GrB_Info GrB_Scalar_extractElement_UDT // x = s -( - void *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; + // BAND monoids (bitwise and): + GxB_BAND_UINT8_MONOID, // identity: 0xFF terminal: 0 + GxB_BAND_UINT16_MONOID, // identity: 0xFFFF terminal: 0 + GxB_BAND_UINT32_MONOID, // identity: 0xFFFFFFFF terminal: 0 + GxB_BAND_UINT64_MONOID, // identity: 0xFFFFFFFFFFFFFFFF terminal: 0 -// historical names identical to GrB_Scalar_methods above: -GrB_Info GxB_Scalar_extractElement_BOOL (bool *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_INT8 (int8_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_INT16 (int16_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_INT32 (int32_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_INT64 (int64_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UINT8 (uint8_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UINT16 (uint16_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UINT32 (uint32_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UINT64 (uint64_t *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_FP32 (float *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_FP64 (double *x, const GrB_Scalar s) ; -GrB_Info GxB_Scalar_extractElement_UDT (void *x, const GrB_Scalar s) ; + // BXOR monoids (bitwise xor): + GxB_BXOR_UINT8_MONOID, // identity: 0 + GxB_BXOR_UINT16_MONOID, // identity: 0 + GxB_BXOR_UINT32_MONOID, // identity: 0 + GxB_BXOR_UINT64_MONOID, // identity: 0 -// Type-generic version: x can be a pointer to any supported C type or void * -// for a user-defined type. + // BXNOR monoids (bitwise xnor): + GxB_BXNOR_UINT8_MONOID, // identity: 0xFF + GxB_BXNOR_UINT16_MONOID, // identity: 0xFFFF + GxB_BXNOR_UINT32_MONOID, // identity: 0xFFFFFFFF + GxB_BXNOR_UINT64_MONOID ; // identity: 0xFFFFFFFFFFFFFFFF -/* +//============================================================================== +// GrB_Semiring: built-in semirings +//============================================================================== -GrB_Info GrB_Scalar_extractElement // x = s -( - *x, // user scalar extracted - const GrB_Scalar s // GrB_Scalar to extract an entry from -) ; +// Using built-in types and operators, SuiteSparse:GraphBLAS provides +// 1553 pre-defined, built-in semirings: -*/ +// 1000 semirings with a multiply operator TxT -> T where T is non-Boolean, +// from the complete cross product of: -#if GxB_STDC_VERSION >= 201112L -#define GrB_Scalar_extractElement(x,s) \ - _Generic \ - ( \ - (x), \ - GB_PCASES (GrB, Scalar_extractElement) \ - ) \ - (x, s) +// 5 monoids: MIN, MAX, PLUS, TIMES, ANY +// 20 multiply operators: +// FIRST, SECOND, PAIR (=ONEB), MIN, MAX, PLUS, MINUS, TIMES, DIV, +// RDIV, RMINUS +// ISEQ, ISNE, ISGT, ISLT, ISGE, ISLE, +// LOR, LAND, LXOR +// 10 non-Boolean real types, T +// +// Note that min_pair, max_pair, times_pair are all identical to any_pair. +// These 30 semirings are named below, but are internally remapped to +// their corresponding any_pair semiring. -// historical; use GrB_Scalar_extractElement instead: -#define GxB_Scalar_extractElement(x,s) GrB_Scalar_extractElement (x, s) -#endif +// 300 semirings with a comparator TxT -> bool, where T is +// non-Boolean, from the complete cross product of: -//============================================================================== -// GrB_Vector: a GraphBLAS vector -//============================================================================== +// 5 Boolean monoids: LAND, LOR, LXOR, EQ (=LXNOR), ANY +// 6 multiply operators: EQ, NE, GT, LT, GE, LE +// 10 non-Boolean real types, T -typedef struct GB_Vector_opaque *GrB_Vector ; +// 55 semirings with purely Boolean types, bool x bool -> bool, from the +// complete cross product of: -// These methods create, free, copy, and clear a vector. The size, nvals, -// and type methods return basic information about a vector. +// 5 Boolean monoids LAND, LOR, LXOR, EQ (=LXNOR), ANY +// 11 multiply operators: +// FIRST, SECOND, LOR, LAND, LXOR, EQ (=LXNOR), GT, LT, GE, LE, +// PAIR (=ONEB) +// +// Note that lor_pair, land_pair, and eq_pair are all identical to +// any_pair. These 3 semirings are named below, but are internally +// remapped to any_pair_bool semiring. -GrB_Info GrB_Vector_new // create a new vector with no entries -( - GrB_Vector *v, // handle of vector to create - GrB_Type type, // type of vector to create - GrB_Index n // vector dimension is n-by-1 - // (n must be <= GrB_INDEX_MAX+1) -) ; +// 54 complex semirings: TxT -> T where T is float complex or double complex: -GrB_Info GrB_Vector_dup // make an exact copy of a vector -( - GrB_Vector *w, // handle of output vector to create - const GrB_Vector u // input vector to copy -) ; +// 3 complex monoids: PLUS, TIMES, ANY +// 9 complex multiply operators: +// FIRST, SECOND, PAIR (=ONEB), PLUS, MINUS, TIMES, DIV, RDIV, RMINUS +// 2 complex types +// +// Note that times_pair is identical to any_pair. +// These 2 semirings are named below, but are internally remapped to +// their corresponding any_pair semiring. -GrB_Info GrB_Vector_clear // clear a vector of all entries; -( // type and dimension remain unchanged. - GrB_Vector v // vector to clear -) ; +// 64 bitwise semirings: TxT -> T where T is an unsigned integer: -GrB_Info GrB_Vector_size // get the dimension of a vector -( - GrB_Index *n, // vector dimension is n-by-1 - const GrB_Vector v // vector to query -) ; +// 4 bitwise monoids: BOR, BAND, BXOR, BXNOR +// 4 bitwise multiply operators: BOR, BAND, BXOR, BXNOR +// 4 unsigned integer types: UINT8, UINT16, UINT32, UINT64 -GrB_Info GrB_Vector_nvals // get the number of entries in a vector -( - GrB_Index *nvals, // vector has nvals entries - const GrB_Vector v // vector to query -) ; +// 80 positional semirings: XxX -> T where T is int64 or int32, and the type of +// X is ignored: -// historical; use GrB_get instead: -GrB_Info GxB_Vector_type (GrB_Type *type, const GrB_Vector v) ; -GrB_Info GxB_Vector_type_name (char *type_name, const GrB_Vector v) ; +// 5 monoids: MIN, MAX, PLUS, TIMES, ANY +// 8 multiply operators: +// FIRSTI, FIRSTI1, FIRSTJ, FIRSTJ1, +// SECONDI, SECONDI1, SECONDJ, SECONDJ1 +// 2 types: int32, int64 -GrB_Info GxB_Vector_memoryUsage // return # of bytes used for a vector -( - size_t *size, // # of bytes used by the vector v - const GrB_Vector v // vector to query -) ; +// The ANY operator is also valid to use as a multiplicative operator in a +// semiring, but serves no purpose in that case. The ANY operator is meant as +// a fast additive operator for a monoid, that terminates, or short-circuits, +// as soon as any value is found. A valid user semiring can be constructed +// with ANY as the multiply operator, but they are not predefined below. -GrB_Info GxB_Vector_iso // return iso status of a vector -( - bool *iso, // true if the vector is iso-valued - const GrB_Vector v // vector to query -) ; +// Likewise, additional built-in operators can be used as multiplicative +// operators for floating-point semirings (POW, ATAN2, HYPOT, ...) and many +// more semirings can be constructed from bitwise monoids and many integer +// binary (non-bitwise) multiplicative operators, but these are not +// pre-defined. -GrB_Info GrB_Vector_free // free a vector -( - GrB_Vector *v // handle of vector to free -) ; +// In the names below, each semiring has a name of the form GxB_add_mult_T +// where add is the additive monoid, mult is the multiply operator, and T is +// the type. The type T is always the type of x and y for the z=mult(x,y) +// operator. The monoid's three types and the ztype of the mult operator are +// always the same. This is the type T for the first set, and Boolean for +// the second and third sets of semirngs. + +// 1553 = 1000 + 300 + 55 + 54 + 64 + 80 semirings are named below, but 35 = 30 +// + 3 + 2 are identical to the corresponding any_pair semirings of the same +// type. For positional semirings, the mulitiply ops FIRSTJ and SECONDI are +// identical, as are FIRSTJ1 and SECONDI1. These semirings still appear as +// predefined, for convenience. + +GB_GLOBAL GrB_Semiring //------------------------------------------------------------------------------ -// GrB_Vector_build +// 1000 non-Boolean semirings where all types are the same, given by suffix _T //------------------------------------------------------------------------------ -// GrB_Vector_build: w = sparse (I,1,X), but using any -// associative operator to assemble duplicate entries. + // semirings with multiply op: z = FIRST (x,y), all types x,y,z the same: + GxB_MIN_FIRST_INT8 , GxB_MAX_FIRST_INT8 , GxB_PLUS_FIRST_INT8 , GxB_TIMES_FIRST_INT8 , GxB_ANY_FIRST_INT8 , + GxB_MIN_FIRST_INT16 , GxB_MAX_FIRST_INT16 , GxB_PLUS_FIRST_INT16 , GxB_TIMES_FIRST_INT16 , GxB_ANY_FIRST_INT16 , + GxB_MIN_FIRST_INT32 , GxB_MAX_FIRST_INT32 , GxB_PLUS_FIRST_INT32 , GxB_TIMES_FIRST_INT32 , GxB_ANY_FIRST_INT32 , + GxB_MIN_FIRST_INT64 , GxB_MAX_FIRST_INT64 , GxB_PLUS_FIRST_INT64 , GxB_TIMES_FIRST_INT64 , GxB_ANY_FIRST_INT64 , + GxB_MIN_FIRST_UINT8 , GxB_MAX_FIRST_UINT8 , GxB_PLUS_FIRST_UINT8 , GxB_TIMES_FIRST_UINT8 , GxB_ANY_FIRST_UINT8 , + GxB_MIN_FIRST_UINT16 , GxB_MAX_FIRST_UINT16 , GxB_PLUS_FIRST_UINT16 , GxB_TIMES_FIRST_UINT16 , GxB_ANY_FIRST_UINT16 , + GxB_MIN_FIRST_UINT32 , GxB_MAX_FIRST_UINT32 , GxB_PLUS_FIRST_UINT32 , GxB_TIMES_FIRST_UINT32 , GxB_ANY_FIRST_UINT32 , + GxB_MIN_FIRST_UINT64 , GxB_MAX_FIRST_UINT64 , GxB_PLUS_FIRST_UINT64 , GxB_TIMES_FIRST_UINT64 , GxB_ANY_FIRST_UINT64 , + GxB_MIN_FIRST_FP32 , GxB_MAX_FIRST_FP32 , GxB_PLUS_FIRST_FP32 , GxB_TIMES_FIRST_FP32 , GxB_ANY_FIRST_FP32 , + GxB_MIN_FIRST_FP64 , GxB_MAX_FIRST_FP64 , GxB_PLUS_FIRST_FP64 , GxB_TIMES_FIRST_FP64 , GxB_ANY_FIRST_FP64 , -GrB_Info GrB_Vector_build_BOOL // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const bool *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = SECOND (x,y), all types x,y,z the same: + GxB_MIN_SECOND_INT8 , GxB_MAX_SECOND_INT8 , GxB_PLUS_SECOND_INT8 , GxB_TIMES_SECOND_INT8 , GxB_ANY_SECOND_INT8 , + GxB_MIN_SECOND_INT16 , GxB_MAX_SECOND_INT16 , GxB_PLUS_SECOND_INT16 , GxB_TIMES_SECOND_INT16 , GxB_ANY_SECOND_INT16 , + GxB_MIN_SECOND_INT32 , GxB_MAX_SECOND_INT32 , GxB_PLUS_SECOND_INT32 , GxB_TIMES_SECOND_INT32 , GxB_ANY_SECOND_INT32 , + GxB_MIN_SECOND_INT64 , GxB_MAX_SECOND_INT64 , GxB_PLUS_SECOND_INT64 , GxB_TIMES_SECOND_INT64 , GxB_ANY_SECOND_INT64 , + GxB_MIN_SECOND_UINT8 , GxB_MAX_SECOND_UINT8 , GxB_PLUS_SECOND_UINT8 , GxB_TIMES_SECOND_UINT8 , GxB_ANY_SECOND_UINT8 , + GxB_MIN_SECOND_UINT16 , GxB_MAX_SECOND_UINT16 , GxB_PLUS_SECOND_UINT16 , GxB_TIMES_SECOND_UINT16, GxB_ANY_SECOND_UINT16 , + GxB_MIN_SECOND_UINT32 , GxB_MAX_SECOND_UINT32 , GxB_PLUS_SECOND_UINT32 , GxB_TIMES_SECOND_UINT32, GxB_ANY_SECOND_UINT32 , + GxB_MIN_SECOND_UINT64 , GxB_MAX_SECOND_UINT64 , GxB_PLUS_SECOND_UINT64 , GxB_TIMES_SECOND_UINT64, GxB_ANY_SECOND_UINT64 , + GxB_MIN_SECOND_FP32 , GxB_MAX_SECOND_FP32 , GxB_PLUS_SECOND_FP32 , GxB_TIMES_SECOND_FP32 , GxB_ANY_SECOND_FP32 , + GxB_MIN_SECOND_FP64 , GxB_MAX_SECOND_FP64 , GxB_PLUS_SECOND_FP64 , GxB_TIMES_SECOND_FP64 , GxB_ANY_SECOND_FP64 , -GrB_Info GrB_Vector_build_INT8 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const int8_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = PAIR (x,y), all types x,y,z the same: + // (note that min_pair, max_pair, times_pair are all identical to any_pair, and are marked below) + GxB_MIN_PAIR_INT8 /**/, GxB_MAX_PAIR_INT8 /**/, GxB_PLUS_PAIR_INT8 , GxB_TIMES_PAIR_INT8 /**/, GxB_ANY_PAIR_INT8 , + GxB_MIN_PAIR_INT16 /**/, GxB_MAX_PAIR_INT16 /**/, GxB_PLUS_PAIR_INT16 , GxB_TIMES_PAIR_INT16 /**/, GxB_ANY_PAIR_INT16 , + GxB_MIN_PAIR_INT32 /**/, GxB_MAX_PAIR_INT32 /**/, GxB_PLUS_PAIR_INT32 , GxB_TIMES_PAIR_INT32 /**/, GxB_ANY_PAIR_INT32 , + GxB_MIN_PAIR_INT64 /**/, GxB_MAX_PAIR_INT64 /**/, GxB_PLUS_PAIR_INT64 , GxB_TIMES_PAIR_INT64 /**/, GxB_ANY_PAIR_INT64 , + GxB_MIN_PAIR_UINT8 /**/, GxB_MAX_PAIR_UINT8 /**/, GxB_PLUS_PAIR_UINT8 , GxB_TIMES_PAIR_UINT8 /**/, GxB_ANY_PAIR_UINT8 , + GxB_MIN_PAIR_UINT16/**/, GxB_MAX_PAIR_UINT16/**/, GxB_PLUS_PAIR_UINT16 , GxB_TIMES_PAIR_UINT16/**/, GxB_ANY_PAIR_UINT16 , + GxB_MIN_PAIR_UINT32/**/, GxB_MAX_PAIR_UINT32/**/, GxB_PLUS_PAIR_UINT32 , GxB_TIMES_PAIR_UINT32/**/, GxB_ANY_PAIR_UINT32 , + GxB_MIN_PAIR_UINT64/**/, GxB_MAX_PAIR_UINT64/**/, GxB_PLUS_PAIR_UINT64 , GxB_TIMES_PAIR_UINT64/**/, GxB_ANY_PAIR_UINT64 , + GxB_MIN_PAIR_FP32 /**/, GxB_MAX_PAIR_FP32 /**/, GxB_PLUS_PAIR_FP32 , GxB_TIMES_PAIR_FP32 /**/, GxB_ANY_PAIR_FP32 , + GxB_MIN_PAIR_FP64 /**/, GxB_MAX_PAIR_FP64 /**/, GxB_PLUS_PAIR_FP64 , GxB_TIMES_PAIR_FP64 /**/, GxB_ANY_PAIR_FP64 , -GrB_Info GrB_Vector_build_UINT8 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const uint8_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = MIN (x,y), all types x,y,z the same: + GxB_MIN_MIN_INT8 , GxB_MAX_MIN_INT8 , GxB_PLUS_MIN_INT8 , GxB_TIMES_MIN_INT8 , GxB_ANY_MIN_INT8 , + GxB_MIN_MIN_INT16 , GxB_MAX_MIN_INT16 , GxB_PLUS_MIN_INT16 , GxB_TIMES_MIN_INT16 , GxB_ANY_MIN_INT16 , + GxB_MIN_MIN_INT32 , GxB_MAX_MIN_INT32 , GxB_PLUS_MIN_INT32 , GxB_TIMES_MIN_INT32 , GxB_ANY_MIN_INT32 , + GxB_MIN_MIN_INT64 , GxB_MAX_MIN_INT64 , GxB_PLUS_MIN_INT64 , GxB_TIMES_MIN_INT64 , GxB_ANY_MIN_INT64 , + GxB_MIN_MIN_UINT8 , GxB_MAX_MIN_UINT8 , GxB_PLUS_MIN_UINT8 , GxB_TIMES_MIN_UINT8 , GxB_ANY_MIN_UINT8 , + GxB_MIN_MIN_UINT16 , GxB_MAX_MIN_UINT16 , GxB_PLUS_MIN_UINT16 , GxB_TIMES_MIN_UINT16 , GxB_ANY_MIN_UINT16 , + GxB_MIN_MIN_UINT32 , GxB_MAX_MIN_UINT32 , GxB_PLUS_MIN_UINT32 , GxB_TIMES_MIN_UINT32 , GxB_ANY_MIN_UINT32 , + GxB_MIN_MIN_UINT64 , GxB_MAX_MIN_UINT64 , GxB_PLUS_MIN_UINT64 , GxB_TIMES_MIN_UINT64 , GxB_ANY_MIN_UINT64 , + GxB_MIN_MIN_FP32 , GxB_MAX_MIN_FP32 , GxB_PLUS_MIN_FP32 , GxB_TIMES_MIN_FP32 , GxB_ANY_MIN_FP32 , + GxB_MIN_MIN_FP64 , GxB_MAX_MIN_FP64 , GxB_PLUS_MIN_FP64 , GxB_TIMES_MIN_FP64 , GxB_ANY_MIN_FP64 , -GrB_Info GrB_Vector_build_INT16 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const int16_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = MAX (x,y), all types x,y,z the same: + GxB_MIN_MAX_INT8 , GxB_MAX_MAX_INT8 , GxB_PLUS_MAX_INT8 , GxB_TIMES_MAX_INT8 , GxB_ANY_MAX_INT8 , + GxB_MIN_MAX_INT16 , GxB_MAX_MAX_INT16 , GxB_PLUS_MAX_INT16 , GxB_TIMES_MAX_INT16 , GxB_ANY_MAX_INT16 , + GxB_MIN_MAX_INT32 , GxB_MAX_MAX_INT32 , GxB_PLUS_MAX_INT32 , GxB_TIMES_MAX_INT32 , GxB_ANY_MAX_INT32 , + GxB_MIN_MAX_INT64 , GxB_MAX_MAX_INT64 , GxB_PLUS_MAX_INT64 , GxB_TIMES_MAX_INT64 , GxB_ANY_MAX_INT64 , + GxB_MIN_MAX_UINT8 , GxB_MAX_MAX_UINT8 , GxB_PLUS_MAX_UINT8 , GxB_TIMES_MAX_UINT8 , GxB_ANY_MAX_UINT8 , + GxB_MIN_MAX_UINT16 , GxB_MAX_MAX_UINT16 , GxB_PLUS_MAX_UINT16 , GxB_TIMES_MAX_UINT16 , GxB_ANY_MAX_UINT16 , + GxB_MIN_MAX_UINT32 , GxB_MAX_MAX_UINT32 , GxB_PLUS_MAX_UINT32 , GxB_TIMES_MAX_UINT32 , GxB_ANY_MAX_UINT32 , + GxB_MIN_MAX_UINT64 , GxB_MAX_MAX_UINT64 , GxB_PLUS_MAX_UINT64 , GxB_TIMES_MAX_UINT64 , GxB_ANY_MAX_UINT64 , + GxB_MIN_MAX_FP32 , GxB_MAX_MAX_FP32 , GxB_PLUS_MAX_FP32 , GxB_TIMES_MAX_FP32 , GxB_ANY_MAX_FP32 , + GxB_MIN_MAX_FP64 , GxB_MAX_MAX_FP64 , GxB_PLUS_MAX_FP64 , GxB_TIMES_MAX_FP64 , GxB_ANY_MAX_FP64 , -GrB_Info GrB_Vector_build_UINT16 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const uint16_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = PLUS (x,y), all types x,y,z the same: + GxB_MIN_PLUS_INT8 , GxB_MAX_PLUS_INT8 , GxB_PLUS_PLUS_INT8 , GxB_TIMES_PLUS_INT8 , GxB_ANY_PLUS_INT8 , + GxB_MIN_PLUS_INT16 , GxB_MAX_PLUS_INT16 , GxB_PLUS_PLUS_INT16 , GxB_TIMES_PLUS_INT16 , GxB_ANY_PLUS_INT16 , + GxB_MIN_PLUS_INT32 , GxB_MAX_PLUS_INT32 , GxB_PLUS_PLUS_INT32 , GxB_TIMES_PLUS_INT32 , GxB_ANY_PLUS_INT32 , + GxB_MIN_PLUS_INT64 , GxB_MAX_PLUS_INT64 , GxB_PLUS_PLUS_INT64 , GxB_TIMES_PLUS_INT64 , GxB_ANY_PLUS_INT64 , + GxB_MIN_PLUS_UINT8 , GxB_MAX_PLUS_UINT8 , GxB_PLUS_PLUS_UINT8 , GxB_TIMES_PLUS_UINT8 , GxB_ANY_PLUS_UINT8 , + GxB_MIN_PLUS_UINT16 , GxB_MAX_PLUS_UINT16 , GxB_PLUS_PLUS_UINT16 , GxB_TIMES_PLUS_UINT16 , GxB_ANY_PLUS_UINT16 , + GxB_MIN_PLUS_UINT32 , GxB_MAX_PLUS_UINT32 , GxB_PLUS_PLUS_UINT32 , GxB_TIMES_PLUS_UINT32 , GxB_ANY_PLUS_UINT32 , + GxB_MIN_PLUS_UINT64 , GxB_MAX_PLUS_UINT64 , GxB_PLUS_PLUS_UINT64 , GxB_TIMES_PLUS_UINT64 , GxB_ANY_PLUS_UINT64 , + GxB_MIN_PLUS_FP32 , GxB_MAX_PLUS_FP32 , GxB_PLUS_PLUS_FP32 , GxB_TIMES_PLUS_FP32 , GxB_ANY_PLUS_FP32 , + GxB_MIN_PLUS_FP64 , GxB_MAX_PLUS_FP64 , GxB_PLUS_PLUS_FP64 , GxB_TIMES_PLUS_FP64 , GxB_ANY_PLUS_FP64 , -GrB_Info GrB_Vector_build_INT32 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const int32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = MINUS (x,y), all types x,y,z the same: + GxB_MIN_MINUS_INT8 , GxB_MAX_MINUS_INT8 , GxB_PLUS_MINUS_INT8 , GxB_TIMES_MINUS_INT8 , GxB_ANY_MINUS_INT8 , + GxB_MIN_MINUS_INT16 , GxB_MAX_MINUS_INT16 , GxB_PLUS_MINUS_INT16 , GxB_TIMES_MINUS_INT16 , GxB_ANY_MINUS_INT16 , + GxB_MIN_MINUS_INT32 , GxB_MAX_MINUS_INT32 , GxB_PLUS_MINUS_INT32 , GxB_TIMES_MINUS_INT32 , GxB_ANY_MINUS_INT32 , + GxB_MIN_MINUS_INT64 , GxB_MAX_MINUS_INT64 , GxB_PLUS_MINUS_INT64 , GxB_TIMES_MINUS_INT64 , GxB_ANY_MINUS_INT64 , + GxB_MIN_MINUS_UINT8 , GxB_MAX_MINUS_UINT8 , GxB_PLUS_MINUS_UINT8 , GxB_TIMES_MINUS_UINT8 , GxB_ANY_MINUS_UINT8 , + GxB_MIN_MINUS_UINT16 , GxB_MAX_MINUS_UINT16 , GxB_PLUS_MINUS_UINT16 , GxB_TIMES_MINUS_UINT16 , GxB_ANY_MINUS_UINT16 , + GxB_MIN_MINUS_UINT32 , GxB_MAX_MINUS_UINT32 , GxB_PLUS_MINUS_UINT32 , GxB_TIMES_MINUS_UINT32 , GxB_ANY_MINUS_UINT32 , + GxB_MIN_MINUS_UINT64 , GxB_MAX_MINUS_UINT64 , GxB_PLUS_MINUS_UINT64 , GxB_TIMES_MINUS_UINT64 , GxB_ANY_MINUS_UINT64 , + GxB_MIN_MINUS_FP32 , GxB_MAX_MINUS_FP32 , GxB_PLUS_MINUS_FP32 , GxB_TIMES_MINUS_FP32 , GxB_ANY_MINUS_FP32 , + GxB_MIN_MINUS_FP64 , GxB_MAX_MINUS_FP64 , GxB_PLUS_MINUS_FP64 , GxB_TIMES_MINUS_FP64 , GxB_ANY_MINUS_FP64 , -GrB_Info GrB_Vector_build_UINT32 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const uint32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = TIMES (x,y), all types x,y,z the same: + GxB_MIN_TIMES_INT8 , GxB_MAX_TIMES_INT8 , GxB_PLUS_TIMES_INT8 , GxB_TIMES_TIMES_INT8 , GxB_ANY_TIMES_INT8 , + GxB_MIN_TIMES_INT16 , GxB_MAX_TIMES_INT16 , GxB_PLUS_TIMES_INT16 , GxB_TIMES_TIMES_INT16 , GxB_ANY_TIMES_INT16 , + GxB_MIN_TIMES_INT32 , GxB_MAX_TIMES_INT32 , GxB_PLUS_TIMES_INT32 , GxB_TIMES_TIMES_INT32 , GxB_ANY_TIMES_INT32 , + GxB_MIN_TIMES_INT64 , GxB_MAX_TIMES_INT64 , GxB_PLUS_TIMES_INT64 , GxB_TIMES_TIMES_INT64 , GxB_ANY_TIMES_INT64 , + GxB_MIN_TIMES_UINT8 , GxB_MAX_TIMES_UINT8 , GxB_PLUS_TIMES_UINT8 , GxB_TIMES_TIMES_UINT8 , GxB_ANY_TIMES_UINT8 , + GxB_MIN_TIMES_UINT16 , GxB_MAX_TIMES_UINT16 , GxB_PLUS_TIMES_UINT16 , GxB_TIMES_TIMES_UINT16 , GxB_ANY_TIMES_UINT16 , + GxB_MIN_TIMES_UINT32 , GxB_MAX_TIMES_UINT32 , GxB_PLUS_TIMES_UINT32 , GxB_TIMES_TIMES_UINT32 , GxB_ANY_TIMES_UINT32 , + GxB_MIN_TIMES_UINT64 , GxB_MAX_TIMES_UINT64 , GxB_PLUS_TIMES_UINT64 , GxB_TIMES_TIMES_UINT64 , GxB_ANY_TIMES_UINT64 , + GxB_MIN_TIMES_FP32 , GxB_MAX_TIMES_FP32 , GxB_PLUS_TIMES_FP32 , GxB_TIMES_TIMES_FP32 , GxB_ANY_TIMES_FP32 , + GxB_MIN_TIMES_FP64 , GxB_MAX_TIMES_FP64 , GxB_PLUS_TIMES_FP64 , GxB_TIMES_TIMES_FP64 , GxB_ANY_TIMES_FP64 , -GrB_Info GrB_Vector_build_INT64 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const int64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = DIV (x,y), all types x,y,z the same: + GxB_MIN_DIV_INT8 , GxB_MAX_DIV_INT8 , GxB_PLUS_DIV_INT8 , GxB_TIMES_DIV_INT8 , GxB_ANY_DIV_INT8 , + GxB_MIN_DIV_INT16 , GxB_MAX_DIV_INT16 , GxB_PLUS_DIV_INT16 , GxB_TIMES_DIV_INT16 , GxB_ANY_DIV_INT16 , + GxB_MIN_DIV_INT32 , GxB_MAX_DIV_INT32 , GxB_PLUS_DIV_INT32 , GxB_TIMES_DIV_INT32 , GxB_ANY_DIV_INT32 , + GxB_MIN_DIV_INT64 , GxB_MAX_DIV_INT64 , GxB_PLUS_DIV_INT64 , GxB_TIMES_DIV_INT64 , GxB_ANY_DIV_INT64 , + GxB_MIN_DIV_UINT8 , GxB_MAX_DIV_UINT8 , GxB_PLUS_DIV_UINT8 , GxB_TIMES_DIV_UINT8 , GxB_ANY_DIV_UINT8 , + GxB_MIN_DIV_UINT16 , GxB_MAX_DIV_UINT16 , GxB_PLUS_DIV_UINT16 , GxB_TIMES_DIV_UINT16 , GxB_ANY_DIV_UINT16 , + GxB_MIN_DIV_UINT32 , GxB_MAX_DIV_UINT32 , GxB_PLUS_DIV_UINT32 , GxB_TIMES_DIV_UINT32 , GxB_ANY_DIV_UINT32 , + GxB_MIN_DIV_UINT64 , GxB_MAX_DIV_UINT64 , GxB_PLUS_DIV_UINT64 , GxB_TIMES_DIV_UINT64 , GxB_ANY_DIV_UINT64 , + GxB_MIN_DIV_FP32 , GxB_MAX_DIV_FP32 , GxB_PLUS_DIV_FP32 , GxB_TIMES_DIV_FP32 , GxB_ANY_DIV_FP32 , + GxB_MIN_DIV_FP64 , GxB_MAX_DIV_FP64 , GxB_PLUS_DIV_FP64 , GxB_TIMES_DIV_FP64 , GxB_ANY_DIV_FP64 , -GrB_Info GrB_Vector_build_UINT64 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const uint64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = RDIV (x,y), all types x,y,z the same: + GxB_MIN_RDIV_INT8 , GxB_MAX_RDIV_INT8 , GxB_PLUS_RDIV_INT8 , GxB_TIMES_RDIV_INT8 , GxB_ANY_RDIV_INT8 , + GxB_MIN_RDIV_INT16 , GxB_MAX_RDIV_INT16 , GxB_PLUS_RDIV_INT16 , GxB_TIMES_RDIV_INT16 , GxB_ANY_RDIV_INT16 , + GxB_MIN_RDIV_INT32 , GxB_MAX_RDIV_INT32 , GxB_PLUS_RDIV_INT32 , GxB_TIMES_RDIV_INT32 , GxB_ANY_RDIV_INT32 , + GxB_MIN_RDIV_INT64 , GxB_MAX_RDIV_INT64 , GxB_PLUS_RDIV_INT64 , GxB_TIMES_RDIV_INT64 , GxB_ANY_RDIV_INT64 , + GxB_MIN_RDIV_UINT8 , GxB_MAX_RDIV_UINT8 , GxB_PLUS_RDIV_UINT8 , GxB_TIMES_RDIV_UINT8 , GxB_ANY_RDIV_UINT8 , + GxB_MIN_RDIV_UINT16 , GxB_MAX_RDIV_UINT16 , GxB_PLUS_RDIV_UINT16 , GxB_TIMES_RDIV_UINT16 , GxB_ANY_RDIV_UINT16 , + GxB_MIN_RDIV_UINT32 , GxB_MAX_RDIV_UINT32 , GxB_PLUS_RDIV_UINT32 , GxB_TIMES_RDIV_UINT32 , GxB_ANY_RDIV_UINT32 , + GxB_MIN_RDIV_UINT64 , GxB_MAX_RDIV_UINT64 , GxB_PLUS_RDIV_UINT64 , GxB_TIMES_RDIV_UINT64 , GxB_ANY_RDIV_UINT64 , + GxB_MIN_RDIV_FP32 , GxB_MAX_RDIV_FP32 , GxB_PLUS_RDIV_FP32 , GxB_TIMES_RDIV_FP32 , GxB_ANY_RDIV_FP32 , + GxB_MIN_RDIV_FP64 , GxB_MAX_RDIV_FP64 , GxB_PLUS_RDIV_FP64 , GxB_TIMES_RDIV_FP64 , GxB_ANY_RDIV_FP64 , -GrB_Info GrB_Vector_build_FP32 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const float *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = RMINUS (x,y), all types x,y,z the same: + GxB_MIN_RMINUS_INT8 , GxB_MAX_RMINUS_INT8 , GxB_PLUS_RMINUS_INT8 , GxB_TIMES_RMINUS_INT8 , GxB_ANY_RMINUS_INT8 , + GxB_MIN_RMINUS_INT16 , GxB_MAX_RMINUS_INT16 , GxB_PLUS_RMINUS_INT16 , GxB_TIMES_RMINUS_INT16 , GxB_ANY_RMINUS_INT16 , + GxB_MIN_RMINUS_INT32 , GxB_MAX_RMINUS_INT32 , GxB_PLUS_RMINUS_INT32 , GxB_TIMES_RMINUS_INT32 , GxB_ANY_RMINUS_INT32 , + GxB_MIN_RMINUS_INT64 , GxB_MAX_RMINUS_INT64 , GxB_PLUS_RMINUS_INT64 , GxB_TIMES_RMINUS_INT64 , GxB_ANY_RMINUS_INT64 , + GxB_MIN_RMINUS_UINT8 , GxB_MAX_RMINUS_UINT8 , GxB_PLUS_RMINUS_UINT8 , GxB_TIMES_RMINUS_UINT8 , GxB_ANY_RMINUS_UINT8 , + GxB_MIN_RMINUS_UINT16 , GxB_MAX_RMINUS_UINT16 , GxB_PLUS_RMINUS_UINT16 , GxB_TIMES_RMINUS_UINT16, GxB_ANY_RMINUS_UINT16 , + GxB_MIN_RMINUS_UINT32 , GxB_MAX_RMINUS_UINT32 , GxB_PLUS_RMINUS_UINT32 , GxB_TIMES_RMINUS_UINT32, GxB_ANY_RMINUS_UINT32 , + GxB_MIN_RMINUS_UINT64 , GxB_MAX_RMINUS_UINT64 , GxB_PLUS_RMINUS_UINT64 , GxB_TIMES_RMINUS_UINT64, GxB_ANY_RMINUS_UINT64 , + GxB_MIN_RMINUS_FP32 , GxB_MAX_RMINUS_FP32 , GxB_PLUS_RMINUS_FP32 , GxB_TIMES_RMINUS_FP32 , GxB_ANY_RMINUS_FP32 , + GxB_MIN_RMINUS_FP64 , GxB_MAX_RMINUS_FP64 , GxB_PLUS_RMINUS_FP64 , GxB_TIMES_RMINUS_FP64 , GxB_ANY_RMINUS_FP64 , -GrB_Info GrB_Vector_build_FP64 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const double *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = ISEQ (x,y), all types x,y,z the same: + GxB_MIN_ISEQ_INT8 , GxB_MAX_ISEQ_INT8 , GxB_PLUS_ISEQ_INT8 , GxB_TIMES_ISEQ_INT8 , GxB_ANY_ISEQ_INT8 , + GxB_MIN_ISEQ_INT16 , GxB_MAX_ISEQ_INT16 , GxB_PLUS_ISEQ_INT16 , GxB_TIMES_ISEQ_INT16 , GxB_ANY_ISEQ_INT16 , + GxB_MIN_ISEQ_INT32 , GxB_MAX_ISEQ_INT32 , GxB_PLUS_ISEQ_INT32 , GxB_TIMES_ISEQ_INT32 , GxB_ANY_ISEQ_INT32 , + GxB_MIN_ISEQ_INT64 , GxB_MAX_ISEQ_INT64 , GxB_PLUS_ISEQ_INT64 , GxB_TIMES_ISEQ_INT64 , GxB_ANY_ISEQ_INT64 , + GxB_MIN_ISEQ_UINT8 , GxB_MAX_ISEQ_UINT8 , GxB_PLUS_ISEQ_UINT8 , GxB_TIMES_ISEQ_UINT8 , GxB_ANY_ISEQ_UINT8 , + GxB_MIN_ISEQ_UINT16 , GxB_MAX_ISEQ_UINT16 , GxB_PLUS_ISEQ_UINT16 , GxB_TIMES_ISEQ_UINT16 , GxB_ANY_ISEQ_UINT16 , + GxB_MIN_ISEQ_UINT32 , GxB_MAX_ISEQ_UINT32 , GxB_PLUS_ISEQ_UINT32 , GxB_TIMES_ISEQ_UINT32 , GxB_ANY_ISEQ_UINT32 , + GxB_MIN_ISEQ_UINT64 , GxB_MAX_ISEQ_UINT64 , GxB_PLUS_ISEQ_UINT64 , GxB_TIMES_ISEQ_UINT64 , GxB_ANY_ISEQ_UINT64 , + GxB_MIN_ISEQ_FP32 , GxB_MAX_ISEQ_FP32 , GxB_PLUS_ISEQ_FP32 , GxB_TIMES_ISEQ_FP32 , GxB_ANY_ISEQ_FP32 , + GxB_MIN_ISEQ_FP64 , GxB_MAX_ISEQ_FP64 , GxB_PLUS_ISEQ_FP64 , GxB_TIMES_ISEQ_FP64 , GxB_ANY_ISEQ_FP64 , -GrB_Info GxB_Vector_build_FC32 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const GxB_FC32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = ISNE (x,y), all types x,y,z the same: + GxB_MIN_ISNE_INT8 , GxB_MAX_ISNE_INT8 , GxB_PLUS_ISNE_INT8 , GxB_TIMES_ISNE_INT8 , GxB_ANY_ISNE_INT8 , + GxB_MIN_ISNE_INT16 , GxB_MAX_ISNE_INT16 , GxB_PLUS_ISNE_INT16 , GxB_TIMES_ISNE_INT16 , GxB_ANY_ISNE_INT16 , + GxB_MIN_ISNE_INT32 , GxB_MAX_ISNE_INT32 , GxB_PLUS_ISNE_INT32 , GxB_TIMES_ISNE_INT32 , GxB_ANY_ISNE_INT32 , + GxB_MIN_ISNE_INT64 , GxB_MAX_ISNE_INT64 , GxB_PLUS_ISNE_INT64 , GxB_TIMES_ISNE_INT64 , GxB_ANY_ISNE_INT64 , + GxB_MIN_ISNE_UINT8 , GxB_MAX_ISNE_UINT8 , GxB_PLUS_ISNE_UINT8 , GxB_TIMES_ISNE_UINT8 , GxB_ANY_ISNE_UINT8 , + GxB_MIN_ISNE_UINT16 , GxB_MAX_ISNE_UINT16 , GxB_PLUS_ISNE_UINT16 , GxB_TIMES_ISNE_UINT16 , GxB_ANY_ISNE_UINT16 , + GxB_MIN_ISNE_UINT32 , GxB_MAX_ISNE_UINT32 , GxB_PLUS_ISNE_UINT32 , GxB_TIMES_ISNE_UINT32 , GxB_ANY_ISNE_UINT32 , + GxB_MIN_ISNE_UINT64 , GxB_MAX_ISNE_UINT64 , GxB_PLUS_ISNE_UINT64 , GxB_TIMES_ISNE_UINT64 , GxB_ANY_ISNE_UINT64 , + GxB_MIN_ISNE_FP32 , GxB_MAX_ISNE_FP32 , GxB_PLUS_ISNE_FP32 , GxB_TIMES_ISNE_FP32 , GxB_ANY_ISNE_FP32 , + GxB_MIN_ISNE_FP64 , GxB_MAX_ISNE_FP64 , GxB_PLUS_ISNE_FP64 , GxB_TIMES_ISNE_FP64 , GxB_ANY_ISNE_FP64 , -GrB_Info GxB_Vector_build_FC64 // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const GxB_FC64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = ISGT (x,y), all types x,y,z the same: + GxB_MIN_ISGT_INT8 , GxB_MAX_ISGT_INT8 , GxB_PLUS_ISGT_INT8 , GxB_TIMES_ISGT_INT8 , GxB_ANY_ISGT_INT8 , + GxB_MIN_ISGT_INT16 , GxB_MAX_ISGT_INT16 , GxB_PLUS_ISGT_INT16 , GxB_TIMES_ISGT_INT16 , GxB_ANY_ISGT_INT16 , + GxB_MIN_ISGT_INT32 , GxB_MAX_ISGT_INT32 , GxB_PLUS_ISGT_INT32 , GxB_TIMES_ISGT_INT32 , GxB_ANY_ISGT_INT32 , + GxB_MIN_ISGT_INT64 , GxB_MAX_ISGT_INT64 , GxB_PLUS_ISGT_INT64 , GxB_TIMES_ISGT_INT64 , GxB_ANY_ISGT_INT64 , + GxB_MIN_ISGT_UINT8 , GxB_MAX_ISGT_UINT8 , GxB_PLUS_ISGT_UINT8 , GxB_TIMES_ISGT_UINT8 , GxB_ANY_ISGT_UINT8 , + GxB_MIN_ISGT_UINT16 , GxB_MAX_ISGT_UINT16 , GxB_PLUS_ISGT_UINT16 , GxB_TIMES_ISGT_UINT16 , GxB_ANY_ISGT_UINT16 , + GxB_MIN_ISGT_UINT32 , GxB_MAX_ISGT_UINT32 , GxB_PLUS_ISGT_UINT32 , GxB_TIMES_ISGT_UINT32 , GxB_ANY_ISGT_UINT32 , + GxB_MIN_ISGT_UINT64 , GxB_MAX_ISGT_UINT64 , GxB_PLUS_ISGT_UINT64 , GxB_TIMES_ISGT_UINT64 , GxB_ANY_ISGT_UINT64 , + GxB_MIN_ISGT_FP32 , GxB_MAX_ISGT_FP32 , GxB_PLUS_ISGT_FP32 , GxB_TIMES_ISGT_FP32 , GxB_ANY_ISGT_FP32 , + GxB_MIN_ISGT_FP64 , GxB_MAX_ISGT_FP64 , GxB_PLUS_ISGT_FP64 , GxB_TIMES_ISGT_FP64 , GxB_ANY_ISGT_FP64 , -GrB_Info GrB_Vector_build_UDT // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const void *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; + // semirings with multiply op: z = ISLT (x,y), all types x,y,z the same: + GxB_MIN_ISLT_INT8 , GxB_MAX_ISLT_INT8 , GxB_PLUS_ISLT_INT8 , GxB_TIMES_ISLT_INT8 , GxB_ANY_ISLT_INT8 , + GxB_MIN_ISLT_INT16 , GxB_MAX_ISLT_INT16 , GxB_PLUS_ISLT_INT16 , GxB_TIMES_ISLT_INT16 , GxB_ANY_ISLT_INT16 , + GxB_MIN_ISLT_INT32 , GxB_MAX_ISLT_INT32 , GxB_PLUS_ISLT_INT32 , GxB_TIMES_ISLT_INT32 , GxB_ANY_ISLT_INT32 , + GxB_MIN_ISLT_INT64 , GxB_MAX_ISLT_INT64 , GxB_PLUS_ISLT_INT64 , GxB_TIMES_ISLT_INT64 , GxB_ANY_ISLT_INT64 , + GxB_MIN_ISLT_UINT8 , GxB_MAX_ISLT_UINT8 , GxB_PLUS_ISLT_UINT8 , GxB_TIMES_ISLT_UINT8 , GxB_ANY_ISLT_UINT8 , + GxB_MIN_ISLT_UINT16 , GxB_MAX_ISLT_UINT16 , GxB_PLUS_ISLT_UINT16 , GxB_TIMES_ISLT_UINT16 , GxB_ANY_ISLT_UINT16 , + GxB_MIN_ISLT_UINT32 , GxB_MAX_ISLT_UINT32 , GxB_PLUS_ISLT_UINT32 , GxB_TIMES_ISLT_UINT32 , GxB_ANY_ISLT_UINT32 , + GxB_MIN_ISLT_UINT64 , GxB_MAX_ISLT_UINT64 , GxB_PLUS_ISLT_UINT64 , GxB_TIMES_ISLT_UINT64 , GxB_ANY_ISLT_UINT64 , + GxB_MIN_ISLT_FP32 , GxB_MAX_ISLT_FP32 , GxB_PLUS_ISLT_FP32 , GxB_TIMES_ISLT_FP32 , GxB_ANY_ISLT_FP32 , + GxB_MIN_ISLT_FP64 , GxB_MAX_ISLT_FP64 , GxB_PLUS_ISLT_FP64 , GxB_TIMES_ISLT_FP64 , GxB_ANY_ISLT_FP64 , -GrB_Info GxB_Vector_build_Scalar // build a vector from (i,scalar) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - GrB_Scalar scalar, // value for all tuples - GrB_Index nvals // number of tuples -) ; + // semirings with multiply op: z = ISGE (x,y), all types x,y,z the same: + GxB_MIN_ISGE_INT8 , GxB_MAX_ISGE_INT8 , GxB_PLUS_ISGE_INT8 , GxB_TIMES_ISGE_INT8 , GxB_ANY_ISGE_INT8 , + GxB_MIN_ISGE_INT16 , GxB_MAX_ISGE_INT16 , GxB_PLUS_ISGE_INT16 , GxB_TIMES_ISGE_INT16 , GxB_ANY_ISGE_INT16 , + GxB_MIN_ISGE_INT32 , GxB_MAX_ISGE_INT32 , GxB_PLUS_ISGE_INT32 , GxB_TIMES_ISGE_INT32 , GxB_ANY_ISGE_INT32 , + GxB_MIN_ISGE_INT64 , GxB_MAX_ISGE_INT64 , GxB_PLUS_ISGE_INT64 , GxB_TIMES_ISGE_INT64 , GxB_ANY_ISGE_INT64 , + GxB_MIN_ISGE_UINT8 , GxB_MAX_ISGE_UINT8 , GxB_PLUS_ISGE_UINT8 , GxB_TIMES_ISGE_UINT8 , GxB_ANY_ISGE_UINT8 , + GxB_MIN_ISGE_UINT16 , GxB_MAX_ISGE_UINT16 , GxB_PLUS_ISGE_UINT16 , GxB_TIMES_ISGE_UINT16 , GxB_ANY_ISGE_UINT16 , + GxB_MIN_ISGE_UINT32 , GxB_MAX_ISGE_UINT32 , GxB_PLUS_ISGE_UINT32 , GxB_TIMES_ISGE_UINT32 , GxB_ANY_ISGE_UINT32 , + GxB_MIN_ISGE_UINT64 , GxB_MAX_ISGE_UINT64 , GxB_PLUS_ISGE_UINT64 , GxB_TIMES_ISGE_UINT64 , GxB_ANY_ISGE_UINT64 , + GxB_MIN_ISGE_FP32 , GxB_MAX_ISGE_FP32 , GxB_PLUS_ISGE_FP32 , GxB_TIMES_ISGE_FP32 , GxB_ANY_ISGE_FP32 , + GxB_MIN_ISGE_FP64 , GxB_MAX_ISGE_FP64 , GxB_PLUS_ISGE_FP64 , GxB_TIMES_ISGE_FP64 , GxB_ANY_ISGE_FP64 , -// Type-generic version: X can be a pointer to any supported C type or void * -// for a user-defined type. + // semirings with multiply op: z = ISLE (x,y), all types x,y,z the same: + GxB_MIN_ISLE_INT8 , GxB_MAX_ISLE_INT8 , GxB_PLUS_ISLE_INT8 , GxB_TIMES_ISLE_INT8 , GxB_ANY_ISLE_INT8 , + GxB_MIN_ISLE_INT16 , GxB_MAX_ISLE_INT16 , GxB_PLUS_ISLE_INT16 , GxB_TIMES_ISLE_INT16 , GxB_ANY_ISLE_INT16 , + GxB_MIN_ISLE_INT32 , GxB_MAX_ISLE_INT32 , GxB_PLUS_ISLE_INT32 , GxB_TIMES_ISLE_INT32 , GxB_ANY_ISLE_INT32 , + GxB_MIN_ISLE_INT64 , GxB_MAX_ISLE_INT64 , GxB_PLUS_ISLE_INT64 , GxB_TIMES_ISLE_INT64 , GxB_ANY_ISLE_INT64 , + GxB_MIN_ISLE_UINT8 , GxB_MAX_ISLE_UINT8 , GxB_PLUS_ISLE_UINT8 , GxB_TIMES_ISLE_UINT8 , GxB_ANY_ISLE_UINT8 , + GxB_MIN_ISLE_UINT16 , GxB_MAX_ISLE_UINT16 , GxB_PLUS_ISLE_UINT16 , GxB_TIMES_ISLE_UINT16 , GxB_ANY_ISLE_UINT16 , + GxB_MIN_ISLE_UINT32 , GxB_MAX_ISLE_UINT32 , GxB_PLUS_ISLE_UINT32 , GxB_TIMES_ISLE_UINT32 , GxB_ANY_ISLE_UINT32 , + GxB_MIN_ISLE_UINT64 , GxB_MAX_ISLE_UINT64 , GxB_PLUS_ISLE_UINT64 , GxB_TIMES_ISLE_UINT64 , GxB_ANY_ISLE_UINT64 , + GxB_MIN_ISLE_FP32 , GxB_MAX_ISLE_FP32 , GxB_PLUS_ISLE_FP32 , GxB_TIMES_ISLE_FP32 , GxB_ANY_ISLE_FP32 , + GxB_MIN_ISLE_FP64 , GxB_MAX_ISLE_FP64 , GxB_PLUS_ISLE_FP64 , GxB_TIMES_ISLE_FP64 , GxB_ANY_ISLE_FP64 , -/* -GrB_Info GrB_Vector_build // build a vector from (I,X) tuples -( - GrB_Vector w, // vector to build - const GrB_Index *Ilist, // array of row indices of tuples - const *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; -*/ + // semirings with multiply op: z = LOR (x,y), all types x,y,z the same: + GxB_MIN_LOR_INT8 , GxB_MAX_LOR_INT8 , GxB_PLUS_LOR_INT8 , GxB_TIMES_LOR_INT8 , GxB_ANY_LOR_INT8 , + GxB_MIN_LOR_INT16 , GxB_MAX_LOR_INT16 , GxB_PLUS_LOR_INT16 , GxB_TIMES_LOR_INT16 , GxB_ANY_LOR_INT16 , + GxB_MIN_LOR_INT32 , GxB_MAX_LOR_INT32 , GxB_PLUS_LOR_INT32 , GxB_TIMES_LOR_INT32 , GxB_ANY_LOR_INT32 , + GxB_MIN_LOR_INT64 , GxB_MAX_LOR_INT64 , GxB_PLUS_LOR_INT64 , GxB_TIMES_LOR_INT64 , GxB_ANY_LOR_INT64 , + GxB_MIN_LOR_UINT8 , GxB_MAX_LOR_UINT8 , GxB_PLUS_LOR_UINT8 , GxB_TIMES_LOR_UINT8 , GxB_ANY_LOR_UINT8 , + GxB_MIN_LOR_UINT16 , GxB_MAX_LOR_UINT16 , GxB_PLUS_LOR_UINT16 , GxB_TIMES_LOR_UINT16 , GxB_ANY_LOR_UINT16 , + GxB_MIN_LOR_UINT32 , GxB_MAX_LOR_UINT32 , GxB_PLUS_LOR_UINT32 , GxB_TIMES_LOR_UINT32 , GxB_ANY_LOR_UINT32 , + GxB_MIN_LOR_UINT64 , GxB_MAX_LOR_UINT64 , GxB_PLUS_LOR_UINT64 , GxB_TIMES_LOR_UINT64 , GxB_ANY_LOR_UINT64 , + GxB_MIN_LOR_FP32 , GxB_MAX_LOR_FP32 , GxB_PLUS_LOR_FP32 , GxB_TIMES_LOR_FP32 , GxB_ANY_LOR_FP32 , + GxB_MIN_LOR_FP64 , GxB_MAX_LOR_FP64 , GxB_PLUS_LOR_FP64 , GxB_TIMES_LOR_FP64 , GxB_ANY_LOR_FP64 , -#if GxB_STDC_VERSION >= 201112L -#define GrB_Vector_build(w,Ilist,X,nvals,dup) \ - _Generic \ - ( \ - (X), \ - GB_PCASES (GrB, Vector_build) \ - ) \ - (w, Ilist, ((const void *) (X)), nvals, dup) -#endif + // semirings with multiply op: z = LAND (x,y), all types x,y,z the same: + GxB_MIN_LAND_INT8 , GxB_MAX_LAND_INT8 , GxB_PLUS_LAND_INT8 , GxB_TIMES_LAND_INT8 , GxB_ANY_LAND_INT8 , + GxB_MIN_LAND_INT16 , GxB_MAX_LAND_INT16 , GxB_PLUS_LAND_INT16 , GxB_TIMES_LAND_INT16 , GxB_ANY_LAND_INT16 , + GxB_MIN_LAND_INT32 , GxB_MAX_LAND_INT32 , GxB_PLUS_LAND_INT32 , GxB_TIMES_LAND_INT32 , GxB_ANY_LAND_INT32 , + GxB_MIN_LAND_INT64 , GxB_MAX_LAND_INT64 , GxB_PLUS_LAND_INT64 , GxB_TIMES_LAND_INT64 , GxB_ANY_LAND_INT64 , + GxB_MIN_LAND_UINT8 , GxB_MAX_LAND_UINT8 , GxB_PLUS_LAND_UINT8 , GxB_TIMES_LAND_UINT8 , GxB_ANY_LAND_UINT8 , + GxB_MIN_LAND_UINT16 , GxB_MAX_LAND_UINT16 , GxB_PLUS_LAND_UINT16 , GxB_TIMES_LAND_UINT16 , GxB_ANY_LAND_UINT16 , + GxB_MIN_LAND_UINT32 , GxB_MAX_LAND_UINT32 , GxB_PLUS_LAND_UINT32 , GxB_TIMES_LAND_UINT32 , GxB_ANY_LAND_UINT32 , + GxB_MIN_LAND_UINT64 , GxB_MAX_LAND_UINT64 , GxB_PLUS_LAND_UINT64 , GxB_TIMES_LAND_UINT64 , GxB_ANY_LAND_UINT64 , + GxB_MIN_LAND_FP32 , GxB_MAX_LAND_FP32 , GxB_PLUS_LAND_FP32 , GxB_TIMES_LAND_FP32 , GxB_ANY_LAND_FP32 , + GxB_MIN_LAND_FP64 , GxB_MAX_LAND_FP64 , GxB_PLUS_LAND_FP64 , GxB_TIMES_LAND_FP64 , GxB_ANY_LAND_FP64 , + + // semirings with multiply op: z = LXOR (x,y), all types x,y,z the same: + GxB_MIN_LXOR_INT8 , GxB_MAX_LXOR_INT8 , GxB_PLUS_LXOR_INT8 , GxB_TIMES_LXOR_INT8 , GxB_ANY_LXOR_INT8 , + GxB_MIN_LXOR_INT16 , GxB_MAX_LXOR_INT16 , GxB_PLUS_LXOR_INT16 , GxB_TIMES_LXOR_INT16 , GxB_ANY_LXOR_INT16 , + GxB_MIN_LXOR_INT32 , GxB_MAX_LXOR_INT32 , GxB_PLUS_LXOR_INT32 , GxB_TIMES_LXOR_INT32 , GxB_ANY_LXOR_INT32 , + GxB_MIN_LXOR_INT64 , GxB_MAX_LXOR_INT64 , GxB_PLUS_LXOR_INT64 , GxB_TIMES_LXOR_INT64 , GxB_ANY_LXOR_INT64 , + GxB_MIN_LXOR_UINT8 , GxB_MAX_LXOR_UINT8 , GxB_PLUS_LXOR_UINT8 , GxB_TIMES_LXOR_UINT8 , GxB_ANY_LXOR_UINT8 , + GxB_MIN_LXOR_UINT16 , GxB_MAX_LXOR_UINT16 , GxB_PLUS_LXOR_UINT16 , GxB_TIMES_LXOR_UINT16 , GxB_ANY_LXOR_UINT16 , + GxB_MIN_LXOR_UINT32 , GxB_MAX_LXOR_UINT32 , GxB_PLUS_LXOR_UINT32 , GxB_TIMES_LXOR_UINT32 , GxB_ANY_LXOR_UINT32 , + GxB_MIN_LXOR_UINT64 , GxB_MAX_LXOR_UINT64 , GxB_PLUS_LXOR_UINT64 , GxB_TIMES_LXOR_UINT64 , GxB_ANY_LXOR_UINT64 , + GxB_MIN_LXOR_FP32 , GxB_MAX_LXOR_FP32 , GxB_PLUS_LXOR_FP32 , GxB_TIMES_LXOR_FP32 , GxB_ANY_LXOR_FP32 , + GxB_MIN_LXOR_FP64 , GxB_MAX_LXOR_FP64 , GxB_PLUS_LXOR_FP64 , GxB_TIMES_LXOR_FP64 , GxB_ANY_LXOR_FP64 , //------------------------------------------------------------------------------ -// GrB_Vector_setElement +// 300 semirings with a comparator TxT -> bool, where T is non-Boolean //------------------------------------------------------------------------------ -// Set a single scalar in a vector, w(i) = x, typecasting from the type of x to -// the type of w as needed. - -GrB_Info GrB_Vector_setElement_BOOL // w(i) = x -( - GrB_Vector w, // vector to modify - bool x, // scalar to assign to w(i) - GrB_Index i // row index -) ; - -GrB_Info GrB_Vector_setElement_INT8 // w(i) = x -( - GrB_Vector w, // vector to modify - int8_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // In the 4th column the GxB_EQ_*_* semirings could also be called + // GxB_LXNOR_*_*, since the EQ and LXNOR boolean operators are identical + // but those names are not included. -GrB_Info GrB_Vector_setElement_UINT8 // w(i) = x -( - GrB_Vector w, // vector to modify - uint8_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; - -GrB_Info GrB_Vector_setElement_INT16 // w(i) = x -( - GrB_Vector w, // vector to modify - int16_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = EQ (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_EQ_INT8 , GxB_LAND_EQ_INT8 , GxB_LXOR_EQ_INT8 , GxB_EQ_EQ_INT8 , GxB_ANY_EQ_INT8 , + GxB_LOR_EQ_INT16 , GxB_LAND_EQ_INT16 , GxB_LXOR_EQ_INT16 , GxB_EQ_EQ_INT16 , GxB_ANY_EQ_INT16 , + GxB_LOR_EQ_INT32 , GxB_LAND_EQ_INT32 , GxB_LXOR_EQ_INT32 , GxB_EQ_EQ_INT32 , GxB_ANY_EQ_INT32 , + GxB_LOR_EQ_INT64 , GxB_LAND_EQ_INT64 , GxB_LXOR_EQ_INT64 , GxB_EQ_EQ_INT64 , GxB_ANY_EQ_INT64 , + GxB_LOR_EQ_UINT8 , GxB_LAND_EQ_UINT8 , GxB_LXOR_EQ_UINT8 , GxB_EQ_EQ_UINT8 , GxB_ANY_EQ_UINT8 , + GxB_LOR_EQ_UINT16 , GxB_LAND_EQ_UINT16 , GxB_LXOR_EQ_UINT16 , GxB_EQ_EQ_UINT16 , GxB_ANY_EQ_UINT16 , + GxB_LOR_EQ_UINT32 , GxB_LAND_EQ_UINT32 , GxB_LXOR_EQ_UINT32 , GxB_EQ_EQ_UINT32 , GxB_ANY_EQ_UINT32 , + GxB_LOR_EQ_UINT64 , GxB_LAND_EQ_UINT64 , GxB_LXOR_EQ_UINT64 , GxB_EQ_EQ_UINT64 , GxB_ANY_EQ_UINT64 , + GxB_LOR_EQ_FP32 , GxB_LAND_EQ_FP32 , GxB_LXOR_EQ_FP32 , GxB_EQ_EQ_FP32 , GxB_ANY_EQ_FP32 , + GxB_LOR_EQ_FP64 , GxB_LAND_EQ_FP64 , GxB_LXOR_EQ_FP64 , GxB_EQ_EQ_FP64 , GxB_ANY_EQ_FP64 , -GrB_Info GrB_Vector_setElement_UINT16 // w(i) = x -( - GrB_Vector w, // vector to modify - uint16_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = NE (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_NE_INT8 , GxB_LAND_NE_INT8 , GxB_LXOR_NE_INT8 , GxB_EQ_NE_INT8 , GxB_ANY_NE_INT8 , + GxB_LOR_NE_INT16 , GxB_LAND_NE_INT16 , GxB_LXOR_NE_INT16 , GxB_EQ_NE_INT16 , GxB_ANY_NE_INT16 , + GxB_LOR_NE_INT32 , GxB_LAND_NE_INT32 , GxB_LXOR_NE_INT32 , GxB_EQ_NE_INT32 , GxB_ANY_NE_INT32 , + GxB_LOR_NE_INT64 , GxB_LAND_NE_INT64 , GxB_LXOR_NE_INT64 , GxB_EQ_NE_INT64 , GxB_ANY_NE_INT64 , + GxB_LOR_NE_UINT8 , GxB_LAND_NE_UINT8 , GxB_LXOR_NE_UINT8 , GxB_EQ_NE_UINT8 , GxB_ANY_NE_UINT8 , + GxB_LOR_NE_UINT16 , GxB_LAND_NE_UINT16 , GxB_LXOR_NE_UINT16 , GxB_EQ_NE_UINT16 , GxB_ANY_NE_UINT16 , + GxB_LOR_NE_UINT32 , GxB_LAND_NE_UINT32 , GxB_LXOR_NE_UINT32 , GxB_EQ_NE_UINT32 , GxB_ANY_NE_UINT32 , + GxB_LOR_NE_UINT64 , GxB_LAND_NE_UINT64 , GxB_LXOR_NE_UINT64 , GxB_EQ_NE_UINT64 , GxB_ANY_NE_UINT64 , + GxB_LOR_NE_FP32 , GxB_LAND_NE_FP32 , GxB_LXOR_NE_FP32 , GxB_EQ_NE_FP32 , GxB_ANY_NE_FP32 , + GxB_LOR_NE_FP64 , GxB_LAND_NE_FP64 , GxB_LXOR_NE_FP64 , GxB_EQ_NE_FP64 , GxB_ANY_NE_FP64 , -GrB_Info GrB_Vector_setElement_INT32 // w(i) = x -( - GrB_Vector w, // vector to modify - int32_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = GT (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_GT_INT8 , GxB_LAND_GT_INT8 , GxB_LXOR_GT_INT8 , GxB_EQ_GT_INT8 , GxB_ANY_GT_INT8 , + GxB_LOR_GT_INT16 , GxB_LAND_GT_INT16 , GxB_LXOR_GT_INT16 , GxB_EQ_GT_INT16 , GxB_ANY_GT_INT16 , + GxB_LOR_GT_INT32 , GxB_LAND_GT_INT32 , GxB_LXOR_GT_INT32 , GxB_EQ_GT_INT32 , GxB_ANY_GT_INT32 , + GxB_LOR_GT_INT64 , GxB_LAND_GT_INT64 , GxB_LXOR_GT_INT64 , GxB_EQ_GT_INT64 , GxB_ANY_GT_INT64 , + GxB_LOR_GT_UINT8 , GxB_LAND_GT_UINT8 , GxB_LXOR_GT_UINT8 , GxB_EQ_GT_UINT8 , GxB_ANY_GT_UINT8 , + GxB_LOR_GT_UINT16 , GxB_LAND_GT_UINT16 , GxB_LXOR_GT_UINT16 , GxB_EQ_GT_UINT16 , GxB_ANY_GT_UINT16 , + GxB_LOR_GT_UINT32 , GxB_LAND_GT_UINT32 , GxB_LXOR_GT_UINT32 , GxB_EQ_GT_UINT32 , GxB_ANY_GT_UINT32 , + GxB_LOR_GT_UINT64 , GxB_LAND_GT_UINT64 , GxB_LXOR_GT_UINT64 , GxB_EQ_GT_UINT64 , GxB_ANY_GT_UINT64 , + GxB_LOR_GT_FP32 , GxB_LAND_GT_FP32 , GxB_LXOR_GT_FP32 , GxB_EQ_GT_FP32 , GxB_ANY_GT_FP32 , + GxB_LOR_GT_FP64 , GxB_LAND_GT_FP64 , GxB_LXOR_GT_FP64 , GxB_EQ_GT_FP64 , GxB_ANY_GT_FP64 , -GrB_Info GrB_Vector_setElement_UINT32 // w(i) = x -( - GrB_Vector w, // vector to modify - uint32_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = LT (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_LT_INT8 , GxB_LAND_LT_INT8 , GxB_LXOR_LT_INT8 , GxB_EQ_LT_INT8 , GxB_ANY_LT_INT8 , + GxB_LOR_LT_INT16 , GxB_LAND_LT_INT16 , GxB_LXOR_LT_INT16 , GxB_EQ_LT_INT16 , GxB_ANY_LT_INT16 , + GxB_LOR_LT_INT32 , GxB_LAND_LT_INT32 , GxB_LXOR_LT_INT32 , GxB_EQ_LT_INT32 , GxB_ANY_LT_INT32 , + GxB_LOR_LT_INT64 , GxB_LAND_LT_INT64 , GxB_LXOR_LT_INT64 , GxB_EQ_LT_INT64 , GxB_ANY_LT_INT64 , + GxB_LOR_LT_UINT8 , GxB_LAND_LT_UINT8 , GxB_LXOR_LT_UINT8 , GxB_EQ_LT_UINT8 , GxB_ANY_LT_UINT8 , + GxB_LOR_LT_UINT16 , GxB_LAND_LT_UINT16 , GxB_LXOR_LT_UINT16 , GxB_EQ_LT_UINT16 , GxB_ANY_LT_UINT16 , + GxB_LOR_LT_UINT32 , GxB_LAND_LT_UINT32 , GxB_LXOR_LT_UINT32 , GxB_EQ_LT_UINT32 , GxB_ANY_LT_UINT32 , + GxB_LOR_LT_UINT64 , GxB_LAND_LT_UINT64 , GxB_LXOR_LT_UINT64 , GxB_EQ_LT_UINT64 , GxB_ANY_LT_UINT64 , + GxB_LOR_LT_FP32 , GxB_LAND_LT_FP32 , GxB_LXOR_LT_FP32 , GxB_EQ_LT_FP32 , GxB_ANY_LT_FP32 , + GxB_LOR_LT_FP64 , GxB_LAND_LT_FP64 , GxB_LXOR_LT_FP64 , GxB_EQ_LT_FP64 , GxB_ANY_LT_FP64 , -GrB_Info GrB_Vector_setElement_INT64 // w(i) = x -( - GrB_Vector w, // vector to modify - int64_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = GE (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_GE_INT8 , GxB_LAND_GE_INT8 , GxB_LXOR_GE_INT8 , GxB_EQ_GE_INT8 , GxB_ANY_GE_INT8 , + GxB_LOR_GE_INT16 , GxB_LAND_GE_INT16 , GxB_LXOR_GE_INT16 , GxB_EQ_GE_INT16 , GxB_ANY_GE_INT16 , + GxB_LOR_GE_INT32 , GxB_LAND_GE_INT32 , GxB_LXOR_GE_INT32 , GxB_EQ_GE_INT32 , GxB_ANY_GE_INT32 , + GxB_LOR_GE_INT64 , GxB_LAND_GE_INT64 , GxB_LXOR_GE_INT64 , GxB_EQ_GE_INT64 , GxB_ANY_GE_INT64 , + GxB_LOR_GE_UINT8 , GxB_LAND_GE_UINT8 , GxB_LXOR_GE_UINT8 , GxB_EQ_GE_UINT8 , GxB_ANY_GE_UINT8 , + GxB_LOR_GE_UINT16 , GxB_LAND_GE_UINT16 , GxB_LXOR_GE_UINT16 , GxB_EQ_GE_UINT16 , GxB_ANY_GE_UINT16 , + GxB_LOR_GE_UINT32 , GxB_LAND_GE_UINT32 , GxB_LXOR_GE_UINT32 , GxB_EQ_GE_UINT32 , GxB_ANY_GE_UINT32 , + GxB_LOR_GE_UINT64 , GxB_LAND_GE_UINT64 , GxB_LXOR_GE_UINT64 , GxB_EQ_GE_UINT64 , GxB_ANY_GE_UINT64 , + GxB_LOR_GE_FP32 , GxB_LAND_GE_FP32 , GxB_LXOR_GE_FP32 , GxB_EQ_GE_FP32 , GxB_ANY_GE_FP32 , + GxB_LOR_GE_FP64 , GxB_LAND_GE_FP64 , GxB_LXOR_GE_FP64 , GxB_EQ_GE_FP64 , GxB_ANY_GE_FP64 , -GrB_Info GrB_Vector_setElement_UINT64 // w(i) = x -( - GrB_Vector w, // vector to modify - uint64_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // semirings with multiply op: z = LE (x,y), where z is boolean and x,y are given by the suffix: + GxB_LOR_LE_INT8 , GxB_LAND_LE_INT8 , GxB_LXOR_LE_INT8 , GxB_EQ_LE_INT8 , GxB_ANY_LE_INT8 , + GxB_LOR_LE_INT16 , GxB_LAND_LE_INT16 , GxB_LXOR_LE_INT16 , GxB_EQ_LE_INT16 , GxB_ANY_LE_INT16 , + GxB_LOR_LE_INT32 , GxB_LAND_LE_INT32 , GxB_LXOR_LE_INT32 , GxB_EQ_LE_INT32 , GxB_ANY_LE_INT32 , + GxB_LOR_LE_INT64 , GxB_LAND_LE_INT64 , GxB_LXOR_LE_INT64 , GxB_EQ_LE_INT64 , GxB_ANY_LE_INT64 , + GxB_LOR_LE_UINT8 , GxB_LAND_LE_UINT8 , GxB_LXOR_LE_UINT8 , GxB_EQ_LE_UINT8 , GxB_ANY_LE_UINT8 , + GxB_LOR_LE_UINT16 , GxB_LAND_LE_UINT16 , GxB_LXOR_LE_UINT16 , GxB_EQ_LE_UINT16 , GxB_ANY_LE_UINT16 , + GxB_LOR_LE_UINT32 , GxB_LAND_LE_UINT32 , GxB_LXOR_LE_UINT32 , GxB_EQ_LE_UINT32 , GxB_ANY_LE_UINT32 , + GxB_LOR_LE_UINT64 , GxB_LAND_LE_UINT64 , GxB_LXOR_LE_UINT64 , GxB_EQ_LE_UINT64 , GxB_ANY_LE_UINT64 , + GxB_LOR_LE_FP32 , GxB_LAND_LE_FP32 , GxB_LXOR_LE_FP32 , GxB_EQ_LE_FP32 , GxB_ANY_LE_FP32 , + GxB_LOR_LE_FP64 , GxB_LAND_LE_FP64 , GxB_LXOR_LE_FP64 , GxB_EQ_LE_FP64 , GxB_ANY_LE_FP64 , -GrB_Info GrB_Vector_setElement_FP32 // w(i) = x -( - GrB_Vector w, // vector to modify - float x, // scalar to assign to w(i) - GrB_Index i // row index -) ; +//------------------------------------------------------------------------------ +// 55 semirings with purely Boolean types, bool x bool -> bool +//------------------------------------------------------------------------------ -GrB_Info GrB_Vector_setElement_FP64 // w(i) = x -( - GrB_Vector w, // vector to modify - double x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // Note that lor_pair, land_pair, and eq_pair are all identical to any_pair. + // These 3 are marked below. GxB_EQ_*_BOOL could be called + // GxB_LXNOR_*_BOOL, and GxB_*_EQ_BOOL could be called GxB_*_LXNOR_BOOL, + // but those names are not included. -GrB_Info GxB_Vector_setElement_FC32 // w(i) = x -( - GrB_Vector w, // vector to modify - GxB_FC32_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // purely boolean semirings in the form GxB_(add monoid)_(multiply operator)_BOOL: + GxB_LOR_FIRST_BOOL , GxB_LAND_FIRST_BOOL , GxB_LXOR_FIRST_BOOL , GxB_EQ_FIRST_BOOL , GxB_ANY_FIRST_BOOL , + GxB_LOR_SECOND_BOOL , GxB_LAND_SECOND_BOOL , GxB_LXOR_SECOND_BOOL , GxB_EQ_SECOND_BOOL , GxB_ANY_SECOND_BOOL , + GxB_LOR_PAIR_BOOL/**/ , GxB_LAND_PAIR_BOOL/**/ , GxB_LXOR_PAIR_BOOL , GxB_EQ_PAIR_BOOL/**/ , GxB_ANY_PAIR_BOOL , + GxB_LOR_LOR_BOOL , GxB_LAND_LOR_BOOL , GxB_LXOR_LOR_BOOL , GxB_EQ_LOR_BOOL , GxB_ANY_LOR_BOOL , + GxB_LOR_LAND_BOOL , GxB_LAND_LAND_BOOL , GxB_LXOR_LAND_BOOL , GxB_EQ_LAND_BOOL , GxB_ANY_LAND_BOOL , + GxB_LOR_LXOR_BOOL , GxB_LAND_LXOR_BOOL , GxB_LXOR_LXOR_BOOL , GxB_EQ_LXOR_BOOL , GxB_ANY_LXOR_BOOL , + GxB_LOR_EQ_BOOL , GxB_LAND_EQ_BOOL , GxB_LXOR_EQ_BOOL , GxB_EQ_EQ_BOOL , GxB_ANY_EQ_BOOL , + GxB_LOR_GT_BOOL , GxB_LAND_GT_BOOL , GxB_LXOR_GT_BOOL , GxB_EQ_GT_BOOL , GxB_ANY_GT_BOOL , + GxB_LOR_LT_BOOL , GxB_LAND_LT_BOOL , GxB_LXOR_LT_BOOL , GxB_EQ_LT_BOOL , GxB_ANY_LT_BOOL , + GxB_LOR_GE_BOOL , GxB_LAND_GE_BOOL , GxB_LXOR_GE_BOOL , GxB_EQ_GE_BOOL , GxB_ANY_GE_BOOL , + GxB_LOR_LE_BOOL , GxB_LAND_LE_BOOL , GxB_LXOR_LE_BOOL , GxB_EQ_LE_BOOL , GxB_ANY_LE_BOOL , -GrB_Info GxB_Vector_setElement_FC64 // w(i) = x -( - GrB_Vector w, // vector to modify - GxB_FC64_t x, // scalar to assign to w(i) - GrB_Index i // row index -) ; +//------------------------------------------------------------------------------ +// 54 complex semirings +//------------------------------------------------------------------------------ -GrB_Info GrB_Vector_setElement_UDT // w(i) = x -( - GrB_Vector w, // vector to modify - void *x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // 3 monoids (plus, times, any), 2 types (FC32 and FC64), and 9 + // multiplicative operators. -GrB_Info GrB_Vector_setElement_Scalar // w(i) = x -( - GrB_Vector w, // vector to modify - GrB_Scalar x, // scalar to assign to w(i) - GrB_Index i // row index -) ; + // Note that times_pair is identical to any_pair. + // These 2 are marked below. -// Type-generic version: x can be any supported C type or void * for a -// user-defined type. + GxB_PLUS_FIRST_FC32 , GxB_TIMES_FIRST_FC32 , GxB_ANY_FIRST_FC32 , + GxB_PLUS_FIRST_FC64 , GxB_TIMES_FIRST_FC64 , GxB_ANY_FIRST_FC64 , -/* -GrB_Info GrB_Vector_setElement // w(i) = x -( - GrB_Vector w, // vector to modify - x, // scalar to assign to w(i) - GrB_Index i // row index -) ; -*/ + GxB_PLUS_SECOND_FC32 , GxB_TIMES_SECOND_FC32 , GxB_ANY_SECOND_FC32 , + GxB_PLUS_SECOND_FC64 , GxB_TIMES_SECOND_FC64 , GxB_ANY_SECOND_FC64 , -#if GxB_STDC_VERSION >= 201112L -#define GrB_Vector_setElement(w,x,i) \ - _Generic \ - ( \ - (x), \ - GB_CASES (GrB, Vector_setElement), \ - default: GrB_Vector_setElement_Scalar \ - ) \ - (w, x, i) -#endif + GxB_PLUS_PAIR_FC32 , GxB_TIMES_PAIR_FC32/**/, GxB_ANY_PAIR_FC32 , + GxB_PLUS_PAIR_FC64 , GxB_TIMES_PAIR_FC64/**/, GxB_ANY_PAIR_FC64 , -//------------------------------------------------------------------------------ -// GrB_Vector_extractElement -//------------------------------------------------------------------------------ + GxB_PLUS_PLUS_FC32 , GxB_TIMES_PLUS_FC32 , GxB_ANY_PLUS_FC32 , + GxB_PLUS_PLUS_FC64 , GxB_TIMES_PLUS_FC64 , GxB_ANY_PLUS_FC64 , -// Extract a single entry from a vector, x = v(i), typecasting from the type of -// v to the type of x as needed. + GxB_PLUS_MINUS_FC32 , GxB_TIMES_MINUS_FC32 , GxB_ANY_MINUS_FC32 , + GxB_PLUS_MINUS_FC64 , GxB_TIMES_MINUS_FC64 , GxB_ANY_MINUS_FC64 , -GrB_Info GrB_Vector_extractElement_BOOL // x = v(i) -( - bool *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_PLUS_TIMES_FC32 , GxB_TIMES_TIMES_FC32 , GxB_ANY_TIMES_FC32 , + GxB_PLUS_TIMES_FC64 , GxB_TIMES_TIMES_FC64 , GxB_ANY_TIMES_FC64 , -GrB_Info GrB_Vector_extractElement_INT8 // x = v(i) -( - int8_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_PLUS_DIV_FC32 , GxB_TIMES_DIV_FC32 , GxB_ANY_DIV_FC32 , + GxB_PLUS_DIV_FC64 , GxB_TIMES_DIV_FC64 , GxB_ANY_DIV_FC64 , -GrB_Info GrB_Vector_extractElement_UINT8 // x = v(i) -( - uint8_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_PLUS_RDIV_FC32 , GxB_TIMES_RDIV_FC32 , GxB_ANY_RDIV_FC32 , + GxB_PLUS_RDIV_FC64 , GxB_TIMES_RDIV_FC64 , GxB_ANY_RDIV_FC64 , -GrB_Info GrB_Vector_extractElement_INT16 // x = v(i) -( - int16_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_PLUS_RMINUS_FC32 , GxB_TIMES_RMINUS_FC32 , GxB_ANY_RMINUS_FC32 , + GxB_PLUS_RMINUS_FC64 , GxB_TIMES_RMINUS_FC64 , GxB_ANY_RMINUS_FC64 , -GrB_Info GrB_Vector_extractElement_UINT16 // x = v(i) -( - uint16_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; +//------------------------------------------------------------------------------ +// 64 bitwise semirings +//------------------------------------------------------------------------------ -GrB_Info GrB_Vector_extractElement_INT32 // x = v(i) -( - int32_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + // monoids: (BOR, BAND, BXOR, BXNOR) x + // mult: (BOR, BAND, BXOR, BXNOR) x + // types: (UINT8, UINT16, UINT32, UINT64) -GrB_Info GrB_Vector_extractElement_UINT32 // x = v(i) -( - uint32_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_BOR_BOR_UINT8 , GxB_BOR_BOR_UINT16 , GxB_BOR_BOR_UINT32 , GxB_BOR_BOR_UINT64 , + GxB_BOR_BAND_UINT8 , GxB_BOR_BAND_UINT16 , GxB_BOR_BAND_UINT32 , GxB_BOR_BAND_UINT64 , + GxB_BOR_BXOR_UINT8 , GxB_BOR_BXOR_UINT16 , GxB_BOR_BXOR_UINT32 , GxB_BOR_BXOR_UINT64 , + GxB_BOR_BXNOR_UINT8 , GxB_BOR_BXNOR_UINT16 , GxB_BOR_BXNOR_UINT32 , GxB_BOR_BXNOR_UINT64 , -GrB_Info GrB_Vector_extractElement_INT64 // x = v(i) -( - int64_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_BAND_BOR_UINT8 , GxB_BAND_BOR_UINT16 , GxB_BAND_BOR_UINT32 , GxB_BAND_BOR_UINT64 , + GxB_BAND_BAND_UINT8 , GxB_BAND_BAND_UINT16 , GxB_BAND_BAND_UINT32 , GxB_BAND_BAND_UINT64 , + GxB_BAND_BXOR_UINT8 , GxB_BAND_BXOR_UINT16 , GxB_BAND_BXOR_UINT32 , GxB_BAND_BXOR_UINT64 , + GxB_BAND_BXNOR_UINT8 , GxB_BAND_BXNOR_UINT16 , GxB_BAND_BXNOR_UINT32 , GxB_BAND_BXNOR_UINT64 , -GrB_Info GrB_Vector_extractElement_UINT64 // x = v(i) -( - uint64_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_BXOR_BOR_UINT8 , GxB_BXOR_BOR_UINT16 , GxB_BXOR_BOR_UINT32 , GxB_BXOR_BOR_UINT64 , + GxB_BXOR_BAND_UINT8 , GxB_BXOR_BAND_UINT16 , GxB_BXOR_BAND_UINT32 , GxB_BXOR_BAND_UINT64 , + GxB_BXOR_BXOR_UINT8 , GxB_BXOR_BXOR_UINT16 , GxB_BXOR_BXOR_UINT32 , GxB_BXOR_BXOR_UINT64 , + GxB_BXOR_BXNOR_UINT8 , GxB_BXOR_BXNOR_UINT16 , GxB_BXOR_BXNOR_UINT32 , GxB_BXOR_BXNOR_UINT64 , -GrB_Info GrB_Vector_extractElement_FP32 // x = v(i) -( - float *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_BXNOR_BOR_UINT8 , GxB_BXNOR_BOR_UINT16 , GxB_BXNOR_BOR_UINT32 , GxB_BXNOR_BOR_UINT64 , + GxB_BXNOR_BAND_UINT8 , GxB_BXNOR_BAND_UINT16 , GxB_BXNOR_BAND_UINT32 , GxB_BXNOR_BAND_UINT64 , + GxB_BXNOR_BXOR_UINT8 , GxB_BXNOR_BXOR_UINT16 , GxB_BXNOR_BXOR_UINT32 , GxB_BXNOR_BXOR_UINT64 , + GxB_BXNOR_BXNOR_UINT8 , GxB_BXNOR_BXNOR_UINT16 , GxB_BXNOR_BXNOR_UINT32 , GxB_BXNOR_BXNOR_UINT64 , -GrB_Info GrB_Vector_extractElement_FP64 // x = v(i) -( - double *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; +//------------------------------------------------------------------------------ +// 80 positional semirings +//------------------------------------------------------------------------------ -GrB_Info GxB_Vector_extractElement_FC32 // x = v(i) -( - GxB_FC32_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + // monoids: (MIN, MAX, ANY, PLUS, TIMES) x + // mult: (FIRSTI, FIRSTI1, FIRSTJ, FIRSTJ1, SECONDI, SECONDI1, SECONDJ, SECONDJ1) + // types: (INT32, INT64) -GrB_Info GxB_Vector_extractElement_FC64 // x = v(i) -( - GxB_FC64_t *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_MIN_FIRSTI_INT32, GxB_MIN_FIRSTI_INT64, + GxB_MAX_FIRSTI_INT32, GxB_MAX_FIRSTI_INT64, + GxB_ANY_FIRSTI_INT32, GxB_ANY_FIRSTI_INT64, + GxB_PLUS_FIRSTI_INT32, GxB_PLUS_FIRSTI_INT64, + GxB_TIMES_FIRSTI_INT32, GxB_TIMES_FIRSTI_INT64, -GrB_Info GrB_Vector_extractElement_UDT // x = v(i) -( - void *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_MIN_FIRSTI1_INT32, GxB_MIN_FIRSTI1_INT64, + GxB_MAX_FIRSTI1_INT32, GxB_MAX_FIRSTI1_INT64, + GxB_ANY_FIRSTI1_INT32, GxB_ANY_FIRSTI1_INT64, + GxB_PLUS_FIRSTI1_INT32, GxB_PLUS_FIRSTI1_INT64, + GxB_TIMES_FIRSTI1_INT32, GxB_TIMES_FIRSTI1_INT64, -GrB_Info GrB_Vector_extractElement_Scalar // x = v(i) -( - GrB_Scalar x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; + GxB_MIN_FIRSTJ_INT32, GxB_MIN_FIRSTJ_INT64, + GxB_MAX_FIRSTJ_INT32, GxB_MAX_FIRSTJ_INT64, + GxB_ANY_FIRSTJ_INT32, GxB_ANY_FIRSTJ_INT64, + GxB_PLUS_FIRSTJ_INT32, GxB_PLUS_FIRSTJ_INT64, + GxB_TIMES_FIRSTJ_INT32, GxB_TIMES_FIRSTJ_INT64, -// Type-generic version: x can be a pointer to any supported C type or void * -// for a user-defined type. + GxB_MIN_FIRSTJ1_INT32, GxB_MIN_FIRSTJ1_INT64, + GxB_MAX_FIRSTJ1_INT32, GxB_MAX_FIRSTJ1_INT64, + GxB_ANY_FIRSTJ1_INT32, GxB_ANY_FIRSTJ1_INT64, + GxB_PLUS_FIRSTJ1_INT32, GxB_PLUS_FIRSTJ1_INT64, + GxB_TIMES_FIRSTJ1_INT32, GxB_TIMES_FIRSTJ1_INT64, -/* -GrB_Info GrB_Vector_extractElement // x = v(i) -( - *x, // scalar extracted - const GrB_Vector v, // vector to extract an entry from - GrB_Index i // row index -) ; -*/ + GxB_MIN_SECONDI_INT32, GxB_MIN_SECONDI_INT64, + GxB_MAX_SECONDI_INT32, GxB_MAX_SECONDI_INT64, + GxB_ANY_SECONDI_INT32, GxB_ANY_SECONDI_INT64, + GxB_PLUS_SECONDI_INT32, GxB_PLUS_SECONDI_INT64, + GxB_TIMES_SECONDI_INT32, GxB_TIMES_SECONDI_INT64, -#if GxB_STDC_VERSION >= 201112L -#define GrB_Vector_extractElement(x,v,i) \ - _Generic \ - ( \ - (x), \ - GB_PCASES (GrB, Vector_extractElement), \ - default: GrB_Vector_extractElement_Scalar \ - ) \ - (x, v, i) -#endif + GxB_MIN_SECONDI1_INT32, GxB_MIN_SECONDI1_INT64, + GxB_MAX_SECONDI1_INT32, GxB_MAX_SECONDI1_INT64, + GxB_ANY_SECONDI1_INT32, GxB_ANY_SECONDI1_INT64, + GxB_PLUS_SECONDI1_INT32, GxB_PLUS_SECONDI1_INT64, + GxB_TIMES_SECONDI1_INT32, GxB_TIMES_SECONDI1_INT64, -// GxB_Vector_isStoredElement determines if v(i) is present in the structure -// of the vector v, as a stored element. It does not return the value. It -// returns GrB_SUCCESS if the element is present, or GrB_NO_VALUE otherwise. + GxB_MIN_SECONDJ_INT32, GxB_MIN_SECONDJ_INT64, + GxB_MAX_SECONDJ_INT32, GxB_MAX_SECONDJ_INT64, + GxB_ANY_SECONDJ_INT32, GxB_ANY_SECONDJ_INT64, + GxB_PLUS_SECONDJ_INT32, GxB_PLUS_SECONDJ_INT64, + GxB_TIMES_SECONDJ_INT32, GxB_TIMES_SECONDJ_INT64, -GrB_Info GxB_Vector_isStoredElement // determine if v(i) is a stored element -( - const GrB_Vector v, // vector to check - GrB_Index i // row index -) ; + GxB_MIN_SECONDJ1_INT32, GxB_MIN_SECONDJ1_INT64, + GxB_MAX_SECONDJ1_INT32, GxB_MAX_SECONDJ1_INT64, + GxB_ANY_SECONDJ1_INT32, GxB_ANY_SECONDJ1_INT64, + GxB_PLUS_SECONDJ1_INT32, GxB_PLUS_SECONDJ1_INT64, + GxB_TIMES_SECONDJ1_INT32, GxB_TIMES_SECONDJ1_INT64 ; //------------------------------------------------------------------------------ -// GrB_Vector_removeElement +// GrB_* semirings //------------------------------------------------------------------------------ -// GrB_Vector_removeElement (v,i) removes the element v(i) from the vector v. - -GrB_Info GrB_Vector_removeElement -( - GrB_Vector v, // vector to remove an element from - GrB_Index i // index -) ; +// The v1.3 C API for GraphBLAS adds the following 124 predefined semirings, +// with GrB_* names. They are identical to 124 GxB_* semirings defined above, +// with the same name, except that GrB_LXNOR_LOR_SEMIRING_BOOL is identical to +// GxB_EQ_LOR_BOOL (since GrB_EQ_BOOL == GrB_LXNOR). The old names are listed +// below alongside each new name; the new GrB_* names are preferred. -//------------------------------------------------------------------------------ -// GrB_Vector_extractTuples -//------------------------------------------------------------------------------ +// 12 kinds of GrB_* semirings are available for all 10 real non-boolean types: -// Extracts all tuples from a vector, like [I,~,X] = find (v). If -// any parameter I and/or X is NULL, then that component is not extracted. For -// example, to extract just the row indices, pass I as non-NULL, and X as NULL. -// This is like [I,~,~] = find (v). + // PLUS_TIMES, PLUS_MIN, + // MIN_PLUS, MIN_TIMES, MIN_FIRST, MIN_SECOND, MIN_MAX, + // MAX_PLUS, MAX_TIMES, MAX_FIRST, MAX_SECOND, MAX_MIN -GrB_Info GrB_Vector_extractTuples_BOOL // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - bool *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; +// and 4 semirings for boolean only: -GrB_Info GrB_Vector_extractTuples_INT8 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - int8_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // LOR_LAND, LAND_LOR, LXOR_LAND, LXNOR_LOR. -GrB_Info GrB_Vector_extractTuples_UINT8 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - uint8_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; +// GxB_* semirings corresponding to the equivalent GrB_* semiring are +// historical. -GrB_Info GrB_Vector_extractTuples_INT16 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - int16_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; +GB_GLOBAL GrB_Semiring -GrB_Info GrB_Vector_extractTuples_UINT16 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - uint16_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + //-------------------------------------------------------------------------- + // 20 semirings with PLUS monoids + //-------------------------------------------------------------------------- -GrB_Info GrB_Vector_extractTuples_INT32 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - int32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // PLUS_TIMES semirings for all 10 real, non-boolean types: + GrB_PLUS_TIMES_SEMIRING_INT8, // GxB_PLUS_TIMES_INT8 + GrB_PLUS_TIMES_SEMIRING_INT16, // GxB_PLUS_TIMES_INT16 + GrB_PLUS_TIMES_SEMIRING_INT32, // GxB_PLUS_TIMES_INT32 + GrB_PLUS_TIMES_SEMIRING_INT64, // GxB_PLUS_TIMES_INT64 + GrB_PLUS_TIMES_SEMIRING_UINT8, // GxB_PLUS_TIMES_UINT8 + GrB_PLUS_TIMES_SEMIRING_UINT16, // GxB_PLUS_TIMES_UINT16 + GrB_PLUS_TIMES_SEMIRING_UINT32, // GxB_PLUS_TIMES_UINT32 + GrB_PLUS_TIMES_SEMIRING_UINT64, // GxB_PLUS_TIMES_UINT64 + GrB_PLUS_TIMES_SEMIRING_FP32, // GxB_PLUS_TIMES_FP32 + GrB_PLUS_TIMES_SEMIRING_FP64, // GxB_PLUS_TIMES_FP64 -GrB_Info GrB_Vector_extractTuples_UINT32 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - uint32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // PLUS_MIN semirings for all 10 real, non-boolean types: + GrB_PLUS_MIN_SEMIRING_INT8, // GxB_PLUS_MIN_INT8 + GrB_PLUS_MIN_SEMIRING_INT16, // GxB_PLUS_MIN_INT16 + GrB_PLUS_MIN_SEMIRING_INT32, // GxB_PLUS_MIN_INT32 + GrB_PLUS_MIN_SEMIRING_INT64, // GxB_PLUS_MIN_INT64 + GrB_PLUS_MIN_SEMIRING_UINT8, // GxB_PLUS_MIN_UINT8 + GrB_PLUS_MIN_SEMIRING_UINT16, // GxB_PLUS_MIN_UINT16 + GrB_PLUS_MIN_SEMIRING_UINT32, // GxB_PLUS_MIN_UINT32 + GrB_PLUS_MIN_SEMIRING_UINT64, // GxB_PLUS_MIN_UINT64 + GrB_PLUS_MIN_SEMIRING_FP32, // GxB_PLUS_MIN_FP32 + GrB_PLUS_MIN_SEMIRING_FP64, // GxB_PLUS_MIN_FP64 -GrB_Info GrB_Vector_extractTuples_INT64 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - int64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + //-------------------------------------------------------------------------- + // 50 semirings with MIN monoids + //-------------------------------------------------------------------------- -GrB_Info GrB_Vector_extractTuples_UINT64 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - uint64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_PLUS semirings for all 10 real, non-boolean types: + GrB_MIN_PLUS_SEMIRING_INT8, // GxB_MIN_PLUS_INT8 + GrB_MIN_PLUS_SEMIRING_INT16, // GxB_MIN_PLUS_INT16 + GrB_MIN_PLUS_SEMIRING_INT32, // GxB_MIN_PLUS_INT32 + GrB_MIN_PLUS_SEMIRING_INT64, // GxB_MIN_PLUS_INT64 + GrB_MIN_PLUS_SEMIRING_UINT8, // GxB_MIN_PLUS_UINT8 + GrB_MIN_PLUS_SEMIRING_UINT16, // GxB_MIN_PLUS_UINT16 + GrB_MIN_PLUS_SEMIRING_UINT32, // GxB_MIN_PLUS_UINT32 + GrB_MIN_PLUS_SEMIRING_UINT64, // GxB_MIN_PLUS_UINT64 + GrB_MIN_PLUS_SEMIRING_FP32, // GxB_MIN_PLUS_FP32 + GrB_MIN_PLUS_SEMIRING_FP64, // GxB_MIN_PLUS_FP64 -GrB_Info GrB_Vector_extractTuples_FP32 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - float *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_TIMES semirings for all 10 real, non-boolean types: + GrB_MIN_TIMES_SEMIRING_INT8, // GxB_MIN_TIMES_INT8 + GrB_MIN_TIMES_SEMIRING_INT16, // GxB_MIN_TIMES_INT16 + GrB_MIN_TIMES_SEMIRING_INT32, // GxB_MIN_TIMES_INT32 + GrB_MIN_TIMES_SEMIRING_INT64, // GxB_MIN_TIMES_INT64 + GrB_MIN_TIMES_SEMIRING_UINT8, // GxB_MIN_TIMES_UINT8 + GrB_MIN_TIMES_SEMIRING_UINT16, // GxB_MIN_TIMES_UINT16 + GrB_MIN_TIMES_SEMIRING_UINT32, // GxB_MIN_TIMES_UINT32 + GrB_MIN_TIMES_SEMIRING_UINT64, // GxB_MIN_TIMES_UINT64 + GrB_MIN_TIMES_SEMIRING_FP32, // GxB_MIN_TIMES_FP32 + GrB_MIN_TIMES_SEMIRING_FP64, // GxB_MIN_TIMES_FP64 -GrB_Info GrB_Vector_extractTuples_FP64 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - double *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_FIRST semirings for all 10 real, non-boolean types: + GrB_MIN_FIRST_SEMIRING_INT8, // GxB_MIN_FIRST_INT8 + GrB_MIN_FIRST_SEMIRING_INT16, // GxB_MIN_FIRST_INT16 + GrB_MIN_FIRST_SEMIRING_INT32, // GxB_MIN_FIRST_INT32 + GrB_MIN_FIRST_SEMIRING_INT64, // GxB_MIN_FIRST_INT64 + GrB_MIN_FIRST_SEMIRING_UINT8, // GxB_MIN_FIRST_UINT8 + GrB_MIN_FIRST_SEMIRING_UINT16, // GxB_MIN_FIRST_UINT16 + GrB_MIN_FIRST_SEMIRING_UINT32, // GxB_MIN_FIRST_UINT32 + GrB_MIN_FIRST_SEMIRING_UINT64, // GxB_MIN_FIRST_UINT64 + GrB_MIN_FIRST_SEMIRING_FP32, // GxB_MIN_FIRST_FP32 + GrB_MIN_FIRST_SEMIRING_FP64, // GxB_MIN_FIRST_FP64 -GrB_Info GxB_Vector_extractTuples_FC32 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - GxB_FC32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_SECOND semirings for all 10 real, non-boolean types: + GrB_MIN_SECOND_SEMIRING_INT8, // GxB_MIN_SECOND_INT8 + GrB_MIN_SECOND_SEMIRING_INT16, // GxB_MIN_SECOND_INT16 + GrB_MIN_SECOND_SEMIRING_INT32, // GxB_MIN_SECOND_INT32 + GrB_MIN_SECOND_SEMIRING_INT64, // GxB_MIN_SECOND_INT64 + GrB_MIN_SECOND_SEMIRING_UINT8, // GxB_MIN_SECOND_UINT8 + GrB_MIN_SECOND_SEMIRING_UINT16, // GxB_MIN_SECOND_UINT16 + GrB_MIN_SECOND_SEMIRING_UINT32, // GxB_MIN_SECOND_UINT32 + GrB_MIN_SECOND_SEMIRING_UINT64, // GxB_MIN_SECOND_UINT64 + GrB_MIN_SECOND_SEMIRING_FP32, // GxB_MIN_SECOND_FP32 + GrB_MIN_SECOND_SEMIRING_FP64, // GxB_MIN_SECOND_FP64 -GrB_Info GxB_Vector_extractTuples_FC64 // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - GxB_FC64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + // MIN_MAX semirings for all 10 real, non-boolean types: + GrB_MIN_MAX_SEMIRING_INT8, // GxB_MIN_MAX_INT8 + GrB_MIN_MAX_SEMIRING_INT16, // GxB_MIN_MAX_INT16 + GrB_MIN_MAX_SEMIRING_INT32, // GxB_MIN_MAX_INT32 + GrB_MIN_MAX_SEMIRING_INT64, // GxB_MIN_MAX_INT64 + GrB_MIN_MAX_SEMIRING_UINT8, // GxB_MIN_MAX_UINT8 + GrB_MIN_MAX_SEMIRING_UINT16, // GxB_MIN_MAX_UINT16 + GrB_MIN_MAX_SEMIRING_UINT32, // GxB_MIN_MAX_UINT32 + GrB_MIN_MAX_SEMIRING_UINT64, // GxB_MIN_MAX_UINT64 + GrB_MIN_MAX_SEMIRING_FP32, // GxB_MIN_MAX_FP32 + GrB_MIN_MAX_SEMIRING_FP64, // GxB_MIN_MAX_FP64 -GrB_Info GrB_Vector_extractTuples_UDT // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - void *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; + //-------------------------------------------------------------------------- + // 50 semirings with MAX monoids + //-------------------------------------------------------------------------- -// Type-generic version: X can be a pointer to any supported C type or void * -// for a user-defined type. + // MAX_PLUS semirings for all 10 real, non-boolean types + GrB_MAX_PLUS_SEMIRING_INT8, // GxB_MAX_PLUS_INT8 + GrB_MAX_PLUS_SEMIRING_INT16, // GxB_MAX_PLUS_INT16 + GrB_MAX_PLUS_SEMIRING_INT32, // GxB_MAX_PLUS_INT32 + GrB_MAX_PLUS_SEMIRING_INT64, // GxB_MAX_PLUS_INT64 + GrB_MAX_PLUS_SEMIRING_UINT8, // GxB_MAX_PLUS_UINT8 + GrB_MAX_PLUS_SEMIRING_UINT16, // GxB_MAX_PLUS_UINT16 + GrB_MAX_PLUS_SEMIRING_UINT32, // GxB_MAX_PLUS_UINT32 + GrB_MAX_PLUS_SEMIRING_UINT64, // GxB_MAX_PLUS_UINT64 + GrB_MAX_PLUS_SEMIRING_FP32, // GxB_MAX_PLUS_FP32 + GrB_MAX_PLUS_SEMIRING_FP64, // GxB_MAX_PLUS_FP64 -/* -GrB_Info GrB_Vector_extractTuples // [I,~,X] = find (v) -( - GrB_Index *Ilist, // array for returning row indices of tuples - *X, // array for returning values of tuples - GrB_Index *nvals, // I, X size on input; # tuples on output - const GrB_Vector v // vector to extract tuples from -) ; -*/ + // MAX_TIMES semirings for all 10 real, non-boolean types: + GrB_MAX_TIMES_SEMIRING_INT8, // GxB_MAX_TIMES_INT8 + GrB_MAX_TIMES_SEMIRING_INT16, // GxB_MAX_TIMES_INT16 + GrB_MAX_TIMES_SEMIRING_INT32, // GxB_MAX_TIMES_INT32 + GrB_MAX_TIMES_SEMIRING_INT64, // GxB_MAX_TIMES_INT64 + GrB_MAX_TIMES_SEMIRING_UINT8, // GxB_MAX_TIMES_UINT8 + GrB_MAX_TIMES_SEMIRING_UINT16, // GxB_MAX_TIMES_UINT16 + GrB_MAX_TIMES_SEMIRING_UINT32, // GxB_MAX_TIMES_UINT32 + GrB_MAX_TIMES_SEMIRING_UINT64, // GxB_MAX_TIMES_UINT64 + GrB_MAX_TIMES_SEMIRING_FP32, // GxB_MAX_TIMES_FP32 + GrB_MAX_TIMES_SEMIRING_FP64, // GxB_MAX_TIMES_FP64 -#if GxB_STDC_VERSION >= 201112L -#define GrB_Vector_extractTuples(Ilist,X,nvals,v) \ - _Generic \ - ( \ - (X), \ - GB_PCASES (GrB, Vector_extractTuples) \ - ) \ - (Ilist, X, nvals, v) -#endif + // MAX_FIRST semirings for all 10 real, non-boolean types: + GrB_MAX_FIRST_SEMIRING_INT8, // GxB_MAX_FIRST_INT8 + GrB_MAX_FIRST_SEMIRING_INT16, // GxB_MAX_FIRST_INT16 + GrB_MAX_FIRST_SEMIRING_INT32, // GxB_MAX_FIRST_INT32 + GrB_MAX_FIRST_SEMIRING_INT64, // GxB_MAX_FIRST_INT64 + GrB_MAX_FIRST_SEMIRING_UINT8, // GxB_MAX_FIRST_UINT8 + GrB_MAX_FIRST_SEMIRING_UINT16, // GxB_MAX_FIRST_UINT16 + GrB_MAX_FIRST_SEMIRING_UINT32, // GxB_MAX_FIRST_UINT32 + GrB_MAX_FIRST_SEMIRING_UINT64, // GxB_MAX_FIRST_UINT64 + GrB_MAX_FIRST_SEMIRING_FP32, // GxB_MAX_FIRST_FP32 + GrB_MAX_FIRST_SEMIRING_FP64, // GxB_MAX_FIRST_FP64 + + // MAX_SECOND semirings for all 10 real, non-boolean types: + GrB_MAX_SECOND_SEMIRING_INT8, // GxB_MAX_SECOND_INT8 + GrB_MAX_SECOND_SEMIRING_INT16, // GxB_MAX_SECOND_INT16 + GrB_MAX_SECOND_SEMIRING_INT32, // GxB_MAX_SECOND_INT32 + GrB_MAX_SECOND_SEMIRING_INT64, // GxB_MAX_SECOND_INT64 + GrB_MAX_SECOND_SEMIRING_UINT8, // GxB_MAX_SECOND_UINT8 + GrB_MAX_SECOND_SEMIRING_UINT16, // GxB_MAX_SECOND_UINT16 + GrB_MAX_SECOND_SEMIRING_UINT32, // GxB_MAX_SECOND_UINT32 + GrB_MAX_SECOND_SEMIRING_UINT64, // GxB_MAX_SECOND_UINT64 + GrB_MAX_SECOND_SEMIRING_FP32, // GxB_MAX_SECOND_FP32 + GrB_MAX_SECOND_SEMIRING_FP64, // GxB_MAX_SECOND_FP64 + + // MAX_MIN semirings for all 10 real, non-boolean types: + GrB_MAX_MIN_SEMIRING_INT8, // GxB_MAX_MIN_INT8 + GrB_MAX_MIN_SEMIRING_INT16, // GxB_MAX_MIN_INT16 + GrB_MAX_MIN_SEMIRING_INT32, // GxB_MAX_MIN_INT32 + GrB_MAX_MIN_SEMIRING_INT64, // GxB_MAX_MIN_INT64 + GrB_MAX_MIN_SEMIRING_UINT8, // GxB_MAX_MIN_UINT8 + GrB_MAX_MIN_SEMIRING_UINT16, // GxB_MAX_MIN_UINT16 + GrB_MAX_MIN_SEMIRING_UINT32, // GxB_MAX_MIN_UINT32 + GrB_MAX_MIN_SEMIRING_UINT64, // GxB_MAX_MIN_UINT64 + GrB_MAX_MIN_SEMIRING_FP32, // GxB_MAX_MIN_FP32 + GrB_MAX_MIN_SEMIRING_FP64, // GxB_MAX_MIN_FP64 + + //-------------------------------------------------------------------------- + // 4 boolean semirings: + //-------------------------------------------------------------------------- + + GrB_LOR_LAND_SEMIRING_BOOL, // GxB_LOR_LAND_BOOL + GrB_LAND_LOR_SEMIRING_BOOL, // GxB_LAND_LOR_BOOL + GrB_LXOR_LAND_SEMIRING_BOOL, // GxB_LXOR_LAND_BOOL + GrB_LXNOR_LOR_SEMIRING_BOOL ; // GxB_EQ_LOR_BOOL (note EQ == LXNOR) //============================================================================== -// GrB_Matrix: a GraphBLAS matrix +// GxB_fprint and GxB_print: print the contents of a GraphBLAS object //============================================================================== -typedef struct GB_Matrix_opaque *GrB_Matrix ; +typedef enum +{ + GxB_SILENT = 0, // nothing is printed, just check the object + GxB_SUMMARY = 1, // print a terse summary + GxB_SHORT = 2, // short description, about 30 entries of a matrix + GxB_COMPLETE = 3, // print the entire contents of the object + GxB_SHORT_VERBOSE = 4, // GxB_SHORT but with "%.15g" for doubles + GxB_COMPLETE_VERBOSE = 5 // GxB_COMPLETE but with "%.15g" for doubles +} +GxB_Print_Level ; -// These methods create, free, copy, and clear a matrix. The nrows, ncols, -// nvals, and type methods return basic information about a matrix. +//============================================================================== +// GrB import/export +//============================================================================== -GrB_Info GrB_Matrix_new // create a new matrix with no entries -( - GrB_Matrix *A, // handle of matrix to create - GrB_Type type, // type of matrix to create - GrB_Index nrows, // matrix dimension is nrows-by-ncols - GrB_Index ncols // (nrows and ncols must be <= GrB_INDEX_MAX+1) -) ; +// The GrB C API specification supports 3 formats: +typedef enum +{ + GrB_CSR_FORMAT = 0, // CSR format (equiv to GxB_SPARSE with GxB_BY_ROW) + GrB_CSC_FORMAT = 1, // CSC format (equiv to GxB_SPARSE with GxB_BY_COL) + GrB_COO_FORMAT = 2 // triplet format (like input to GrB*build) +} +GrB_Format ; -GrB_Info GrB_Matrix_dup // make an exact copy of a matrix -( - GrB_Matrix *C, // handle of output matrix to create - const GrB_Matrix A // input matrix to copy -) ; +//============================================================================== +// serialize/deserialize compression levels +//============================================================================== -GrB_Info GrB_Matrix_clear // clear a matrix of all entries; -( // type and dimensions remain unchanged - GrB_Matrix A // matrix to clear -) ; +// Currently implemented: no compression, LZ4, LZ4HC, and ZSTD +#define GxB_COMPRESSION_NONE -1 // no compression +#define GxB_COMPRESSION_DEFAULT 0 // ZSTD (level 1) +#define GxB_COMPRESSION_LZ4 1000 // LZ4 +#define GxB_COMPRESSION_LZ4HC 2000 // LZ4HC, with default level 9 +#define GxB_COMPRESSION_ZSTD 3000 // ZSTD, with default level 1 -GrB_Info GrB_Matrix_nrows // get the number of rows of a matrix +//============================================================================== +//=== GraphBLAS functions ====================================================== +//============================================================================== + +// All user-callable GrB* and GxB* functions in GraphBLAS are defined below. +// The GB_CUDA_FOLDER flag is only meant for use by the C++ functions in +// GraphBLAS/CUDA, since they do not need access these definitions. User +// applications have access to these methods. + +#if defined ( __cplusplus ) +extern "C" +{ +#endif + +#ifndef GB_CUDA_FOLDER + +//============================================================================== +// GrB_init / GrB_finalize +//============================================================================== + +GrB_Info GrB_init // start up GraphBLAS ( - GrB_Index *nrows, // matrix has nrows rows - const GrB_Matrix A // matrix to query + GrB_Mode mode // blocking or non-blocking mode, no GPU ) ; -GrB_Info GrB_Matrix_ncols // get the number of columns of a matrix +GrB_Info GxB_init // start up GraphBLAS and also define malloc, etc ( - GrB_Index *ncols, // matrix has ncols columns - const GrB_Matrix A // matrix to query + GrB_Mode mode, // blocking or non-blocking mode, + // with or without GPU + // pointers to memory management functions + void * (* user_malloc_function ) (size_t), + void * (* user_calloc_function ) (size_t, size_t), + void * (* user_realloc_function ) (void *, size_t), + void (* user_free_function ) (void *) ) ; -GrB_Info GrB_Matrix_nvals // get the number of entries in a matrix -( - GrB_Index *nvals, // matrix has nvals entries - const GrB_Matrix A // matrix to query -) ; +GrB_Info GrB_finalize (void) ; // finish GraphBLAS -// historical; use GrB_get instead: -GrB_Info GxB_Matrix_type (GrB_Type *type, const GrB_Matrix A) ; -GrB_Info GxB_Matrix_type_name (char *type_name, const GrB_Matrix A) ; +//============================================================================== +// GrB_getVersion: GraphBLAS C API version +//============================================================================== -GrB_Info GxB_Matrix_memoryUsage // return # of bytes used for a matrix +// GrB_getVersion provides a runtime access of the C API Version. Can also be +// done with two calls to GrB_Global_get_INT32 with the v2.1 C API: +// +// GrB_get (GrB_GLOBAL, &version, GrB_API_VER_MAJOR) ; +// GrB_get (GrB_GLOBAL, &subversion, GrB_API_VER_MINOR) ; + +GrB_Info GrB_getVersion // runtime access to C API version number ( - size_t *size, // # of bytes used by the matrix A - const GrB_Matrix A // matrix to query + unsigned int *version, // returns GRB_VERSION + unsigned int *subversion // returns GRB_SUBVERSION ) ; -GrB_Info GxB_Matrix_iso // return iso status of a matrix +//============================================================================== +// GrB_Descriptor: the GraphBLAS descriptor +//============================================================================== + +GrB_Info GrB_Descriptor_new // create a new descriptor ( - bool *iso, // true if the matrix is iso-valued - const GrB_Matrix A // matrix to query + GrB_Descriptor *descriptor // handle of descriptor to create ) ; -GrB_Info GrB_Matrix_free // free a matrix +// historical methods; use GrB_set and GrB_get instead: +GrB_Info GrB_Descriptor_set (GrB_Descriptor, GrB_Desc_Field, GrB_Desc_Value) ; +GrB_Info GxB_Descriptor_get (GrB_Desc_Value *, GrB_Descriptor, GrB_Desc_Field) ; +GrB_Info GxB_Desc_set (GrB_Descriptor, GrB_Desc_Field, ...) ; +GrB_Info GxB_Desc_set_INT32 (GrB_Descriptor, GrB_Desc_Field, int32_t) ; +GrB_Info GxB_Desc_set_FP64 (GrB_Descriptor, GrB_Desc_Field, double) ; +GrB_Info GxB_Desc_get (GrB_Descriptor, GrB_Desc_Field, ...) ; +GrB_Info GxB_Desc_get_INT32 (GrB_Descriptor, GrB_Desc_Field, int32_t *) ; +GrB_Info GxB_Desc_get_FP64 (GrB_Descriptor, GrB_Desc_Field, double *) ; + +GrB_Info GrB_Descriptor_free // free a descriptor ( - GrB_Matrix *A // handle of matrix to free + GrB_Descriptor *descriptor // handle of descriptor to free ) ; +//============================================================================== +// helper macros for polymorphic functions +//============================================================================== + +#define GB_CAT(w,x,y,z) w ## x ## y ## z +#define GB_CONCAT(w,x,y,z) GB_CAT (w, x, y, z) + +// methods for C scalars of various types +#define GB_CASES(prefix,func) \ + bool : GB_CONCAT ( prefix, _, func, _BOOL ), \ + int8_t : GB_CONCAT ( prefix, _, func, _INT8 ), \ + int16_t : GB_CONCAT ( prefix, _, func, _INT16 ), \ + int32_t : GB_CONCAT ( prefix, _, func, _INT32 ), \ + int64_t : GB_CONCAT ( prefix, _, func, _INT64 ), \ + uint8_t : GB_CONCAT ( prefix, _, func, _UINT8 ), \ + uint16_t : GB_CONCAT ( prefix, _, func, _UINT16 ), \ + uint32_t : GB_CONCAT ( prefix, _, func, _UINT32 ), \ + uint64_t : GB_CONCAT ( prefix, _, func, _UINT64 ), \ + float : GB_CONCAT ( prefix, _, func, _FP32 ), \ + double : GB_CONCAT ( prefix, _, func, _FP64 ), \ + GxB_FC32_t : GB_CONCAT ( GxB , _, func, _FC32 ), \ + GxB_FC64_t : GB_CONCAT ( GxB , _, func, _FC64 ), \ + const void * : GB_CONCAT ( prefix, _, func, _UDT ), \ + void * : GB_CONCAT ( prefix, _, func, _UDT ) + +// methods for C arrays of various types +#define GB_PCASES(prefix,func) \ + const bool * : GB_CONCAT ( prefix, _, func, _BOOL ), \ + bool * : GB_CONCAT ( prefix, _, func, _BOOL ), \ + const int8_t * : GB_CONCAT ( prefix, _, func, _INT8 ), \ + int8_t * : GB_CONCAT ( prefix, _, func, _INT8 ), \ + const int16_t * : GB_CONCAT ( prefix, _, func, _INT16 ), \ + int16_t * : GB_CONCAT ( prefix, _, func, _INT16 ), \ + const int32_t * : GB_CONCAT ( prefix, _, func, _INT32 ), \ + int32_t * : GB_CONCAT ( prefix, _, func, _INT32 ), \ + const int64_t * : GB_CONCAT ( prefix, _, func, _INT64 ), \ + int64_t * : GB_CONCAT ( prefix, _, func, _INT64 ), \ + const uint8_t * : GB_CONCAT ( prefix, _, func, _UINT8 ), \ + uint8_t * : GB_CONCAT ( prefix, _, func, _UINT8 ), \ + const uint16_t * : GB_CONCAT ( prefix, _, func, _UINT16 ), \ + uint16_t * : GB_CONCAT ( prefix, _, func, _UINT16 ), \ + const uint32_t * : GB_CONCAT ( prefix, _, func, _UINT32 ), \ + uint32_t * : GB_CONCAT ( prefix, _, func, _UINT32 ), \ + const uint64_t * : GB_CONCAT ( prefix, _, func, _UINT64 ), \ + uint64_t * : GB_CONCAT ( prefix, _, func, _UINT64 ), \ + const float * : GB_CONCAT ( prefix, _, func, _FP32 ), \ + float * : GB_CONCAT ( prefix, _, func, _FP32 ), \ + const double * : GB_CONCAT ( prefix, _, func, _FP64 ), \ + double * : GB_CONCAT ( prefix, _, func, _FP64 ), \ + const GxB_FC32_t * : GB_CONCAT ( GxB , _, func, _FC32 ), \ + GxB_FC32_t * : GB_CONCAT ( GxB , _, func, _FC32 ), \ + const GxB_FC64_t * : GB_CONCAT ( GxB , _, func, _FC64 ), \ + GxB_FC64_t * : GB_CONCAT ( GxB , _, func, _FC64 ), \ + const void * : GB_CONCAT ( prefix, _, func, _UDT ), \ + void * : GB_CONCAT ( prefix, _, func, _UDT ) + +//============================================================================== +// GrB_Type: data types +//============================================================================== + //------------------------------------------------------------------------------ -// GrB_Matrix_build +// GrB_Type_new: create a new type //------------------------------------------------------------------------------ -// GrB_Matrix_build: C = sparse (I,J,X), but using any -// associative operator to assemble duplicate entries. - -GrB_Info GrB_Matrix_build_BOOL // build a matrix from (I,J,X) tuples +GrB_Info GrB_Type_new // create a new GraphBLAS type ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const bool *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_Type *type, // handle of user type to create + size_t sizeof_ctype // size = sizeof (ctype) of the C type ) ; -GrB_Info GrB_Matrix_build_INT8 // build a matrix from (I,J,X) tuples +// GxB_Type_new creates a type with a name and definition that are known to +// GraphBLAS, as strings. The type_name is any valid string (max length of 128 +// characters, including the required null-terminating character) that may +// appear as the name of a C type created by a C "typedef" statement. It must +// not contain any white-space characters. Example, creating a type of size +// 16*4+4 = 68 bytes, with a 4-by-4 dense float array and a 32-bit integer: +// +// typedef struct { float x [4][4] ; int color ; } myquaternion ; +// GrB_Type MyQtype ; +// GxB_Type_new (&MyQtype, sizeof (myquaternion), "myquaternion", +// "typedef struct { float x [4][4] ; int color ; } myquaternion ;") ; +// +// The type_name and type_defn are both null-terminated strings. The two +// strings are required for best performance in the JIT (both on the CPU and +// GPU). User defined types created by GrB_Type_new will not work with a JIT. +// +// At most GxB_MAX_NAME_LEN characters are accessed in type_name; characters +// beyond that limit are silently ignored. + +GrB_Info GxB_Type_new // create a new named GraphBLAS type ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const int8_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_Type *type, // handle of user type to create + size_t sizeof_ctype, // size = sizeof (ctype) of the C type + const char *type_name, // name of the type (max 128 characters) + const char *type_defn // typedef for the type (no max length) ) ; -GrB_Info GrB_Matrix_build_UINT8 // build a matrix from (I,J,X) tuples +// historical; use GrB_get instead: +GrB_Info GxB_Type_name (char *type_name, const GrB_Type type) ; +GrB_Info GxB_Type_size (size_t *size, const GrB_Type type) ; + +GrB_Info GxB_Type_from_name // return the built-in GrB_Type from a name ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const uint8_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_Type *type, // built-in type, or NULL if user-defined. + // The name can be the underlying C type + // ("int8_t") or the GraphBLAS name + // ("GrB_INT8"). + const char *type_name // array of size at least GxB_MAX_NAME_LEN ) ; -GrB_Info GrB_Matrix_build_INT16 // build a matrix from (I,J,X) tuples +GrB_Info GrB_Type_free // free a user-defined type ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const int16_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_Type *type // handle of user-defined type to free ) ; -GrB_Info GrB_Matrix_build_UINT16 // build a matrix from (I,J,X) tuples +//============================================================================== +// GrB_UnaryOp: unary operators +//============================================================================== + +// GrB_UnaryOp_new creates a user-defined unary op (with no name or defn) +GrB_Info GrB_UnaryOp_new // create a new user-defined unary operator ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const uint16_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_UnaryOp *unaryop, // handle for the new unary operator + GxB_unary_function function, // pointer to the unary function + GrB_Type ztype, // type of output z + GrB_Type xtype // type of input x ) ; -GrB_Info GrB_Matrix_build_INT32 // build a matrix from (I,J,X) tuples +// GxB_UnaryOp_new creates a named and defined user-defined unary op. +GrB_Info GxB_UnaryOp_new // create a new user-defined unary operator ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const int32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_UnaryOp *unaryop, // handle for the new unary operator + GxB_unary_function function, // pointer to the unary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x + const char *unop_name, // name of the user function + const char *unop_defn // definition of the user function ) ; -GrB_Info GrB_Matrix_build_UINT32 // build a matrix from (I,J,X) tuples +// historical; use GrB_get instead: +GrB_Info GxB_UnaryOp_ztype (GrB_Type *ztype, GrB_UnaryOp unaryop) ; +GrB_Info GxB_UnaryOp_ztype_name (char *type_name, const GrB_UnaryOp unaryop) ; +GrB_Info GxB_UnaryOp_xtype (GrB_Type *xtype, GrB_UnaryOp unaryop) ; +GrB_Info GxB_UnaryOp_xtype_name (char *type_name, const GrB_UnaryOp unaryop) ; + +GrB_Info GrB_UnaryOp_free // free a user-created unary operator ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const uint32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_UnaryOp *unaryop // handle of unary operator to free ) ; -GrB_Info GrB_Matrix_build_INT64 // build a matrix from (I,J,X) tuples +//============================================================================== +// GrB_BinaryOp: binary operators +//============================================================================== + +// GrB_BinaryOp_new creates a user-defined binary op (no name or defn) +GrB_Info GrB_BinaryOp_new ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const int64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_BinaryOp *binaryop, // handle for the new binary operator + GxB_binary_function function, // pointer to the binary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x + GrB_Type ytype // type of input y ) ; -GrB_Info GrB_Matrix_build_UINT64 // build a matrix from (I,J,X) tuples -( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const uint64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; - -GrB_Info GrB_Matrix_build_FP32 // build a matrix from (I,J,X) tuples +// GxB_BinaryOp_new creates a named and defined user-defined binary op. +GrB_Info GxB_BinaryOp_new ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const float *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_BinaryOp *op, // handle for the new binary operator + GxB_binary_function function, // pointer to the binary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x + GrB_Type ytype, // type of input y + const char *binop_name, // name of the user function + const char *binop_defn // definition of the user function ) ; -GrB_Info GrB_Matrix_build_FP64 // build a matrix from (I,J,X) tuples -( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const double *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; +// historical; use GrB_get instead: +GrB_Info GxB_BinaryOp_ztype (GrB_Type *ztype, GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_ztype_name (char *type_name, const GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_xtype (GrB_Type *xtype, GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_xtype_name (char *type_name, const GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_ytype (GrB_Type *ytype, GrB_BinaryOp op) ; +GrB_Info GxB_BinaryOp_ytype_name (char *type_name, const GrB_BinaryOp op) ; -GrB_Info GxB_Matrix_build_FC32 // build a matrix from (I,J,X) tuples +GrB_Info GrB_BinaryOp_free // free a user-created binary operator ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const GxB_FC32_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_BinaryOp *binaryop // handle of binary operator to free ) ; -GrB_Info GxB_Matrix_build_FC64 // build a matrix from (I,J,X) tuples -( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const GxB_FC64_t *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates -) ; +//============================================================================== +// GxB_SelectOp: select operators (DEPRECATED: do not use) +//============================================================================== -GrB_Info GrB_Matrix_build_UDT // build a matrix from (I,J,X) tuples +// historical; use GrB_select and GrB_IndexUnaryOp instead: +GrB_Info GxB_SelectOp_xtype (GrB_Type *xtype, GxB_SelectOp selectop) ; +GrB_Info GxB_SelectOp_ttype (GrB_Type *ttype, GxB_SelectOp selectop) ; + +//============================================================================== +// GrB_IndexUnaryOp: a unary operator that depends on the row/col indices +//============================================================================== + +// GrB_IndexUnaryOp_new creates a user-defined unary op (no name or defn) + +GrB_Info GrB_IndexUnaryOp_new // create a new user-defined IndexUnary op ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const void *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator + GxB_index_unary_function function, // pointer to IndexUnary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x (the A(i,j) entry) + GrB_Type ytype // type of input y (the scalar) ) ; -GrB_Info GxB_Matrix_build_Scalar // build a matrix from (I,J,scalar) tuples +GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - GrB_Scalar scalar, // value for all tuples - GrB_Index nvals // number of tuples + GrB_IndexUnaryOp *op, // handle for the new IndexUnary operator + GxB_index_unary_function function, // pointer to index_unary function + GrB_Type ztype, // type of output z + GrB_Type xtype, // type of input x (the A(i,j) entry) + GrB_Type ytype, // type of input y (the scalar) + const char *idxop_name, // name of the user function + const char *idxop_defn // definition of the user function ) ; -// Type-generic version: X can be a pointer to any supported C type or void * -// for a user-defined type. +// historical; use GrB_get instead: +GrB_Info GxB_IndexUnaryOp_ztype_name (char *, const GrB_IndexUnaryOp op) ; +GrB_Info GxB_IndexUnaryOp_xtype_name (char *, const GrB_IndexUnaryOp op) ; +GrB_Info GxB_IndexUnaryOp_ytype_name (char *, const GrB_IndexUnaryOp op) ; -/* -GrB_Info GrB_Matrix_build // build a matrix from (I,J,X) tuples +GrB_Info GrB_IndexUnaryOp_free // free a user-created IndexUnaryOp ( - GrB_Matrix C, // matrix to build - const GrB_Index *Ilist, // array of row indices of tuples - const GrB_Index *J, // array of column indices of tuples - const *X, // array of values of tuples - GrB_Index nvals, // number of tuples - const GrB_BinaryOp dup // binary function to assemble duplicates + GrB_IndexUnaryOp *op // handle of IndexUnary to free ) ; -*/ - -#if GxB_STDC_VERSION >= 201112L -#define GrB_Matrix_build(C,Ilist,J,X,nvals,dup) \ - _Generic \ - ( \ - (X), \ - GB_PCASES (GrB, Matrix_build) \ - ) \ - (C, Ilist, J, ((const void *) (X)), nvals, dup) -#endif - -//------------------------------------------------------------------------------ -// GrB_Matrix_setElement -//------------------------------------------------------------------------------ -// Set a single entry in a matrix, C(i,j) = x, typecasting -// from the type of x to the type of C, as needed. +//============================================================================== +// GrB_Monoid +//============================================================================== -GrB_Info GrB_Matrix_setElement_BOOL // C (i,j) = x +GrB_Info GrB_Monoid_new_BOOL // create a new boolean monoid ( - GrB_Matrix C, // matrix to modify - bool x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + bool identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_INT8 // C (i,j) = x +GrB_Info GrB_Monoid_new_INT8 // create a new int8 monoid ( - GrB_Matrix C, // matrix to modify - int8_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int8_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UINT8 // C (i,j) = x +GrB_Info GrB_Monoid_new_UINT8 // create a new uint8 monoid ( - GrB_Matrix C, // matrix to modify - uint8_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint8_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_INT16 // C (i,j) = x +GrB_Info GrB_Monoid_new_INT16 // create a new int16 monoid ( - GrB_Matrix C, // matrix to modify - int16_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int16_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UINT16 // C (i,j) = x +GrB_Info GrB_Monoid_new_UINT16 // create a new uint16 monoid ( - GrB_Matrix C, // matrix to modify - uint16_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint16_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_INT32 // C (i,j) = x +GrB_Info GrB_Monoid_new_INT32 // create a new int32 monoid ( - GrB_Matrix C, // matrix to modify - int32_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int32_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UINT32 // C (i,j) = x +GrB_Info GrB_Monoid_new_UINT32 // create a new uint32 monoid ( - GrB_Matrix C, // matrix to modify - uint32_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint32_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_INT64 // C (i,j) = x +GrB_Info GrB_Monoid_new_INT64 // create a new int64 monoid ( - GrB_Matrix C, // matrix to modify - int64_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int64_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UINT64 // C (i,j) = x +GrB_Info GrB_Monoid_new_UINT64 // create a new uint64 monoid ( - GrB_Matrix C, // matrix to modify - uint64_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint64_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_FP32 // C (i,j) = x +GrB_Info GrB_Monoid_new_FP32 // create a new float monoid ( - GrB_Matrix C, // matrix to modify - float x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + float identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_FP64 // C (i,j) = x +GrB_Info GrB_Monoid_new_FP64 // create a new double monoid ( - GrB_Matrix C, // matrix to modify - double x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + double identity // identity value of the monoid ) ; -GrB_Info GxB_Matrix_setElement_FC32 // C (i,j) = x +GrB_Info GxB_Monoid_new_FC32 // create a new float complex monoid ( - GrB_Matrix C, // matrix to modify - GxB_FC32_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + GxB_FC32_t identity // identity value of the monoid ) ; -GrB_Info GxB_Matrix_setElement_FC64 // C (i,j) = x +GrB_Info GxB_Monoid_new_FC64 // create a new double complex monoid ( - GrB_Matrix C, // matrix to modify - GxB_FC64_t x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + GxB_FC64_t identity // identity value of the monoid ) ; -GrB_Info GrB_Matrix_setElement_UDT // C (i,j) = x +GrB_Info GrB_Monoid_new_UDT // create a monoid with a user-defined type ( - GrB_Matrix C, // matrix to modify - void *x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index -) ; - -GrB_Info GrB_Matrix_setElement_Scalar // C (i,j) = x -( - GrB_Matrix C, // matrix to modify - GrB_Scalar x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + void *identity // identity value of the monoid ) ; -// Type-generic version: x can be any supported C type or void * for a -// user-defined type. +// Type-generic method for creating a new monoid: /* -GrB_Info GrB_Matrix_setElement // C (i,j) = x +GrB_Info GrB_Monoid_new // create a monoid ( - GrB_Matrix C, // matrix to modify - x, // scalar to assign to C(i,j) - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + identity // identity value of the monoid ) ; */ #if GxB_STDC_VERSION >= 201112L -#define GrB_Matrix_setElement(C,x,i,j) \ - _Generic \ - ( \ - (x), \ - GB_CASES (GrB, Matrix_setElement), \ - default: GrB_Matrix_setElement_Scalar \ - ) \ - (C, x, i, j) +#define GrB_Monoid_new(monoid,op,identity) \ + _Generic \ + ( \ + (identity), \ + GB_CASES (GrB, Monoid_new) \ + ) \ + (monoid, op, identity) #endif -//------------------------------------------------------------------------------ -// GrB_Matrix_extractElement -//------------------------------------------------------------------------------ - -// Extract a single entry from a matrix, x = A(i,j), typecasting from the type -// of A to the type of x, as needed. - -GrB_Info GrB_Matrix_extractElement_BOOL // x = A(i,j) -( - bool *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index -) ; +// GxB_Monoid_terminal_new is identical to GrB_Monoid_new, except that a +// terminal value can be specified. The terminal may be NULL, which indicates +// no terminal value (and in this case, it is identical to GrB_Monoid_new). +// The terminal value, if not NULL, must have the same type as the identity. -GrB_Info GrB_Matrix_extractElement_INT8 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_BOOL // create a new boolean monoid ( - int8_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + bool identity, // identity value of the monoid + bool terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UINT8 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_INT8 // create a new int8 monoid ( - uint8_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int8_t identity, // identity value of the monoid + int8_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_INT16 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UINT8 // create a new uint8 monoid ( - int16_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint8_t identity, // identity value of the monoid + uint8_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UINT16 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_INT16 // create a new int16 monoid ( - uint16_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int16_t identity, // identity value of the monoid + int16_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_INT32 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UINT16 // create a new uint16 monoid ( - int32_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint16_t identity, // identity value of the monoid + uint16_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UINT32 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_INT32 // create a new int32 monoid ( - uint32_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int32_t identity, // identity value of the monoid + int32_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_INT64 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UINT32 // create a new uint32 monoid ( - int64_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint32_t identity, // identity value of the monoid + uint32_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UINT64 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_INT64 // create a new int64 monoid ( - uint64_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + int64_t identity, // identity value of the monoid + int64_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_FP32 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UINT64 // create a new uint64 monoid ( - float *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + uint64_t identity, // identity value of the monoid + uint64_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_FP64 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_FP32 // create a new float monoid ( - double *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + float identity, // identity value of the monoid + float terminal // terminal value of the monoid ) ; -GrB_Info GxB_Matrix_extractElement_FC32 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_FP64 // create a new double monoid ( - GxB_FC32_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + double identity, // identity value of the monoid + double terminal // terminal value of the monoid ) ; -GrB_Info GxB_Matrix_extractElement_FC64 // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_FC32 // create a new float complex monoid ( - GxB_FC64_t *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + GxB_FC32_t identity, // identity value of the monoid + GxB_FC32_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_UDT // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_FC64 // create a new double complex monoid ( - void *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + GxB_FC64_t identity, // identity value of the monoid + GxB_FC64_t terminal // terminal value of the monoid ) ; -GrB_Info GrB_Matrix_extractElement_Scalar // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new_UDT // create a monoid with a user type ( - GrB_Scalar x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + void *identity, // identity value of the monoid + void *terminal // terminal value of the monoid ) ; -// Type-generic version: x can be a pointer to any supported C type or void * -// for a user-defined type. +// Type-generic method for creating a new monoid with a terminal value: /* -GrB_Info GrB_Matrix_extractElement // x = A(i,j) +GrB_Info GxB_Monoid_terminal_new // create a monoid ( - *x, // extracted scalar - const GrB_Matrix A, // matrix to extract a scalar from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid, // handle of monoid to create + GrB_BinaryOp op, // binary operator of the monoid + identity, // identity value of the monoid + terminal // terminal value of the monoid ) ; */ #if GxB_STDC_VERSION >= 201112L -#define GrB_Matrix_extractElement(x,A,i,j) \ +#define GxB_Monoid_terminal_new(monoid,op,identity,terminal) \ _Generic \ ( \ - (x), \ - GB_PCASES (GrB, Matrix_extractElement), \ - default: GrB_Matrix_extractElement_Scalar \ + (identity), \ + GB_CASES (GxB, Monoid_terminal_new) \ ) \ - (x, A, i, j) + (monoid, op, identity, terminal) #endif -// GxB_Matrix_isStoredElement determines if A(i,j) is present in the structure -// of the matrix A, as a stored element. It does not return the value. It -// returns GrB_SUCCESS if the element is present, or GrB_NO_VALUE otherwise. +// historical; use GrB_get instead: +GrB_Info GxB_Monoid_operator (GrB_BinaryOp *op, GrB_Monoid monoid) ; +GrB_Info GxB_Monoid_identity (void *identity, GrB_Monoid monoid) ; +GrB_Info GxB_Monoid_terminal (bool *, void *terminal, GrB_Monoid monoid) ; -GrB_Info GxB_Matrix_isStoredElement // determine if A(i,j) is a stored element +GrB_Info GrB_Monoid_free // free a user-created monoid ( - const GrB_Matrix A, // matrix to check - GrB_Index i, // row index - GrB_Index j // column index + GrB_Monoid *monoid // handle of monoid to free ) ; -//------------------------------------------------------------------------------ -// GrB_Matrix_removeElement -//------------------------------------------------------------------------------ - -// GrB_Matrix_removeElement (A,i,j) removes the entry A(i,j) from the matrix A. +//============================================================================== +// GrB_Semiring +//============================================================================== -GrB_Info GrB_Matrix_removeElement +GrB_Info GrB_Semiring_new // create a semiring ( - GrB_Matrix C, // matrix to remove entry from - GrB_Index i, // row index - GrB_Index j // column index + GrB_Semiring *semiring, // handle of semiring to create + GrB_Monoid add, // add monoid of the semiring + GrB_BinaryOp multiply // multiply operator of the semiring ) ; -//------------------------------------------------------------------------------ -// GrB_Matrix_extractTuples -//------------------------------------------------------------------------------ +// historical; use GrB_get instead: +GrB_Info GxB_Semiring_add (GrB_Monoid *add, GrB_Semiring semiring) ; +GrB_Info GxB_Semiring_multiply (GrB_BinaryOp *multiply, GrB_Semiring semiring) ; -// Extracts all tuples from a matrix, like [I,J,X] = find (A). If -// any parameter I, J and/or X is NULL, then that component is not extracted. -// For example, to extract just the row and col indices, pass I and J as -// non-NULL, and X as NULL. This is like [I,J,~] = find (A). +GrB_Info GrB_Semiring_free // free a user-created semiring +( + GrB_Semiring *semiring // handle of semiring to free +) ; -GrB_Info GrB_Matrix_extractTuples_BOOL // [I,J,X] = find (A) +//============================================================================== +// GrB_Scalar: a GraphBLAS scalar +//============================================================================== + +// These methods create, free, copy, and clear a GrB_Scalar. The nvals, +// and type methods return basic information about a GrB_Scalar. + +GrB_Info GrB_Scalar_new // create a new GrB_Scalar with no entry ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - bool *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar *s, // handle of GrB_Scalar to create + GrB_Type type // type of GrB_Scalar to create ) ; -GrB_Info GrB_Matrix_extractTuples_INT8 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_dup // make an exact copy of a GrB_Scalar ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - int8_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar *s, // handle of output GrB_Scalar to create + const GrB_Scalar t // input GrB_Scalar to copy ) ; -GrB_Info GrB_Matrix_extractTuples_UINT8 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_clear // clear a GrB_Scalar of its entry +( // type remains unchanged. + GrB_Scalar s // GrB_Scalar to clear +) ; + +GrB_Info GrB_Scalar_nvals // get the number of entries in a GrB_Scalar ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - uint8_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Index *nvals, // GrB_Scalar has nvals entries (0 or 1) + const GrB_Scalar s // GrB_Scalar to query ) ; -GrB_Info GrB_Matrix_extractTuples_INT16 // [I,J,X] = find (A) +// historical; use GrB_get instead: +GrB_Info GxB_Scalar_type (GrB_Type *type, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_type_name (char *type_name, const GrB_Scalar s) ; + +GrB_Info GxB_Scalar_memoryUsage // return # of bytes used for a scalar ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - int16_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + size_t *size, // # of bytes used by the scalar s + const GrB_Scalar s // GrB_Scalar to query ) ; -GrB_Info GrB_Matrix_extractTuples_UINT16 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_free // free a GrB_Scalar ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - uint16_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar *s // handle of GrB_Scalar to free ) ; -GrB_Info GrB_Matrix_extractTuples_INT32 // [I,J,X] = find (A) +// historical names identical to GrB_Scalar_methods above: +GrB_Info GxB_Scalar_new (GrB_Scalar *s, GrB_Type type) ; +GrB_Info GxB_Scalar_dup (GrB_Scalar *s, const GrB_Scalar t) ; +GrB_Info GxB_Scalar_clear (GrB_Scalar s) ; +GrB_Info GxB_Scalar_nvals (GrB_Index *nvals, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_free (GrB_Scalar *s) ; + +//------------------------------------------------------------------------------ +// GrB_Scalar_setElement +//------------------------------------------------------------------------------ + +// Set a single GrB_Scalar s, from a user scalar x: s = x, typecasting from the +// type of x to the type of w as needed. + +GrB_Info GrB_Scalar_setElement_BOOL // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - int32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + bool x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_UINT32 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_INT8 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - uint32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + int8_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_INT64 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_UINT8 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - int64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + uint8_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_UINT64 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_INT16 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - uint64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + int16_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_FP32 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_UINT16 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - float *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + uint16_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_FP64 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_INT32 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - double *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + int32_t x // user scalar to assign to s ) ; -GrB_Info GxB_Matrix_extractTuples_FC32 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_UINT32 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - GxB_FC32_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + uint32_t x // user scalar to assign to s ) ; -GrB_Info GxB_Matrix_extractTuples_FC64 // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_INT64 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - GxB_FC64_t *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + int64_t x // user scalar to assign to s ) ; -GrB_Info GrB_Matrix_extractTuples_UDT // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement_UINT64 // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - void *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + uint64_t x // user scalar to assign to s ) ; -// Type-generic version: X can be a pointer to any supported C type or void * -// for a user-defined type. +GrB_Info GrB_Scalar_setElement_FP32 // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + float x // user scalar to assign to s +) ; + +GrB_Info GrB_Scalar_setElement_FP64 // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + double x // user scalar to assign to s +) ; + +GrB_Info GxB_Scalar_setElement_FC32 // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + GxB_FC32_t x // user scalar to assign to s +) ; + +GrB_Info GxB_Scalar_setElement_FC64 // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + GxB_FC64_t x // user scalar to assign to s +) ; + +GrB_Info GrB_Scalar_setElement_UDT // s = x +( + GrB_Scalar s, // GrB_Scalar to modify + void *x // user scalar to assign to s +) ; + +// historical names identical to GrB_Scalar_methods above: +GrB_Info GxB_Scalar_setElement_BOOL (GrB_Scalar s, bool x) ; +GrB_Info GxB_Scalar_setElement_INT8 (GrB_Scalar s, int8_t x) ; +GrB_Info GxB_Scalar_setElement_INT16 (GrB_Scalar s, int16_t x) ; +GrB_Info GxB_Scalar_setElement_INT32 (GrB_Scalar s, int32_t x) ; +GrB_Info GxB_Scalar_setElement_INT64 (GrB_Scalar s, int64_t x) ; +GrB_Info GxB_Scalar_setElement_UINT8 (GrB_Scalar s, uint8_t x) ; +GrB_Info GxB_Scalar_setElement_UINT16 (GrB_Scalar s, uint16_t x) ; +GrB_Info GxB_Scalar_setElement_UINT32 (GrB_Scalar s, uint32_t x) ; +GrB_Info GxB_Scalar_setElement_UINT64 (GrB_Scalar s, uint64_t x) ; +GrB_Info GxB_Scalar_setElement_FP32 (GrB_Scalar s, float x) ; +GrB_Info GxB_Scalar_setElement_FP64 (GrB_Scalar s, double x) ; +GrB_Info GxB_Scalar_setElement_UDT (GrB_Scalar s, void *x) ; + +// Type-generic version: x can be any supported C type or void * for a +// user-defined type. /* -GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) +GrB_Info GrB_Scalar_setElement // s = x ( - GrB_Index *Ilist, // array for returning row indices of tuples - GrB_Index *J, // array for returning col indices of tuples - *X, // array for returning values of tuples - GrB_Index *nvals, // I,J,X size on input; # tuples on output - const GrB_Matrix A // matrix to extract tuples from + GrB_Scalar s, // GrB_Scalar to modify + x // user scalar to assign to s ) ; */ #if GxB_STDC_VERSION >= 201112L -#define GrB_Matrix_extractTuples(Ilist,J,X,nvals,A) \ - _Generic \ - ( \ - (X), \ - GB_PCASES (GrB, Matrix_extractTuples) \ - ) \ - (Ilist, J, X, nvals, A) +#define GrB_Scalar_setElement(s,x) \ + _Generic \ + ( \ + (x), \ + GB_CASES (GrB, Scalar_setElement) \ + ) \ + (s, x) + +// historical; use GrB_Scalar_setElement instead: +#define GxB_Scalar_setElement(s,x) GrB_Scalar_setElement (s, x) #endif //------------------------------------------------------------------------------ -// GxB_Matrix_concat and GxB_Matrix_split +// GrB_Scalar_extractElement //------------------------------------------------------------------------------ -// GxB_Matrix_concat concatenates an array of matrices (Tiles) into a single -// GrB_Matrix C. - -// Tiles is an m-by-n dense array of matrices held in row-major format, where -// Tiles [i*n+j] is the (i,j)th tile, and where m > 0 and n > 0 must hold. Let -// A{i,j} denote the (i,j)th tile. The matrix C is constructed by -// concatenating these tiles together, as: +// Extract a single entry from a GrB_Scalar, x = s, typecasting from the type +// of s to the type of x as needed. -// C = [ A{0,0} A{0,1} A{0,2} ... A{0,n-1} -// A{1,0} A{1,1} A{1,2} ... A{1,n-1} -// ... -// A{m-1,0} A{m-1,1} A{m-1,2} ... A{m-1,n-1} ] +GrB_Info GrB_Scalar_extractElement_BOOL // x = s +( + bool *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -// On input, the matrix C must already exist. Any existing entries in C are -// discarded. C must have dimensions nrows by ncols where nrows is the sum of -// # of rows in the matrices A{i,0} for all i, and ncols is the sum of the # of -// columns in the matrices A{0,j} for all j. All matrices in any given tile -// row i must have the same number of rows (that is, nrows(A{i,0}) must equal -// nrows(A{i,j}) for all j), and all matrices in any given tile column j must -// have the same number of columns (that is, ncols(A{0,j}) must equal -// ncols(A{i,j}) for all i). - -// The type of C is unchanged, and all matrices A{i,j} are typecasted into the -// type of C. Any settings made to C by GrB_set (format by row -// or by column, bitmap switch, hyper switch, and sparsity control) are -// unchanged. +GrB_Info GrB_Scalar_extractElement_INT8 // x = s +( + int8_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GxB_Matrix_concat // concatenate a 2D array of matrices +GrB_Info GrB_Scalar_extractElement_UINT8 // x = s ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix *Tiles, // 2D row-major array of size m-by-n - const GrB_Index m, - const GrB_Index n, - const GrB_Descriptor desc // unused, except threading control + uint8_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -// GxB_Matrix_split does the opposite of GxB_Matrix_concat. It splits a single -// input matrix A into a 2D array of tiles. On input, the Tiles array must be -// a non-NULL pointer to a previously allocated array of size at least m*n -// where both m and n must be > 0. The Tiles_nrows array has size m, and -// Tiles_ncols has size n. The (i,j)th tile has dimension -// Tiles_nrows[i]-by-Tiles_ncols[j]. The sum of Tiles_nrows [0:m-1] must equal -// the number of rows of A, and the sum of Tiles_ncols [0:n-1] must equal the -// number of columns of A. The type of each tile is the same as the type of A; -// no typecasting is done. +GrB_Info GrB_Scalar_extractElement_INT16 // x = s +( + int16_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GxB_Matrix_split // split a matrix into 2D array of matrices +GrB_Info GrB_Scalar_extractElement_UINT16 // x = s ( - GrB_Matrix *Tiles, // 2D row-major array of size m-by-n - const GrB_Index m, - const GrB_Index n, - const GrB_Index *Tile_nrows, // array of size m - const GrB_Index *Tile_ncols, // array of size n - const GrB_Matrix A, // input matrix to split - const GrB_Descriptor desc // unused, except threading control + uint16_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -//------------------------------------------------------------------------------ -// GxB_Matrix_diag, GxB_Vector_diag, GrB_Matrix_diag -//------------------------------------------------------------------------------ +GrB_Info GrB_Scalar_extractElement_INT32 // x = s +( + int32_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -// GrB_Matrix_diag constructs a new matrix from a vector. Let n be the length -// of the v vector, from GrB_Vector_size (&n, v). If k = 0, then C is an -// n-by-n diagonal matrix with the entries from v along the main diagonal of C, -// with C(i,i) = v(i). If k is nonzero, C is square with dimension n+abs(k). -// If k is positive, it denotes diagonals above the main diagonal, with -// C(i,i+k) = v(i). If k is negative, it denotes diagonals below the main -// diagonal of C, with C(i-k,i) = v(i). C is constructed with the same type -// as v. +GrB_Info GrB_Scalar_extractElement_UINT32 // x = s +( + uint32_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GrB_Matrix_diag // build a diagonal matrix from a vector +GrB_Info GrB_Scalar_extractElement_INT64 // x = s ( - GrB_Matrix *C, // output matrix - const GrB_Vector v, // input vector - int64_t k + int64_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -// GrB_Matrix_diag is like GxB_Matrix_diag (&C, v, k, NULL), except that C must -// already exist on input, of the correct size. Any existing entries in C are -// discarded. The type of C is preserved, so that if the type of C and v -// differ, the entries are typecasted into the type of C. Any settings made to -// C by GrB_set (format by row or by column, bitmap switch, hyper -// switch, and sparsity control) are unchanged. +GrB_Info GrB_Scalar_extractElement_UINT64 // x = s +( + uint64_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GxB_Matrix_diag // construct a diagonal matrix from a vector +GrB_Info GrB_Scalar_extractElement_FP32 // x = s ( - GrB_Matrix C, // output matrix - const GrB_Vector v, // input vector - int64_t k, - const GrB_Descriptor desc // to specify # of threads + float *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -// GxB_Vector_diag extracts a vector v from an input matrix A, which may be -// rectangular. If k = 0, the main diagonal of A is extracted; k > 0 denotes -// diagonals above the main diagonal of A, and k < 0 denotes diagonals below -// the main diagonal of A. Let A have dimension m-by-n. If k is in the range -// 0 to n-1, then v has length min(m,n-k). If k is negative and in the range -// -1 to -m+1, then v has length min(m+k,n). If k is outside these ranges, -// v has length 0 (this is not an error). +GrB_Info GrB_Scalar_extractElement_FP64 // x = s +( + double *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -// v must already exist on input, of the correct length; that is -// GrB_Vector_size (&len,v) must return len = 0 if k >= n or k <= -m, len = -// min(m,n-k) if k is in the range 0 to n-1, and len = min(m+k,n) if k is in -// the range -1 to -m+1. Any existing entries in v are discarded. The type of -// v is preserved, so that if the type of A and v differ, the entries are -// typecasted into the type of v. Any settings made to v by -// GrB_set (bitmap switch and sparsity control) are unchanged. +GrB_Info GxB_Scalar_extractElement_FC32 // x = s +( + GxB_FC32_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -GrB_Info GxB_Vector_diag // extract a diagonal from a matrix, as a vector +GrB_Info GxB_Scalar_extractElement_FC64 // x = s ( - GrB_Vector v, // output vector - const GrB_Matrix A, // input matrix - int64_t k, - const GrB_Descriptor desc // unused, except threading control + GxB_FC64_t *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from ) ; -//============================================================================== -// SuiteSparse:GraphBLAS options -//============================================================================== +GrB_Info GrB_Scalar_extractElement_UDT // x = s +( + void *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; -// The following options modify how SuiteSparse:GraphBLAS stores and operates -// on its matrices. The GrB_get/set methods allow the user to suggest how the -// internal representation of a matrix, or all matrices, should be held. These -// options have no effect on the result (except for minor roundoff differences -// for floating-point types). They only affect the time and memory usage of the -// computations. +// historical names identical to GrB_Scalar_methods above: +GrB_Info GxB_Scalar_extractElement_BOOL (bool *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_INT8 (int8_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_INT16 (int16_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_INT32 (int32_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_INT64 (int64_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UINT8 (uint8_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UINT16 (uint16_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UINT32 (uint32_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UINT64 (uint64_t *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_FP32 (float *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_FP64 (double *x, const GrB_Scalar s) ; +GrB_Info GxB_Scalar_extractElement_UDT (void *x, const GrB_Scalar s) ; -typedef enum // for global options or matrix options -{ +// Type-generic version: x can be a pointer to any supported C type or void * +// for a user-defined type. - //------------------------------------------------------------ - // GrB_get / GrB_set for GrB_Matrix and GrB_GLOBAL: - //------------------------------------------------------------ +/* - GxB_HYPER_SWITCH = 7000, // switch to hypersparse (double value) - GxB_HYPER_HASH = 7048, // hyper_hash control (int64 value) - GxB_BITMAP_SWITCH = 7001, // switch to bitmap (double value) - GxB_FORMAT = 7002, // historical; use GrB_STORAGE_ORIENTATION_HINT +GrB_Info GrB_Scalar_extractElement // x = s +( + *x, // user scalar extracted + const GrB_Scalar s // GrB_Scalar to extract an entry from +) ; - //------------------------------------------------------------ - // GrB_get for GrB_GLOBAL: - //------------------------------------------------------------ +*/ - GxB_MODE = 7003, // historical; use GrB_BLOCKING_MODE - GxB_LIBRARY_NAME = 7004, // historical; use GrB_NAME - GxB_LIBRARY_VERSION = 7005, // historical; use GrB_LIBRARY_VER_* - GxB_LIBRARY_DATE = 7006, // date of the library (char *) - GxB_LIBRARY_ABOUT = 7007, // about the library (char *) - GxB_LIBRARY_URL = 7008, // URL for the library (char *) - GxB_LIBRARY_LICENSE = 7009, // license of the library (char *) - GxB_LIBRARY_COMPILE_DATE = 7010, // date library was compiled (char *) - GxB_LIBRARY_COMPILE_TIME = 7011, // time library was compiled (char *) - GxB_API_VERSION = 7012, // historical; use GrB_API_VER_* - GxB_API_DATE = 7013, // date of the API (char *) - GxB_API_ABOUT = 7014, // about the API (char *) - GxB_API_URL = 7015, // URL for the API (char *) - GxB_COMPILER_VERSION = 7016, // compiler version (3 int's) - GxB_COMPILER_NAME = 7017, // compiler name (char *) - GxB_LIBRARY_OPENMP = 7018, // library compiled with OpenMP - GxB_MALLOC_FUNCTION = 7037, // malloc function pointer - GxB_CALLOC_FUNCTION = 7038, // calloc function pointer - GxB_REALLOC_FUNCTION = 7039, // realloc function pointer - GxB_FREE_FUNCTION = 7040, // free function pointer +#if GxB_STDC_VERSION >= 201112L +#define GrB_Scalar_extractElement(x,s) \ + _Generic \ + ( \ + (x), \ + GB_PCASES (GrB, Scalar_extractElement) \ + ) \ + (x, s) - //------------------------------------------------------------ - // GrB_get / GrB_set for GrB_GLOBAL: - //------------------------------------------------------------ +// historical; use GrB_Scalar_extractElement instead: +#define GxB_Scalar_extractElement(x,s) GrB_Scalar_extractElement (x, s) +#endif - GxB_GLOBAL_NTHREADS = GxB_NTHREADS, // max number of threads to use - GxB_GLOBAL_CHUNK = GxB_CHUNK, // chunk size for small problems. - GxB_GLOBAL_GPU_ID = GxB_GPU_ID, // which GPU to use (DRAFT) +//============================================================================== +// GrB_Vector: a GraphBLAS vector +//============================================================================== - GxB_BURBLE = 7019, // diagnostic output - GxB_PRINTF = 7020, // printf function diagnostic output - GxB_FLUSH = 7021, // flush function diagnostic output - GxB_MEMORY_POOL = 7022, // no longer used - GxB_PRINT_1BASED = 7023, // print matrices as 0-based or 1-based +// These methods create, free, copy, and clear a vector. The size, nvals, +// and type methods return basic information about a vector. - GxB_JIT_C_COMPILER_NAME = 7024, // CPU JIT C compiler name - GxB_JIT_C_COMPILER_FLAGS = 7025, // CPU JIT C compiler flags - GxB_JIT_C_LINKER_FLAGS = 7026, // CPU JIT C linker flags - GxB_JIT_C_LIBRARIES = 7027, // CPU JIT C libraries - GxB_JIT_C_PREFACE = 7028, // CPU JIT C preface - GxB_JIT_C_CONTROL = 7029, // CPU JIT C control - GxB_JIT_CACHE_PATH = 7030, // CPU/CUDA JIT path for compiled kernels - GxB_JIT_C_CMAKE_LIBS = 7031, // CPU JIT C libraries when using cmake - GxB_JIT_USE_CMAKE = 7032, // CPU JIT: use cmake or direct compile - GxB_JIT_ERROR_LOG = 7033, // CPU JIT: error log file +GrB_Info GrB_Vector_new // create a new vector with no entries +( + GrB_Vector *v, // handle of vector to create + GrB_Type type, // type of vector to create + GrB_Index n // vector dimension is n-by-1 + // (n must be <= GrB_INDEX_MAX+1) +) ; - GxB_JIT_CUDA_PREFACE = 7100, // CUDA JIT C++ preface +GrB_Info GrB_Vector_dup // make an exact copy of a vector +( + GrB_Vector *w, // handle of output vector to create + const GrB_Vector u // input vector to copy +) ; - //------------------------------------------------------------ - // GrB_get for GrB_Matrix: - //------------------------------------------------------------ +GrB_Info GrB_Vector_clear // clear a vector of all entries; +( // type and dimension remain unchanged. + GrB_Vector v // vector to clear +) ; - GxB_SPARSITY_STATUS = 7034, // hyper, sparse, bitmap or full (1,2,4,8) - GxB_IS_HYPER = 7035, // historical; use GxB_SPARSITY_STATUS - - //------------------------------------------------------------ - // GrB_get/GrB_set for GrB_Matrix: - //------------------------------------------------------------ - - GxB_SPARSITY_CONTROL = 7036, // sparsity control: 0 to 15; see below - -} GxB_Option_Field ; - -// for GxB_JIT_C_CONTROL: -typedef enum -{ - GxB_JIT_OFF = 0, // do not use the JIT: free all JIT kernels if loaded - GxB_JIT_PAUSE = 1, // do not run JIT kernels but keep any loaded - GxB_JIT_RUN = 2, // run JIT kernels if already loaded; no load/compile - GxB_JIT_LOAD = 3, // able to load and run JIT kernels; may not compile - GxB_JIT_ON = 4, // full JIT: able to compile, load, and run -} -GxB_JIT_Control ; - -// GxB_FORMAT is historical, but it can be by row or by column: -typedef enum -{ - GxB_BY_ROW = 0, // CSR: compressed sparse row format - GxB_BY_COL = 1, // CSC: compressed sparse column format - GxB_NO_FORMAT = -1 // format not defined -} -GxB_Format_Value ; +GrB_Info GrB_Vector_size // get the dimension of a vector +( + GrB_Index *n, // vector dimension is n-by-1 + const GrB_Vector v // vector to query +) ; -// The default format is by row. These constants are defined as GB_GLOBAL -// const, so that if SuiteSparse:GraphBLAS is recompiled with a different -// default format, and the application is relinked but not recompiled, it will -// acquire the new default values. -GB_GLOBAL const GxB_Format_Value GxB_FORMAT_DEFAULT ; +GrB_Info GrB_Vector_nvals // get the number of entries in a vector +( + GrB_Index *nvals, // vector has nvals entries + const GrB_Vector v // vector to query +) ; -// the default hyper_switch parameter -GB_GLOBAL const double GxB_HYPER_DEFAULT ; +// historical; use GrB_get instead: +GrB_Info GxB_Vector_type (GrB_Type *type, const GrB_Vector v) ; +GrB_Info GxB_Vector_type_name (char *type_name, const GrB_Vector v) ; -// GxB_SPARSITY_CONTROL can be any sum or bitwise OR of these 4 values: -#define GxB_HYPERSPARSE 1 // store matrix in hypersparse form -#define GxB_SPARSE 2 // store matrix as sparse form (compressed vector) -#define GxB_BITMAP 4 // store matrix as a bitmap -#define GxB_FULL 8 // store matrix as full; all entries must be present +GrB_Info GxB_Vector_memoryUsage // return # of bytes used for a vector +( + size_t *size, // # of bytes used by the vector v + const GrB_Vector v // vector to query +) ; -// size of b array for GxB_set/get (GxB_BITMAP_SWITCH, b) -#define GxB_NBITMAP_SWITCH 8 // size of bitmap_switch parameter array +GrB_Info GxB_Vector_iso // return iso status of a vector +( + bool *iso, // true if the vector is iso-valued + const GrB_Vector v // vector to query +) ; -// any sparsity value: -#define GxB_ANY_SPARSITY (GxB_HYPERSPARSE + GxB_SPARSE + GxB_BITMAP + GxB_FULL) +GrB_Info GrB_Vector_free // free a vector +( + GrB_Vector *v // handle of vector to free +) ; -// the default sparsity control is any format: -#define GxB_AUTO_SPARSITY GxB_ANY_SPARSITY +//------------------------------------------------------------------------------ +// GrB_Vector_build +//------------------------------------------------------------------------------ -// GrB_set (A, scontrol, GxB_SPARSITY_CONTROL) provides hints -// about which data structure GraphBLAS should use for the matrix A: -// -// GxB_AUTO_SPARSITY: GraphBLAS selects automatically. -// GxB_HYPERSPARSE: always hypersparse, taking O(nvals(A)) space. -// GxB_SPARSE: always in a sparse struture: compressed-sparse row/column, -// taking O(nrows+nvals(A)) space if stored by row, or -// O(ncols+nvals(A)) if stored by column. -// GxB_BITMAP: always in a bitmap struture, taking O(nrows*ncols) space. -// GxB_FULL: always in a full structure, taking O(nrows*ncols) space, -// unless not all entries are present, in which case the bitmap -// storage is used. -// -// These options can be summed. For example, to allow a matrix to be sparse -// or hypersparse, but not bitmap or full, use GxB_SPARSE + GxB_HYPERSPARSE. -// Since GxB_FULL can only be used when all entries are present, matrices with -// the just GxB_FULL control setting are stored in bitmap form if any entries -// are not present. -// -// Only the least 4 bits of the sparsity control are considered, so the -// formats can be bitwise negated. For example, to allow for any format -// except full, use ~GxB_FULL. -// -// GrB_get (A, &sparsity, GxB_SPARSITY_STATUS) returns the -// current data structure currently used for the matrix A (either hypersparse, -// sparse, bitmap, or full). -// -// GrB_get (A, &scontrol, GxB_SPARSITY_CONTROL) returns the hint -// for how A should be stored (hypersparse, sparse, bitmap, or full, or any -// combination). +// GrB_Vector_build: w = sparse (I,1,X), but using any +// associative operator to assemble duplicate entries. -// GxB_HYPER_SWITCH: -// If the matrix or vector structure can be sparse or hypersparse, the -// GxB_HYPER_SWITCH parameter controls when each of these structures are -// used. The parameter is not used if the matrix or vector is full or -// bitmap. -// -// Let k be the actual number of non-empty vectors (with at least one -// entry). This value k is not dependent on whether or not the matrix is -// stored in hypersparse structure. Let n be the number of vectors (the # -// of columns if CSC, or rows if CSR). Let h be the value of the -// GxB_HYPER_SWITCH setting of the matrix. -// -// If a matrix is currently hypersparse, it can be converted to -// non-hypersparse if (n <= 1 || k > 2*n*h). Otherwise it stays -// hypersparse. If (n <= 1) the matrix is always stored as -// non-hypersparse. -// -// If currently non-hypersparse, it can be converted to hypersparse if (n -// > 1 && k <= n*h). Otherwise, it stays non-hypersparse. If (n <= 1) -// the matrix always remains non-hypersparse. -// -// Setting GxB_HYPER_SWITCH to GxB_ALWAYS_HYPER or GxB_NEVER_HYPER ensures -// a matrix always stays hypersparse, or always stays non-hypersparse, -// respectively. +GrB_Info GrB_Vector_build_BOOL // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const bool *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -GB_GLOBAL const double GxB_ALWAYS_HYPER, GxB_NEVER_HYPER ; +GrB_Info GrB_Vector_build_INT8 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const int8_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -//============================================================================== -// GxB_Context: for managing computational resources -//============================================================================== +GrB_Info GrB_Vector_build_UINT8 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const uint8_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -typedef struct GB_Context_opaque *GxB_Context ; +GrB_Info GrB_Vector_build_INT16 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const int16_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// GxB_CONTEXT_WORLD is the default Context for all user threads. -GB_GLOBAL GxB_Context GxB_CONTEXT_WORLD ; +GrB_Info GrB_Vector_build_UINT16 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const uint16_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -typedef enum -{ - GxB_CONTEXT_NTHREADS = GxB_NTHREADS, // max number of threads to use. - // If <= 0, then one thread is used. +GrB_Info GrB_Vector_build_INT32 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const int32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; - GxB_CONTEXT_CHUNK = GxB_CHUNK, // chunk size for small problems. - // If < 1, then the default is used. +GrB_Info GrB_Vector_build_UINT32 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const uint32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; - // GPU control (DRAFT: in progress, do not use) - GxB_CONTEXT_GPU_ID = GxB_GPU_ID, -} -GxB_Context_Field ; +GrB_Info GrB_Vector_build_INT64 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const int64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -GrB_Info GxB_Context_new // create a new Context +GrB_Info GrB_Vector_build_UINT64 // build a vector from (I,X) tuples ( - GxB_Context *Context // handle of Context to create + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const uint64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GxB_Context_free // free a Context +GrB_Info GrB_Vector_build_FP32 // build a vector from (I,X) tuples ( - GxB_Context *Context // handle of Context to free + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const float *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GxB_Context_engage // engage a Context +GrB_Info GrB_Vector_build_FP64 // build a vector from (I,X) tuples ( - GxB_Context Context // Context to engage + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const double *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GxB_Context_disengage // disengage a Context +GrB_Info GxB_Vector_build_FC32 // build a vector from (I,X) tuples ( - GxB_Context Context // Context to disengage + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const GxB_FC32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -//============================================================================== -// GxB_set and GxB_get: historical; use GrB_set and GrB_get instead -//============================================================================== +GrB_Info GxB_Vector_build_FC64 // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const GxB_FC64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// historical: use GrB_set and GrB_get instead of these methods: -GrB_Info GxB_Matrix_Option_set (GrB_Matrix, GxB_Option_Field, ...) ; -GrB_Info GxB_Matrix_Option_set_INT32 (GrB_Matrix, GxB_Option_Field, int32_t) ; -GrB_Info GxB_Matrix_Option_set_FP64 (GrB_Matrix, GxB_Option_Field, double) ; -GrB_Info GxB_Matrix_Option_get (GrB_Matrix, GxB_Option_Field, ...) ; -GrB_Info GxB_Matrix_Option_get_INT32 (GrB_Matrix, GxB_Option_Field, int32_t *) ; -GrB_Info GxB_Matrix_Option_get_FP64 (GrB_Matrix, GxB_Option_Field, double *) ; -GrB_Info GxB_Vector_Option_set (GrB_Vector, GxB_Option_Field, ...) ; -GrB_Info GxB_Vector_Option_set_INT32 (GrB_Vector, GxB_Option_Field, int32_t) ; -GrB_Info GxB_Vector_Option_set_FP64 (GrB_Vector, GxB_Option_Field, double) ; -GrB_Info GxB_Vector_Option_get (GrB_Vector, GxB_Option_Field, ...) ; -GrB_Info GxB_Vector_Option_get_INT32 (GrB_Vector, GxB_Option_Field, int32_t *) ; -GrB_Info GxB_Vector_Option_get_FP64 (GrB_Vector, GxB_Option_Field, double *) ; -GrB_Info GxB_Global_Option_set (GxB_Option_Field, ...) ; -GrB_Info GxB_Global_Option_set_INT32 (GxB_Option_Field, int32_t) ; -GrB_Info GxB_Global_Option_set_FP64 (GxB_Option_Field, double) ; -GrB_Info GxB_Global_Option_set_FP64_ARRAY (GxB_Option_Field, double *) ; -GrB_Info GxB_Global_Option_set_INT64_ARRAY (GxB_Option_Field, int64_t *) ; -GrB_Info GxB_Global_Option_set_CHAR (GxB_Option_Field, const char *) ; -GrB_Info GxB_Global_Option_set_FUNCTION (GxB_Option_Field, void *) ; -GrB_Info GxB_Global_Option_get (GxB_Option_Field, ...) ; -GrB_Info GxB_Global_Option_get_INT32 (GxB_Option_Field, int32_t *) ; -GrB_Info GxB_Global_Option_get_FP64 (GxB_Option_Field, double *) ; -GrB_Info GxB_Global_Option_get_INT64 (GxB_Option_Field, int64_t *) ; -GrB_Info GxB_Global_Option_get_CHAR (GxB_Option_Field, const char **) ; -GrB_Info GxB_Global_Option_get_FUNCTION (GxB_Option_Field, void **) ; -GrB_Info GxB_Context_set_INT32 (GxB_Context, GxB_Context_Field, int32_t) ; -GrB_Info GxB_Context_set_FP64 (GxB_Context, GxB_Context_Field, double) ; -GrB_Info GxB_Context_set (GxB_Context, GxB_Context_Field, ...) ; -GrB_Info GxB_Context_get_INT32 (GxB_Context, GxB_Context_Field, int32_t *) ; -GrB_Info GxB_Context_get_FP64 (GxB_Context, GxB_Context_Field, double *) ; -GrB_Info GxB_Context_get (GxB_Context, GxB_Context_Field, ...) ; +GrB_Info GrB_Vector_build_UDT // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const void *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -#if GxB_STDC_VERSION >= 201112L -#define GxB_set(arg1,...) \ - _Generic \ - ( \ - (arg1), \ - default: GxB_Global_Option_set , \ - GxB_Option_Field : GxB_Global_Option_set , \ - GrB_Vector : GxB_Vector_Option_set , \ - GrB_Matrix : GxB_Matrix_Option_set , \ - GrB_Descriptor : GxB_Desc_set , \ - GxB_Context : GxB_Context_set \ - ) \ - (arg1, __VA_ARGS__) +GrB_Info GxB_Vector_build_Scalar // build a vector from (i,scalar) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + GrB_Scalar scalar, // value for all tuples + GrB_Index nvals // number of tuples +) ; -#define GxB_get(arg1,...) \ - _Generic \ - ( \ - (arg1), \ - default: GxB_Global_Option_get , \ - GxB_Option_Field : GxB_Global_Option_get , \ - GrB_Vector : GxB_Vector_Option_get , \ - GrB_Matrix : GxB_Matrix_Option_get , \ - GrB_Descriptor : GxB_Desc_get , \ - GxB_Context : GxB_Context_get \ - ) \ - (arg1, __VA_ARGS__) -#endif +// Type-generic version: X can be a pointer to any supported C type or void * +// for a user-defined type. -//============================================================================== -// GrB_set and GrB_get -//============================================================================== +/* +GrB_Info GrB_Vector_build // build a vector from (I,X) tuples +( + GrB_Vector w, // vector to build + const GrB_Index *Ilist, // array of row indices of tuples + const *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; +*/ -typedef struct GB_Global_opaque *GrB_Global ; -GB_GLOBAL const GrB_Global GrB_GLOBAL ; +#if GxB_STDC_VERSION >= 201112L +#define GrB_Vector_build(w,Ilist,X,nvals,dup) \ + _Generic \ + ( \ + (X), \ + GB_PCASES (GrB, Vector_build) \ + ) \ + (w, Ilist, ((const void *) (X)), nvals, dup) +#endif -typedef enum -{ +//------------------------------------------------------------------------------ +// GrB_Vector_setElement +//------------------------------------------------------------------------------ - //-------------------------------------------------------------------------- - // GrB enums in the C API - //-------------------------------------------------------------------------- +// Set a single scalar in a vector, w(i) = x, typecasting from the type of x to +// the type of w as needed. - // GrB_Descriptor only: - GrB_OUTP_FIELD = 0, // descriptor for output of a method - GrB_MASK_FIELD = 1, // descriptor for the mask input of a method - GrB_INP0_FIELD = 2, // descriptor for the first input of a method - GrB_INP1_FIELD = 3, // descriptor for the second input of a method +GrB_Info GrB_Vector_setElement_BOOL // w(i) = x +( + GrB_Vector w, // vector to modify + bool x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // all objects, including GrB_GLOBAL: - GrB_NAME = 10, // name of the object, as a string +GrB_Info GrB_Vector_setElement_INT8 // w(i) = x +( + GrB_Vector w, // vector to modify + int8_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_GLOBAL only: - GrB_LIBRARY_VER_MAJOR = 11, // SuiteSparse:GraphBLAS version - GrB_LIBRARY_VER_MINOR = 12, - GrB_LIBRARY_VER_PATCH = 13, - GrB_API_VER_MAJOR = 14, // C API version - GrB_API_VER_MINOR = 15, - GrB_API_VER_PATCH = 16, - GrB_BLOCKING_MODE = 17, // GrB_Mode +GrB_Info GrB_Vector_setElement_UINT8 // w(i) = x +( + GrB_Vector w, // vector to modify + uint8_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_GLOBAL, GrB_Matrix, GrB_Vector, GrB_Scalar: - GrB_STORAGE_ORIENTATION_HINT = 100, // GrB_Orientation +GrB_Info GrB_Vector_setElement_INT16 // w(i) = x +( + GrB_Vector w, // vector to modify + int16_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Matrix, GrB_Vector, GrB_Scalar (and void * serialize): - GrB_EL_TYPE_CODE = 102, // a GrB_Type_code (see below) - GrB_EL_TYPE_STRING = 106, // name of the type +GrB_Info GrB_Vector_setElement_UINT16 // w(i) = x +( + GrB_Vector w, // vector to modify + uint16_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_*Op, GrB_Monoid, and GrB_Semiring: - GrB_INP0_TYPE_CODE = 103, // GrB_Type_code - GrB_INP1_TYPE_CODE = 104, - GrB_OUTP_TYPE_CODE = 105, - GrB_INP0_TYPE_STRING = 107, // name of the type, as a string - GrB_INP1_TYPE_STRING = 108, - GrB_OUTP_TYPE_STRING = 109, +GrB_Info GrB_Vector_setElement_INT32 // w(i) = x +( + GrB_Vector w, // vector to modify + int32_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Type (readable only): - GrB_SIZE = 110, // size of the type +GrB_Info GrB_Vector_setElement_UINT32 // w(i) = x +( + GrB_Vector w, // vector to modify + uint32_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - //-------------------------------------------------------------------------- - // SuiteSparse extensions: - //-------------------------------------------------------------------------- +GrB_Info GrB_Vector_setElement_INT64 // w(i) = x +( + GrB_Vector w, // vector to modify + int64_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Type, GrB_UnaryOp, GrB_BinaryOp, and GrB_IndexUnaryOp: - GxB_JIT_C_NAME = 7041, // C type or function name - GxB_JIT_C_DEFINITION = 7042, // C typedef or function definition +GrB_Info GrB_Vector_setElement_UINT64 // w(i) = x +( + GrB_Vector w, // vector to modify + uint64_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Monoid and GrB_Semiring: - GxB_MONOID_IDENTITY = 7043, // monoid identity value - GxB_MONOID_TERMINAL = 7044, // monoid terminal value - GxB_MONOID_OPERATOR = 7045, // monoid binary operator +GrB_Info GrB_Vector_setElement_FP32 // w(i) = x +( + GrB_Vector w, // vector to modify + float x, // scalar to assign to w(i) + GrB_Index i // row index +) ; - // GrB_Semiring only: - GxB_SEMIRING_MONOID = 7046, // semiring monoid - GxB_SEMIRING_MULTIPLY = 7047, // semiring multiplicative op -} -GrB_Field ; +GrB_Info GrB_Vector_setElement_FP64 // w(i) = x +( + GrB_Vector w, // vector to modify + double x, // scalar to assign to w(i) + GrB_Index i // row index +) ; -typedef enum -{ - GrB_ROWMAJOR = 0, - GrB_COLMAJOR = 1, - GrB_BOTH = 2, - GrB_UNKNOWN = 3, -} -GrB_Orientation ; +GrB_Info GxB_Vector_setElement_FC32 // w(i) = x +( + GrB_Vector w, // vector to modify + GxB_FC32_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; -typedef enum -{ - GrB_UDT_CODE = 0, // user-defined type - GrB_BOOL_CODE = 1, // GraphBLAS: GrB_BOOL C: bool - GrB_INT8_CODE = 2, // GraphBLAS: GrB_INT8 C: int8_t - GrB_UINT8_CODE = 3, // GraphBLAS: GrB_UINT8 C: uint8_t - GrB_INT16_CODE = 4, // GraphBLAS: GrB_INT16 C: int16_t - GrB_UINT16_CODE = 5, // GraphBLAS: GrB_UINT16 C: uint16_t - GrB_INT32_CODE = 6, // GraphBLAS: GrB_INT32 C: int32_t - GrB_UINT32_CODE = 7, // GraphBLAS: GrB_UINT32 C: uint32_t - GrB_INT64_CODE = 8, // GraphBLAS: GrB_INT64 C: int64_t - GrB_UINT64_CODE = 9, // GraphBLAS: GrB_UINT64 C: uint64_t - GrB_FP32_CODE = 10, // GraphBLAS: GrB_FP32 C: float - GrB_FP64_CODE = 11, // GraphBLAS: GrB_FP64 C: double - GxB_FC32_CODE = 7070, // GraphBLAS: GxB_FC32 C: float complex - GxB_FC64_CODE = 7071, // GraphBLAS: GxB_FC64 C: double complex -} -GrB_Type_Code ; +GrB_Info GxB_Vector_setElement_FC64 // w(i) = x +( + GrB_Vector w, // vector to modify + GxB_FC64_t x, // scalar to assign to w(i) + GrB_Index i // row index +) ; -//------------------------------------------------------------------------------ -// GrB_get: get a scalar, string, enum, size, or void * from an object +GrB_Info GrB_Vector_setElement_UDT // w(i) = x +( + GrB_Vector w, // vector to modify + void *x, // scalar to assign to w(i) + GrB_Index i // row index +) ; + +GrB_Info GrB_Vector_setElement_Scalar // w(i) = x +( + GrB_Vector w, // vector to modify + GrB_Scalar x, // scalar to assign to w(i) + GrB_Index i // row index +) ; + +// Type-generic version: x can be any supported C type or void * for a +// user-defined type. + +/* +GrB_Info GrB_Vector_setElement // w(i) = x +( + GrB_Vector w, // vector to modify + x, // scalar to assign to w(i) + GrB_Index i // row index +) ; +*/ + +#if GxB_STDC_VERSION >= 201112L +#define GrB_Vector_setElement(w,x,i) \ + _Generic \ + ( \ + (x), \ + GB_CASES (GrB, Vector_setElement), \ + default: GrB_Vector_setElement_Scalar \ + ) \ + (w, x, i) +#endif + +//------------------------------------------------------------------------------ +// GrB_Vector_extractElement //------------------------------------------------------------------------------ -GrB_Info GrB_Scalar_get_Scalar (GrB_Scalar, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Scalar_get_String (GrB_Scalar, char * , GrB_Field) ; -GrB_Info GrB_Scalar_get_INT32 (GrB_Scalar, int32_t * , GrB_Field) ; -GrB_Info GrB_Scalar_get_SIZE (GrB_Scalar, size_t * , GrB_Field) ; -GrB_Info GrB_Scalar_get_VOID (GrB_Scalar, void * , GrB_Field) ; +// Extract a single entry from a vector, x = v(i), typecasting from the type of +// v to the type of x as needed. -GrB_Info GrB_Vector_get_Scalar (GrB_Vector, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Vector_get_String (GrB_Vector, char * , GrB_Field) ; -GrB_Info GrB_Vector_get_INT32 (GrB_Vector, int32_t * , GrB_Field) ; -GrB_Info GrB_Vector_get_SIZE (GrB_Vector, size_t * , GrB_Field) ; -GrB_Info GrB_Vector_get_VOID (GrB_Vector, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_BOOL // x = v(i) +( + bool *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Matrix_get_Scalar (GrB_Matrix, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Matrix_get_String (GrB_Matrix, char * , GrB_Field) ; -GrB_Info GrB_Matrix_get_INT32 (GrB_Matrix, int32_t * , GrB_Field) ; -GrB_Info GrB_Matrix_get_SIZE (GrB_Matrix, size_t * , GrB_Field) ; -GrB_Info GrB_Matrix_get_VOID (GrB_Matrix, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_INT8 // x = v(i) +( + int8_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GxB_Serialized_get_Scalar (const void *, GrB_Scalar, GrB_Field, size_t) ; -GrB_Info GxB_Serialized_get_String (const void *, char * , GrB_Field, size_t) ; -GrB_Info GxB_Serialized_get_INT32 (const void *, int32_t * , GrB_Field, size_t) ; -GrB_Info GxB_Serialized_get_SIZE (const void *, size_t * , GrB_Field, size_t) ; -GrB_Info GxB_Serialized_get_VOID (const void *, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractElement_UINT8 // x = v(i) +( + uint8_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_UnaryOp_get_Scalar (GrB_UnaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_UnaryOp_get_String (GrB_UnaryOp, char * , GrB_Field) ; -GrB_Info GrB_UnaryOp_get_INT32 (GrB_UnaryOp, int32_t * , GrB_Field) ; -GrB_Info GrB_UnaryOp_get_SIZE (GrB_UnaryOp, size_t * , GrB_Field) ; -GrB_Info GrB_UnaryOp_get_VOID (GrB_UnaryOp, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_INT16 // x = v(i) +( + int16_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_IndexUnaryOp_get_Scalar (GrB_IndexUnaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_get_String (GrB_IndexUnaryOp, char * , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_get_INT32 (GrB_IndexUnaryOp, int32_t * , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_get_SIZE (GrB_IndexUnaryOp, size_t * , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_get_VOID (GrB_IndexUnaryOp, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_UINT16 // x = v(i) +( + uint16_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_BinaryOp_get_Scalar (GrB_BinaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_BinaryOp_get_String (GrB_BinaryOp, char * , GrB_Field) ; -GrB_Info GrB_BinaryOp_get_INT32 (GrB_BinaryOp, int32_t * , GrB_Field) ; -GrB_Info GrB_BinaryOp_get_SIZE (GrB_BinaryOp, size_t * , GrB_Field) ; -GrB_Info GrB_BinaryOp_get_VOID (GrB_BinaryOp, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_INT32 // x = v(i) +( + int32_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Monoid_get_Scalar (GrB_Monoid, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Monoid_get_String (GrB_Monoid, char * , GrB_Field) ; -GrB_Info GrB_Monoid_get_INT32 (GrB_Monoid, int32_t * , GrB_Field) ; -GrB_Info GrB_Monoid_get_SIZE (GrB_Monoid, size_t * , GrB_Field) ; -GrB_Info GrB_Monoid_get_VOID (GrB_Monoid, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_UINT32 // x = v(i) +( + uint32_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Semiring_get_Scalar (GrB_Semiring, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Semiring_get_String (GrB_Semiring, char * , GrB_Field) ; -GrB_Info GrB_Semiring_get_INT32 (GrB_Semiring, int32_t * , GrB_Field) ; -GrB_Info GrB_Semiring_get_SIZE (GrB_Semiring, size_t * , GrB_Field) ; -GrB_Info GrB_Semiring_get_VOID (GrB_Semiring, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_INT64 // x = v(i) +( + int64_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Descriptor_get_Scalar (GrB_Descriptor, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Descriptor_get_String (GrB_Descriptor, char * , GrB_Field) ; -GrB_Info GrB_Descriptor_get_INT32 (GrB_Descriptor, int32_t * , GrB_Field) ; -GrB_Info GrB_Descriptor_get_SIZE (GrB_Descriptor, size_t * , GrB_Field) ; -GrB_Info GrB_Descriptor_get_VOID (GrB_Descriptor, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_UINT64 // x = v(i) +( + uint64_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Type_get_Scalar (GrB_Type, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Type_get_String (GrB_Type, char * , GrB_Field) ; -GrB_Info GrB_Type_get_INT32 (GrB_Type, int32_t * , GrB_Field) ; -GrB_Info GrB_Type_get_SIZE (GrB_Type, size_t * , GrB_Field) ; -GrB_Info GrB_Type_get_VOID (GrB_Type, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_FP32 // x = v(i) +( + float *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GrB_Global_get_Scalar (GrB_Global, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Global_get_String (GrB_Global, char * , GrB_Field) ; -GrB_Info GrB_Global_get_INT32 (GrB_Global, int32_t * , GrB_Field) ; -GrB_Info GrB_Global_get_SIZE (GrB_Global, size_t * , GrB_Field) ; -GrB_Info GrB_Global_get_VOID (GrB_Global, void * , GrB_Field) ; +GrB_Info GrB_Vector_extractElement_FP64 // x = v(i) +( + double *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; -GrB_Info GxB_Context_get_Scalar (GxB_Context, GrB_Scalar, GrB_Field) ; -GrB_Info GxB_Context_get_String (GxB_Context, char * , GrB_Field) ; -GrB_Info GxB_Context_get_INT (GxB_Context, int32_t * , GrB_Field) ; -GrB_Info GxB_Context_get_SIZE (GxB_Context, size_t * , GrB_Field) ; -GrB_Info GxB_Context_get_VOID (GxB_Context, void * , GrB_Field) ; +GrB_Info GxB_Vector_extractElement_FC32 // x = v(i) +( + GxB_FC32_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; + +GrB_Info GxB_Vector_extractElement_FC64 // x = v(i) +( + GxB_FC64_t *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; + +GrB_Info GrB_Vector_extractElement_UDT // x = v(i) +( + void *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; + +GrB_Info GrB_Vector_extractElement_Scalar // x = v(i) +( + GrB_Scalar x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; + +// Type-generic version: x can be a pointer to any supported C type or void * +// for a user-defined type. + +/* +GrB_Info GrB_Vector_extractElement // x = v(i) +( + *x, // scalar extracted + const GrB_Vector v, // vector to extract an entry from + GrB_Index i // row index +) ; +*/ -// GrB_get (object, value, field): #if GxB_STDC_VERSION >= 201112L -#define GrB_get(object,value,...) \ - _Generic \ - ( \ - (object), \ - GrB_Scalar : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Scalar_get_Scalar , \ - char * : GrB_Scalar_get_String , \ - int32_t * : GrB_Scalar_get_INT32 , \ - size_t * : GrB_Scalar_get_SIZE , \ - void * : GrB_Scalar_get_VOID \ - ) , \ - GrB_Vector : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Vector_get_Scalar , \ - char * : GrB_Vector_get_String , \ - int32_t * : GrB_Vector_get_INT32 , \ - size_t * : GrB_Vector_get_SIZE , \ - void * : GrB_Vector_get_VOID \ - ) , \ - GrB_Matrix : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Matrix_get_Scalar , \ - char * : GrB_Matrix_get_String , \ - int32_t * : GrB_Matrix_get_INT32 , \ - size_t * : GrB_Matrix_get_SIZE , \ - void * : GrB_Matrix_get_VOID \ - ) , \ - GrB_UnaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_UnaryOp_get_Scalar , \ - char * : GrB_UnaryOp_get_String , \ - int32_t * : GrB_UnaryOp_get_INT32 , \ - size_t * : GrB_UnaryOp_get_SIZE , \ - void * : GrB_UnaryOp_get_VOID \ - ) , \ - GrB_IndexUnaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_IndexUnaryOp_get_Scalar , \ - char * : GrB_IndexUnaryOp_get_String , \ - int32_t * : GrB_IndexUnaryOp_get_INT32 , \ - size_t * : GrB_IndexUnaryOp_get_SIZE , \ - void * : GrB_IndexUnaryOp_get_VOID \ - ) , \ - GrB_BinaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_BinaryOp_get_Scalar , \ - char * : GrB_BinaryOp_get_String , \ - int32_t * : GrB_BinaryOp_get_INT32 , \ - size_t * : GrB_BinaryOp_get_SIZE , \ - void * : GrB_BinaryOp_get_VOID \ - ) , \ - GrB_Monoid : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Monoid_get_Scalar , \ - char * : GrB_Monoid_get_String , \ - int32_t * : GrB_Monoid_get_INT32 , \ - size_t * : GrB_Monoid_get_SIZE , \ - void * : GrB_Monoid_get_VOID \ - ) , \ - GrB_Semiring : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Semiring_get_Scalar , \ - char * : GrB_Semiring_get_String , \ - int32_t * : GrB_Semiring_get_INT32 , \ - size_t * : GrB_Semiring_get_SIZE , \ - void * : GrB_Semiring_get_VOID \ - ) , \ - GrB_Type : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Type_get_Scalar , \ - char * : GrB_Type_get_String , \ - int32_t * : GrB_Type_get_INT32 , \ - size_t * : GrB_Type_get_SIZE , \ - void * : GrB_Type_get_VOID \ - ) , \ - GrB_Descriptor : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Descriptor_get_Scalar , \ - char * : GrB_Descriptor_get_String , \ - int32_t * : GrB_Descriptor_get_INT32 , \ - size_t * : GrB_Descriptor_get_SIZE , \ - void * : GrB_Descriptor_get_VOID \ - ) , \ - GrB_Global : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Global_get_Scalar , \ - char * : GrB_Global_get_String , \ - int32_t * : GrB_Global_get_INT32 , \ - size_t * : GrB_Global_get_SIZE , \ - void * : GrB_Global_get_VOID \ - ) , \ - GxB_Context : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GxB_Context_get_Scalar , \ - char * : GxB_Context_get_String , \ - int32_t * : GxB_Context_get_INT , \ - size_t * : GxB_Context_get_SIZE , \ - void * : GxB_Context_get_VOID \ - ) , \ - const void *: \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GxB_Serialized_get_Scalar , \ - char * : GxB_Serialized_get_String , \ - int32_t * : GxB_Serialized_get_INT32 , \ - size_t * : GxB_Serialized_get_SIZE , \ - void * : GxB_Serialized_get_VOID \ - ) , \ - void *: \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GxB_Serialized_get_Scalar , \ - char * : GxB_Serialized_get_String , \ - int32_t * : GxB_Serialized_get_INT32 , \ - size_t * : GxB_Serialized_get_SIZE , \ - void * : GxB_Serialized_get_VOID \ - ) \ - ) (object, value, __VA_ARGS__) +#define GrB_Vector_extractElement(x,v,i) \ + _Generic \ + ( \ + (x), \ + GB_PCASES (GrB, Vector_extractElement), \ + default: GrB_Vector_extractElement_Scalar \ + ) \ + (x, v, i) +#endif + +// GxB_Vector_isStoredElement determines if v(i) is present in the structure +// of the vector v, as a stored element. It does not return the value. It +// returns GrB_SUCCESS if the element is present, or GrB_NO_VALUE otherwise. + +GrB_Info GxB_Vector_isStoredElement // determine if v(i) is a stored element +( + const GrB_Vector v, // vector to check + GrB_Index i // row index +) ; //------------------------------------------------------------------------------ -// GrB_set: set a scalar, string, enum, size, or void * of an object +// GrB_Vector_removeElement //------------------------------------------------------------------------------ -GrB_Info GrB_Scalar_set_Scalar (GrB_Scalar, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Scalar_set_String (GrB_Scalar, char * , GrB_Field) ; -GrB_Info GrB_Scalar_set_INT32 (GrB_Scalar, int32_t , GrB_Field) ; -GrB_Info GrB_Scalar_set_VOID (GrB_Scalar, void * , GrB_Field, size_t) ; +// GrB_Vector_removeElement (v,i) removes the element v(i) from the vector v. -GrB_Info GrB_Vector_set_Scalar (GrB_Vector, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Vector_set_String (GrB_Vector, char * , GrB_Field) ; -GrB_Info GrB_Vector_set_INT32 (GrB_Vector, int32_t , GrB_Field) ; -GrB_Info GrB_Vector_set_VOID (GrB_Vector, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_removeElement +( + GrB_Vector v, // vector to remove an element from + GrB_Index i // index +) ; -GrB_Info GrB_Matrix_set_Scalar (GrB_Matrix, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Matrix_set_String (GrB_Matrix, char * , GrB_Field) ; -GrB_Info GrB_Matrix_set_INT32 (GrB_Matrix, int32_t , GrB_Field) ; -GrB_Info GrB_Matrix_set_VOID (GrB_Matrix, void * , GrB_Field, size_t) ; +//------------------------------------------------------------------------------ +// GrB_Vector_extractTuples +//------------------------------------------------------------------------------ -GrB_Info GrB_UnaryOp_set_Scalar (GrB_UnaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_UnaryOp_set_String (GrB_UnaryOp, char * , GrB_Field) ; -GrB_Info GrB_UnaryOp_set_INT32 (GrB_UnaryOp, int32_t , GrB_Field) ; -GrB_Info GrB_UnaryOp_set_VOID (GrB_UnaryOp, void * , GrB_Field, size_t) ; +// Extracts all tuples from a vector, like [I,~,X] = find (v). If +// any parameter I and/or X is NULL, then that component is not extracted. For +// example, to extract just the row indices, pass I as non-NULL, and X as NULL. +// This is like [I,~,~] = find (v). -GrB_Info GrB_IndexUnaryOp_set_Scalar (GrB_IndexUnaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_set_String (GrB_IndexUnaryOp, char * , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_set_INT32 (GrB_IndexUnaryOp, int32_t , GrB_Field) ; -GrB_Info GrB_IndexUnaryOp_set_VOID (GrB_IndexUnaryOp, void * , GrB_Field, - size_t) ; +GrB_Info GrB_Vector_extractTuples_BOOL // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + bool *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_BinaryOp_set_Scalar (GrB_BinaryOp, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_BinaryOp_set_String (GrB_BinaryOp, char * , GrB_Field) ; -GrB_Info GrB_BinaryOp_set_INT32 (GrB_BinaryOp, int32_t , GrB_Field) ; -GrB_Info GrB_BinaryOp_set_VOID (GrB_BinaryOp, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_INT8 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + int8_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Monoid_set_Scalar (GrB_Monoid, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Monoid_set_String (GrB_Monoid, char * , GrB_Field) ; -GrB_Info GrB_Monoid_set_INT32 (GrB_Monoid, int32_t , GrB_Field) ; -GrB_Info GrB_Monoid_set_VOID (GrB_Monoid, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_UINT8 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + uint8_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Semiring_set_Scalar (GrB_Semiring, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Semiring_set_String (GrB_Semiring, char * , GrB_Field) ; -GrB_Info GrB_Semiring_set_INT32 (GrB_Semiring, int32_t , GrB_Field) ; -GrB_Info GrB_Semiring_set_VOID (GrB_Semiring, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_INT16 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + int16_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Descriptor_set_Scalar (GrB_Descriptor, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Descriptor_set_String (GrB_Descriptor, char * , GrB_Field) ; -GrB_Info GrB_Descriptor_set_INT32 (GrB_Descriptor, int32_t , GrB_Field) ; -GrB_Info GrB_Descriptor_set_VOID (GrB_Descriptor, void * , GrB_Field, - size_t) ; +GrB_Info GrB_Vector_extractTuples_UINT16 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + uint16_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Type_set_Scalar (GrB_Type, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Type_set_String (GrB_Type, char * , GrB_Field) ; -GrB_Info GrB_Type_set_INT32 (GrB_Type, int32_t , GrB_Field) ; -GrB_Info GrB_Type_set_VOID (GrB_Type, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_INT32 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + int32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GrB_Global_set_Scalar (GrB_Global, GrB_Scalar, GrB_Field) ; -GrB_Info GrB_Global_set_String (GrB_Global, char * , GrB_Field) ; -GrB_Info GrB_Global_set_INT32 (GrB_Global, int32_t , GrB_Field) ; -GrB_Info GrB_Global_set_VOID (GrB_Global, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_UINT32 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + uint32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -GrB_Info GxB_Context_set_Scalar (GxB_Context, GrB_Scalar, GrB_Field) ; -GrB_Info GxB_Context_set_String (GxB_Context, char * , GrB_Field) ; -GrB_Info GxB_Context_set_INT (GxB_Context, int32_t , GrB_Field) ; -GrB_Info GxB_Context_set_VOID (GxB_Context, void * , GrB_Field, size_t) ; +GrB_Info GrB_Vector_extractTuples_INT64 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + int64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -// GrB_set (object, value, field) or (object, value, field, size) for _VOID -#if GxB_STDC_VERSION >= 201112L -#define GrB_set(object,value,...) \ - _Generic \ - ( \ - (object), \ - GrB_Scalar : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Scalar_set_Scalar , \ - char * : GrB_Scalar_set_String , \ - int32_t : GrB_Scalar_set_INT32 , \ - void * : GrB_Scalar_set_VOID \ - ) , \ - GrB_Vector : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Vector_set_Scalar , \ - char * : GrB_Vector_set_String , \ - int32_t : GrB_Vector_set_INT32 , \ - void * : GrB_Vector_set_VOID \ - ) , \ - GrB_Matrix : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Matrix_set_Scalar , \ - char * : GrB_Matrix_set_String , \ - int32_t : GrB_Matrix_set_INT32 , \ - void * : GrB_Matrix_set_VOID \ - ) , \ - GrB_UnaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_UnaryOp_set_Scalar , \ - char * : GrB_UnaryOp_set_String , \ - int32_t : GrB_UnaryOp_set_INT32 , \ - void * : GrB_UnaryOp_set_VOID \ - ) , \ - GrB_IndexUnaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_IndexUnaryOp_set_Scalar , \ - char * : GrB_IndexUnaryOp_set_String , \ - int32_t : GrB_IndexUnaryOp_set_INT32 , \ - void * : GrB_IndexUnaryOp_set_VOID \ - ) , \ - GrB_BinaryOp : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_BinaryOp_set_Scalar , \ - char * : GrB_BinaryOp_set_String , \ - int32_t : GrB_BinaryOp_set_INT32 , \ - void * : GrB_BinaryOp_set_VOID \ - ) , \ - GrB_Monoid : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Monoid_set_Scalar , \ - char * : GrB_Monoid_set_String , \ - int32_t : GrB_Monoid_set_INT32 , \ - void * : GrB_Monoid_set_VOID \ - ) , \ - GrB_Semiring : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Semiring_set_Scalar , \ - char * : GrB_Semiring_set_String , \ - int32_t : GrB_Semiring_set_INT32 , \ - void * : GrB_Semiring_set_VOID \ - ) , \ - GrB_Type : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Type_set_Scalar , \ - char * : GrB_Type_set_String , \ - int32_t : GrB_Type_set_INT32 , \ - void * : GrB_Type_set_VOID \ - ) , \ - GrB_Descriptor : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Descriptor_set_Scalar , \ - char * : GrB_Descriptor_set_String , \ - int32_t : GrB_Descriptor_set_INT32 , \ - void * : GrB_Descriptor_set_VOID \ - ) , \ - GrB_Global : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GrB_Global_set_Scalar , \ - char * : GrB_Global_set_String , \ - int32_t : GrB_Global_set_INT32 , \ - void * : GrB_Global_set_VOID \ - ) , \ - GxB_Context : \ - _Generic \ - ( \ - (value), \ - GrB_Scalar : GxB_Context_set_Scalar , \ - char * : GxB_Context_set_String , \ - int32_t : GxB_Context_set_INT , \ - void * : GxB_Context_set_VOID \ - ) \ - ) (object, value, __VA_ARGS__) -#endif - -#endif +GrB_Info GrB_Vector_extractTuples_UINT64 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + uint64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -//============================================================================== -// GrB_free: free any GraphBLAS object -//============================================================================== +GrB_Info GrB_Vector_extractTuples_FP32 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + float *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -// for null and invalid objects -#define GrB_NULL NULL -#define GrB_INVALID_HANDLE NULL +GrB_Info GrB_Vector_extractTuples_FP64 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + double *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -#if GxB_STDC_VERSION >= 201112L -#define GrB_free(object) \ - _Generic \ - ( \ - (object), \ - GrB_Type *: GrB_Type_free , \ - GrB_UnaryOp *: GrB_UnaryOp_free , \ - GrB_BinaryOp *: GrB_BinaryOp_free , \ - GrB_IndexUnaryOp *: GrB_IndexUnaryOp_free , \ - GrB_Monoid *: GrB_Monoid_free , \ - GrB_Semiring *: GrB_Semiring_free , \ - GrB_Scalar *: GrB_Scalar_free , \ - GrB_Vector *: GrB_Vector_free , \ - GrB_Matrix *: GrB_Matrix_free , \ - GrB_Descriptor *: GrB_Descriptor_free , \ - GxB_Context *: GxB_Context_free , \ - GxB_Iterator *: GxB_Iterator_free \ - ) \ - (object) -#endif +GrB_Info GxB_Vector_extractTuples_FC32 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + GxB_FC32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -//============================================================================== -// GrB_wait: finish computations -//============================================================================== +GrB_Info GxB_Vector_extractTuples_FC64 // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + GxB_FC64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -typedef enum -{ - GrB_COMPLETE = 0, // establishes a happens-before relation - GrB_MATERIALIZE = 1 // object is complete -} -GrB_WaitMode ; +GrB_Info GrB_Vector_extractTuples_UDT // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + void *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; -// Finish all pending work in a specific object. +// Type-generic version: X can be a pointer to any supported C type or void * +// for a user-defined type. -GrB_Info GrB_Type_wait (GrB_Type type , GrB_WaitMode waitmode); -GrB_Info GrB_UnaryOp_wait (GrB_UnaryOp op , GrB_WaitMode waitmode); -GrB_Info GrB_BinaryOp_wait (GrB_BinaryOp op , GrB_WaitMode waitmode); -GrB_Info GrB_IndexUnaryOp_wait (GrB_IndexUnaryOp op , GrB_WaitMode waitmode); -GrB_Info GrB_Monoid_wait (GrB_Monoid monoid , GrB_WaitMode waitmode); -GrB_Info GrB_Semiring_wait (GrB_Semiring semiring, GrB_WaitMode waitmode); -GrB_Info GrB_Descriptor_wait (GrB_Descriptor desc , GrB_WaitMode waitmode); -GrB_Info GrB_Scalar_wait (GrB_Scalar s , GrB_WaitMode waitmode); -GrB_Info GrB_Vector_wait (GrB_Vector v , GrB_WaitMode waitmode); -GrB_Info GrB_Matrix_wait (GrB_Matrix A , GrB_WaitMode waitmode); -GrB_Info GxB_Context_wait (GxB_Context Context , GrB_WaitMode waitmode); +/* +GrB_Info GrB_Vector_extractTuples // [I,~,X] = find (v) +( + GrB_Index *Ilist, // array for returning row indices of tuples + *X, // array for returning values of tuples + GrB_Index *nvals, // I, X size on input; # tuples on output + const GrB_Vector v // vector to extract tuples from +) ; +*/ -// GrB_wait (object,waitmode) polymorphic function: #if GxB_STDC_VERSION >= 201112L -#define GrB_wait(object,waitmode) \ +#define GrB_Vector_extractTuples(Ilist,X,nvals,v) \ _Generic \ ( \ - (object), \ - GrB_Type : GrB_Type_wait , \ - GrB_UnaryOp : GrB_UnaryOp_wait , \ - GrB_BinaryOp : GrB_BinaryOp_wait , \ - GrB_IndexUnaryOp : GrB_IndexUnaryOp_wait , \ - GrB_Monoid : GrB_Monoid_wait , \ - GrB_Semiring : GrB_Semiring_wait , \ - GrB_Scalar : GrB_Scalar_wait , \ - GrB_Vector : GrB_Vector_wait , \ - GrB_Matrix : GrB_Matrix_wait , \ - GxB_Context : GxB_Context_wait , \ - GrB_Descriptor : GrB_Descriptor_wait \ + (X), \ + GB_PCASES (GrB, Vector_extractTuples) \ ) \ - (object, waitmode) + (Ilist, X, nvals, v) #endif - -// NOTE: GxB_Scalar_wait is historical; use GrB_Scalar_wait instead -GrB_Info GxB_Scalar_wait (GrB_Scalar *s) ; - //============================================================================== -// GrB_error: error handling +// GrB_Matrix: a GraphBLAS matrix //============================================================================== -// Each GraphBLAS method and operation returns a GrB_Info error code. -// GrB_error returns additional information on the error in a thread-safe -// null-terminated string. The string returned by GrB_error is owned by -// the GraphBLAS library and must not be free'd. +// These methods create, free, copy, and clear a matrix. The nrows, ncols, +// nvals, and type methods return basic information about a matrix. -GrB_Info GrB_Type_error (const char **error, const GrB_Type type) ; -GrB_Info GrB_UnaryOp_error (const char **error, const GrB_UnaryOp op) ; -GrB_Info GrB_BinaryOp_error (const char **error, const GrB_BinaryOp op) ; -GrB_Info GrB_IndexUnaryOp_error (const char **error, const GrB_IndexUnaryOp op) ; -GrB_Info GrB_Monoid_error (const char **error, const GrB_Monoid monoid) ; -GrB_Info GrB_Semiring_error (const char **error, const GrB_Semiring semiring) ; -GrB_Info GrB_Scalar_error (const char **error, const GrB_Scalar s) ; -GrB_Info GrB_Vector_error (const char **error, const GrB_Vector v) ; -GrB_Info GrB_Matrix_error (const char **error, const GrB_Matrix A) ; -GrB_Info GrB_Descriptor_error (const char **error, const GrB_Descriptor d) ; -// GxB_Scalar_error is historical: use GrB_Scalar_error instead -GrB_Info GxB_Scalar_error (const char **error, const GrB_Scalar s) ; -GrB_Info GxB_Context_error (const char **error, const GxB_Context Context); +GrB_Info GrB_Matrix_new // create a new matrix with no entries +( + GrB_Matrix *A, // handle of matrix to create + GrB_Type type, // type of matrix to create + GrB_Index nrows, // matrix dimension is nrows-by-ncols + GrB_Index ncols // (nrows and ncols must be <= GrB_INDEX_MAX+1) +) ; -// GrB_error (error,object) polymorphic function: -#if GxB_STDC_VERSION >= 201112L -#define GrB_error(error,object) \ - _Generic \ - ( \ - (object), \ - GrB_Type : GrB_Type_error , \ - GrB_UnaryOp : GrB_UnaryOp_error , \ - GrB_BinaryOp : GrB_BinaryOp_error , \ - GrB_IndexUnaryOp : GrB_IndexUnaryOp_error , \ - GrB_Monoid : GrB_Monoid_error , \ - GrB_Semiring : GrB_Semiring_error , \ - GrB_Scalar : GrB_Scalar_error , \ - GrB_Vector : GrB_Vector_error , \ - GrB_Matrix : GrB_Matrix_error , \ - GxB_Context : GxB_Context_error , \ - GrB_Descriptor : GrB_Descriptor_error \ - ) \ - (error, object) -#endif - -//============================================================================== -// GrB_mxm, vxm, mxv: matrix multiplication over a semiring -//============================================================================== - -GrB_Info GrB_mxm // C = accum (C, A*B) +GrB_Info GrB_Matrix_dup // make an exact copy of a matrix ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Semiring semiring, // defines '+' and '*' for A*B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix *C, // handle of output matrix to create + const GrB_Matrix A // input matrix to copy ) ; -GrB_Info GrB_vxm // w' = accum (w, u'*A) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Semiring semiring, // defines '+' and '*' for u'*A - const GrB_Vector u, // first input: vector u - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for w, mask, and A +GrB_Info GrB_Matrix_clear // clear a matrix of all entries; +( // type and dimensions remain unchanged + GrB_Matrix A // matrix to clear ) ; -GrB_Info GrB_mxv // w = accum (w, A*u) +GrB_Info GrB_Matrix_nrows // get the number of rows of a matrix ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Semiring semiring, // defines '+' and '*' for A*B - const GrB_Matrix A, // first input: matrix A - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w, mask, and A + GrB_Index *nrows, // matrix has nrows rows + const GrB_Matrix A // matrix to query ) ; -//============================================================================== -// GrB_eWiseMult: element-wise matrix and vector operations, set intersection -//============================================================================== - -// GrB_eWiseMult computes C = accum (C, A.*B), where ".*" is the Hadamard -// product, and where pairs of elements in two matrices (or vectors) are -// pairwise "multiplied" with C(i,j) = mult (A(i,j),B(i,j)). - -GrB_Info GrB_Vector_eWiseMult_Semiring // w = accum (w, u.*v) +GrB_Info GrB_Matrix_ncols // get the number of columns of a matrix ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Semiring semiring, // defines '.*' for t=u.*v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Index *ncols, // matrix has ncols columns + const GrB_Matrix A // matrix to query ) ; -GrB_Info GrB_Vector_eWiseMult_Monoid // w = accum (w, u.*v) +GrB_Info GrB_Matrix_nvals // get the number of entries in a matrix ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Monoid monoid, // defines '.*' for t=u.*v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Index *nvals, // matrix has nvals entries + const GrB_Matrix A // matrix to query ) ; -GrB_Info GrB_Vector_eWiseMult_BinaryOp // w = accum (w, u.*v) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp mult, // defines '.*' for t=u.*v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask -) ; +// historical; use GrB_get instead: +GrB_Info GxB_Matrix_type (GrB_Type *type, const GrB_Matrix A) ; +GrB_Info GxB_Matrix_type_name (char *type_name, const GrB_Matrix A) ; -GrB_Info GrB_Matrix_eWiseMult_Semiring // C = accum (C, A.*B) +GrB_Info GxB_Matrix_memoryUsage // return # of bytes used for a matrix ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Semiring semiring, // defines '.*' for T=A.*B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + size_t *size, // # of bytes used by the matrix A + const GrB_Matrix A // matrix to query ) ; -GrB_Info GrB_Matrix_eWiseMult_Monoid // C = accum (C, A.*B) +GrB_Info GxB_Matrix_iso // return iso status of a matrix ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Monoid monoid, // defines '.*' for T=A.*B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + bool *iso, // true if the matrix is iso-valued + const GrB_Matrix A // matrix to query ) ; -GrB_Info GrB_Matrix_eWiseMult_BinaryOp // C = accum (C, A.*B) +GrB_Info GrB_Matrix_free // free a matrix ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp mult, // defines '.*' for T=A.*B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix *A // handle of matrix to free ) ; -// All 6 of the above type-specific functions are captured in a single -// type-generic function, GrB_eWiseMult: - -#if GxB_STDC_VERSION >= 201112L -#define GrB_eWiseMult(C,Mask,accum,op,A,B,desc) \ - _Generic \ - ( \ - (C), \ - GrB_Matrix : \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Matrix_eWiseMult_Semiring , \ - GrB_Monoid : GrB_Matrix_eWiseMult_Monoid , \ - GrB_BinaryOp : GrB_Matrix_eWiseMult_BinaryOp \ - ), \ - GrB_Vector : \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Vector_eWiseMult_Semiring , \ - GrB_Monoid : GrB_Vector_eWiseMult_Monoid , \ - GrB_BinaryOp : GrB_Vector_eWiseMult_BinaryOp \ - ) \ - ) \ - (C, Mask, accum, op, A, B, desc) -#endif +//------------------------------------------------------------------------------ +// GrB_Matrix_build +//------------------------------------------------------------------------------ -//============================================================================== -// GrB_eWiseAdd: element-wise matrix and vector operations, set union -//============================================================================== +// GrB_Matrix_build: C = sparse (I,J,X), but using any +// associative operator to assemble duplicate entries. -// GrB_eWiseAdd computes C = accum (C, A+B), where pairs of elements in -// two matrices (or two vectors) are pairwise "added". +GrB_Info GrB_Matrix_build_BOOL // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const bool *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -GrB_Info GrB_Vector_eWiseAdd_Semiring // w = accum (w, u+v) +GrB_Info GrB_Matrix_build_INT8 // build a matrix from (I,J,X) tuples ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Semiring semiring, // defines '+' for t=u+v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const int8_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Vector_eWiseAdd_Monoid // w = accum (w, u+v) +GrB_Info GrB_Matrix_build_UINT8 // build a matrix from (I,J,X) tuples ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Monoid monoid, // defines '+' for t=u+v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const uint8_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Vector_eWiseAdd_BinaryOp // w = accum (w, u+v) +GrB_Info GrB_Matrix_build_INT16 // build a matrix from (I,J,X) tuples ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp add, // defines '+' for t=u+v - const GrB_Vector u, // first input: vector u - const GrB_Vector v, // second input: vector v - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const int16_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Matrix_eWiseAdd_Semiring // C = accum (C, A+B) +GrB_Info GrB_Matrix_build_UINT16 // build a matrix from (I,J,X) tuples ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Semiring semiring, // defines '+' for T=A+B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const uint16_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Matrix_eWiseAdd_Monoid // C = accum (C, A+B) +GrB_Info GrB_Matrix_build_INT32 // build a matrix from (I,J,X) tuples ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Monoid monoid, // defines '+' for T=A+B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const int32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -GrB_Info GrB_Matrix_eWiseAdd_BinaryOp // C = accum (C, A+B) +GrB_Info GrB_Matrix_build_UINT32 // build a matrix from (I,J,X) tuples ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp add, // defines '+' for T=A+B - const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const uint32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; -#if GxB_STDC_VERSION >= 201112L -#define GrB_eWiseAdd(C,Mask,accum,op,A,B,desc) \ - _Generic \ - ( \ - (C), \ - GrB_Matrix : \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Matrix_eWiseAdd_Semiring , \ - GrB_Monoid : GrB_Matrix_eWiseAdd_Monoid , \ - GrB_BinaryOp : GrB_Matrix_eWiseAdd_BinaryOp \ - ), \ - GrB_Vector : \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Vector_eWiseAdd_Semiring , \ - GrB_Monoid : GrB_Vector_eWiseAdd_Monoid , \ - GrB_BinaryOp : GrB_Vector_eWiseAdd_BinaryOp \ - ) \ - ) \ - (C, Mask, accum, op, A, B, desc) -#endif +GrB_Info GrB_Matrix_build_INT64 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const int64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -//============================================================================== -// GxB_eWiseUnion: a variant of GrB_eWiseAdd -//============================================================================== +GrB_Info GrB_Matrix_build_UINT64 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const uint64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// GxB_eWiseUnion is a variant of eWiseAdd. The methods create a result with -// the same sparsity structure. They differ when an entry is present in A but -// not B, or in B but not A. +GrB_Info GrB_Matrix_build_FP32 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const float *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// eWiseAdd does the following, for a matrix, where "+" is the add binary op: +GrB_Info GrB_Matrix_build_FP64 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const double *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// if A(i,j) and B(i,j) are both present: -// C(i,j) = A(i,j) + B(i,j) -// else if A(i,j) is present but not B(i,j) -// C(i,j) = A(i,j) -// else if B(i,j) is present but not A(i,j) -// C(i,j) = B(i,j) +GrB_Info GxB_Matrix_build_FC32 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const GxB_FC32_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// by contrast, eWiseUnion always applies the operator: +GrB_Info GxB_Matrix_build_FC64 // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const GxB_FC64_t *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -// if A(i,j) and B(i,j) are both present: -// C(i,j) = A(i,j) + B(i,j) -// else if A(i,j) is present but not B(i,j) -// C(i,j) = A(i,j) + beta -// else if B(i,j) is present but not A(i,j) -// C(i,j) = alpha + B(i,j) +GrB_Info GrB_Matrix_build_UDT // build a matrix from (I,J,X) tuples +( + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const void *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates +) ; -GrB_Info GxB_Vector_eWiseUnion // w = accum (w, u+v) +GrB_Info GxB_Matrix_build_Scalar // build a matrix from (I,J,scalar) tuples ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp add, // defines '+' for t=u+v - const GrB_Vector u, // first input: vector u - const GrB_Scalar alpha, - const GrB_Vector v, // second input: vector v - const GrB_Scalar beta, - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + GrB_Scalar scalar, // value for all tuples + GrB_Index nvals // number of tuples ) ; -GrB_Info GxB_Matrix_eWiseUnion // C = accum (C, A+B) +// Type-generic version: X can be a pointer to any supported C type or void * +// for a user-defined type. + +/* +GrB_Info GrB_Matrix_build // build a matrix from (I,J,X) tuples ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp add, // defines '+' for T=A+B - const GrB_Matrix A, // first input: matrix A - const GrB_Scalar alpha, - const GrB_Matrix B, // second input: matrix B - const GrB_Scalar beta, - const GrB_Descriptor desc // descriptor for C, M, A, and B + GrB_Matrix C, // matrix to build + const GrB_Index *Ilist, // array of row indices of tuples + const GrB_Index *J, // array of column indices of tuples + const *X, // array of values of tuples + GrB_Index nvals, // number of tuples + const GrB_BinaryOp dup // binary function to assemble duplicates ) ; +*/ #if GxB_STDC_VERSION >= 201112L -#define GxB_eWiseUnion(C,Mask,accum,op,A,alpha,B,beta,desc) \ - _Generic \ - ( \ - (C), \ - GrB_Matrix : GxB_Matrix_eWiseUnion , \ - GrB_Vector : GxB_Vector_eWiseUnion \ - ) \ - (C, Mask, accum, op, A, alpha, B, beta, desc) +#define GrB_Matrix_build(C,Ilist,J,X,nvals,dup) \ + _Generic \ + ( \ + (X), \ + GB_PCASES (GrB, Matrix_build) \ + ) \ + (C, Ilist, J, ((const void *) (X)), nvals, dup) #endif -//============================================================================== -// GrB_extract: extract a submatrix or subvector -//============================================================================== - -// Extract entries from a matrix or vector; T = A(I,J). This (like most -// GraphBLAS methods) is then followed by C=accum(C,T). - -// To extract all rows of a matrix or vector, as in A (:,J), use I=GrB_ALL as -// the input argument. For all columns of a matrix, use J=GrB_ALL. - -GB_GLOBAL const uint64_t *GrB_ALL ; - -// To extract a range of rows and columns, I and J can be a list of 2 or 3 -// indices that defines a range (begin:end) or a strided range (begin:inc:end). -// To specify the colon syntax I = begin:end, the array I has size at least 2, -// where I [GxB_BEGIN] = begin and I [GxB_END] = end. The parameter ni is then -// passed as the special value GxB_RANGE. To specify the colon syntax I = -// begin:inc:end, the array I has size at least three, with the values begin, -// end, and inc (in that order), and then pass in the value ni = GxB_STRIDE. -// The same can be done for the list J and its size, nj. - -// These special values of ni and nj can be used for GrB_assign, -// GrB_extract, and GxB_subassign. -#define GxB_RANGE (INT64_MAX) -#define GxB_STRIDE (INT64_MAX-1) -#define GxB_BACKWARDS (INT64_MAX-2) - -// for the strided range begin:inc:end, I [GxB_BEGIN] is the value of begin, I -// [GxB_END] is the value end, I [GxB_INC] is the magnitude of the stride. If -// the stride is negative, use ni = GxB_BACKWARDS. -#define GxB_BEGIN (0) -#define GxB_END (1) -#define GxB_INC (2) +//------------------------------------------------------------------------------ +// GrB_Matrix_setElement +//------------------------------------------------------------------------------ -// For example, the notation 10:-2:1 defines a sequence [10 8 6 4 2]. -// The end point of the sequence (1) need not appear in the sequence, if -// the last increment goes past it. To specify the same in GraphBLAS, -// use: +// Set a single entry in a matrix, C(i,j) = x, typecasting +// from the type of x to the type of C, as needed. -// GrB_Index I [3], ni = GxB_BACKWARDS ; -// I [GxB_BEGIN ] = 10 ; // the start of the sequence -// I [GxB_INC ] = 2 ; // the magnitude of the increment -// I [GxB_END ] = 1 ; // the end of the sequence +GrB_Info GrB_Matrix_setElement_BOOL // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + bool x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -GrB_Info GrB_Vector_extract // w = accum (w, u(I)) +GrB_Info GrB_Matrix_setElement_INT8 // C (i,j) = x ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Vector u, // first input: vector u - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // matrix to modify + int8_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GrB_Matrix_extract // C = accum (C, A(I,J)) +GrB_Info GrB_Matrix_setElement_UINT8 // C (i,j) = x ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Matrix A, // first input: matrix A - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C, Mask, and A + GrB_Matrix C, // matrix to modify + uint8_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GrB_Col_extract // w = accum (w, A(I,j)) +GrB_Info GrB_Matrix_setElement_INT16 // C (i,j) = x ( - GrB_Vector w, // input/output matrix for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Matrix A, // first input: matrix A - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - GrB_Index j, // column index - const GrB_Descriptor desc // descriptor for w, mask, and A + GrB_Matrix C, // matrix to modify + int16_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -//------------------------------------------------------------------------------ -// GrB_extract: generic matrix/vector extraction -//------------------------------------------------------------------------------ +GrB_Info GrB_Matrix_setElement_UINT16 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + uint16_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// GrB_extract is a generic interface to the following functions: - -// GrB_Vector_extract (w,mask,acc,u,I,ni,d) // w = acc (w, u(I)) -// GrB_Col_extract (w,mask,acc,A,I,ni,j,d) // w = acc (w, A(I,j)) -// GrB_Matrix_extract (C,Mask,acc,A,I,ni,J,nj,d) // C = acc (C, A(I,J)) - -#if GxB_STDC_VERSION >= 201112L -#define GrB_extract(arg1,Mask,accum,arg4,...) \ - _Generic \ - ( \ - (arg1), \ - GrB_Vector : \ - _Generic \ - ( \ - (arg4), \ - GrB_Vector : GrB_Vector_extract , \ - GrB_Matrix : GrB_Col_extract \ - ), \ - GrB_Matrix : GrB_Matrix_extract \ - ) \ - (arg1, Mask, accum, arg4, __VA_ARGS__) -#endif +GrB_Info GrB_Matrix_setElement_INT32 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + int32_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -//============================================================================== -// GxB_subassign: matrix and vector subassign: C(I,J) = accum (C(I,J), A) -//============================================================================== +GrB_Info GrB_Matrix_setElement_UINT32 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + uint32_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// Assign entries in a matrix or vector; C(I,J) = A. +GrB_Info GrB_Matrix_setElement_INT64 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + int64_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// Each GxB_subassign function is very similar to its corresponding GrB_assign -// function in the spec, but they differ in two ways: (1) the mask in -// GxB_subassign has the same size as w(I) for vectors and C(I,J) for matrices, -// and (2) they differ in the GrB_REPLACE option. See the user guide for -// details. +GrB_Info GrB_Matrix_setElement_UINT64 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + uint64_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// In GraphBLAS notation, the two methods can be described as follows: +GrB_Info GrB_Matrix_setElement_FP32 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + float x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// matrix and vector subassign: C(I,J) = accum (C(I,J), A) -// matrix and vector assign: C(I,J) = accum (C(I,J), A) +GrB_Info GrB_Matrix_setElement_FP64 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + double x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -// --- assign ------------------------------------------------------------------ -// -// GrB_Matrix_assign C(I,J) += A M same size as matrix C. -// A is |I|-by-|J| -// -// GrB_Vector_assign w(I) += u m same size as column vector w. -// u is |I|-by-1 -// -// GrB_Row_assign C(i,J) += u' m is a column vector the same -// size as a row of C. -// u is |J|-by-1, i is a scalar. -// -// GrB_Col_assign C(I,j) += u m is a column vector the same -// size as a column of C. -// u is |I|-by-1, j is a scalar. -// -// --- subassign --------------------------------------------------------------- -// -// GxB_Matrix_subassign C(I,J) += A M same size as matrix A. -// A is |I|-by-|J| -// -// GxB_Vector_subassign w(I) += u m same size as column vector u. -// u is |I|-by-1 -// -// GxB_Row_subassign C(i,J) += u' m same size as column vector u. -// u is |J|-by-1, i is a scalar. -// -// GxB_Col_subassign C(I,j) += u m same size as column vector u. -// u is |I|-by-1, j is a scalar. +GrB_Info GxB_Matrix_setElement_FC32 // C (i,j) = x +( + GrB_Matrix C, // matrix to modify + GxB_FC32_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index +) ; -GrB_Info GxB_Vector_subassign // w(I) = accum (w(I),u) +GrB_Info GxB_Matrix_setElement_FC64 // C (i,j) = x ( - GrB_Vector w, // input/output matrix for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w(I),t) - const GrB_Vector u, // first input: vector u - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + GrB_Matrix C, // matrix to modify + GxB_FC64_t x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Matrix_subassign // C(I,J) = accum (C(I,J),A) +GrB_Info GrB_Matrix_setElement_UDT // C (i,j) = x ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),T) - const GrB_Matrix A, // first input: matrix A - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J), Mask, and A + GrB_Matrix C, // matrix to modify + void *x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Col_subassign // C(I,j) = accum (C(I,j),u) +GrB_Info GrB_Matrix_setElement_Scalar // C (i,j) = x ( - GrB_Matrix C, // input/output matrix for results - const GrB_Vector mask, // optional mask for C(I,j), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(C(I,j),t) - const GrB_Vector u, // input vector - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - GrB_Index j, // column index - const GrB_Descriptor desc // descriptor for C(I,j) and mask + GrB_Matrix C, // matrix to modify + GrB_Scalar x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Row_subassign // C(i,J) = accum (C(i,J),u') +// Type-generic version: x can be any supported C type or void * for a +// user-defined type. + +/* +GrB_Info GrB_Matrix_setElement // C (i,j) = x ( - GrB_Matrix C, // input/output matrix for results - const GrB_Vector mask, // optional mask for C(i,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(C(i,J),t) - const GrB_Vector u, // input vector - GrB_Index i, // row index - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(i,J) and mask + GrB_Matrix C, // matrix to modify + x, // scalar to assign to C(i,j) + GrB_Index i, // row index + GrB_Index j // column index ) ; +*/ + +#if GxB_STDC_VERSION >= 201112L +#define GrB_Matrix_setElement(C,x,i,j) \ + _Generic \ + ( \ + (x), \ + GB_CASES (GrB, Matrix_setElement), \ + default: GrB_Matrix_setElement_Scalar \ + ) \ + (C, x, i, j) +#endif //------------------------------------------------------------------------------ -// GxB_Vector_subassign_[SCALAR]: scalar expansion assignment to subvector +// GrB_Matrix_extractElement //------------------------------------------------------------------------------ -// Assigns a single scalar to a subvector, w(I) = accum(w(I),x). The -// scalar x is implicitly expanded into a vector u of size ni-by-1, with each -// entry in u equal to x, and then w(I) = accum(w(I),u) is done. +// Extract a single entry from a matrix, x = A(i,j), typecasting from the type +// of A to the type of x, as needed. -GrB_Info GxB_Vector_subassign_BOOL // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_BOOL // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w(I),x) - bool x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + bool *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_INT8 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_INT8 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int8_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + int8_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UINT8 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UINT8 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint8_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + uint8_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_INT16 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_INT16 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int16_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + int16_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UINT16 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UINT16 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint16_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + uint16_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_INT32 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_INT32 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + int32_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UINT32 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UINT32 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + uint32_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_INT64 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_INT64 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + int64_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UINT64 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UINT64 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + uint64_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_FP32 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_FP32 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - float x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + float *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_FP64 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_FP64 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - double x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + double *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_FC32 // w(I) = accum (w(I),x) +GrB_Info GxB_Matrix_extractElement_FC32 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GxB_FC32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + GxB_FC32_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_FC64 // w(I) = accum (w(I),x) +GrB_Info GxB_Matrix_extractElement_FC64 // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GxB_FC64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + GxB_FC64_t *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_UDT // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_UDT // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - void *x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + void *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Vector_subassign_Scalar // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_extractElement_Scalar // x = A(i,j) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w(I), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GrB_Scalar x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w(I) and mask + GrB_Scalar x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index ) ; -//------------------------------------------------------------------------------ -// GxB_Matrix_subassign_[SCALAR]: scalar expansion assignment to submatrix -//------------------------------------------------------------------------------ +// Type-generic version: x can be a pointer to any supported C type or void * +// for a user-defined type. -// Assigns a single scalar to a submatrix, C(I,J) = accum(C(I,J),x). The -// scalar x is implicitly expanded into a matrix A of size ni-by-nj, with each -// entry in A equal to x, and then C(I,J) = accum(C(I,J),A) is done. +/* +GrB_Info GrB_Matrix_extractElement // x = A(i,j) +( + *x, // extracted scalar + const GrB_Matrix A, // matrix to extract a scalar from + GrB_Index i, // row index + GrB_Index j // column index +) ; +*/ -GrB_Info GxB_Matrix_subassign_BOOL // C(I,J) = accum (C(I,J),x) +#if GxB_STDC_VERSION >= 201112L +#define GrB_Matrix_extractElement(x,A,i,j) \ + _Generic \ + ( \ + (x), \ + GB_PCASES (GrB, Matrix_extractElement), \ + default: GrB_Matrix_extractElement_Scalar \ + ) \ + (x, A, i, j) +#endif + +// GxB_Matrix_isStoredElement determines if A(i,j) is present in the structure +// of the matrix A, as a stored element. It does not return the value. It +// returns GrB_SUCCESS if the element is present, or GrB_NO_VALUE otherwise. + +GrB_Info GxB_Matrix_isStoredElement // determine if A(i,j) is a stored element ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - bool x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + const GrB_Matrix A, // matrix to check + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Matrix_subassign_INT8 // C(I,J) = accum (C(I,J),x) +//------------------------------------------------------------------------------ +// GrB_Matrix_removeElement +//------------------------------------------------------------------------------ + +// GrB_Matrix_removeElement (A,i,j) removes the entry A(i,j) from the matrix A. + +GrB_Info GrB_Matrix_removeElement ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int8_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Matrix C, // matrix to remove entry from + GrB_Index i, // row index + GrB_Index j // column index ) ; -GrB_Info GxB_Matrix_subassign_UINT8 // C(I,J) = accum (C(I,J),x) +//------------------------------------------------------------------------------ +// GrB_Matrix_extractTuples +//------------------------------------------------------------------------------ + +// Extracts all tuples from a matrix, like [I,J,X] = find (A). If +// any parameter I, J and/or X is NULL, then that component is not extracted. +// For example, to extract just the row and col indices, pass I and J as +// non-NULL, and X as NULL. This is like [I,J,~] = find (A). + +GrB_Info GrB_Matrix_extractTuples_BOOL // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint8_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + bool *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_INT16 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_INT8 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int16_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + int8_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_UINT16 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_UINT8 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint16_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + uint8_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_INT32 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_INT16 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + int16_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_UINT32 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_UINT16 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + uint16_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_INT64 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_INT32 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + int32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_UINT64 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_UINT32 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + uint32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_FP32 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_INT64 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - float x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + int64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_FP64 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_UINT64 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - double x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + uint64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_FC32 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_FP32 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GxB_FC32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + float *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_FC64 // C(I,J) = accum (C(I,J),x) +GrB_Info GrB_Matrix_extractTuples_FP64 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GxB_FC64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + double *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_UDT // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Matrix_extractTuples_FC32 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - void *x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + GxB_FC32_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -GrB_Info GxB_Matrix_subassign_Scalar // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Matrix_extractTuples_FC64 // [I,J,X] = find (A) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GrB_Scalar x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(I,J) and Mask + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + GxB_FC64_t *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from ) ; -//------------------------------------------------------------------------------ -// GxB_subassign: generic submatrix/subvector assignment -//------------------------------------------------------------------------------ +GrB_Info GrB_Matrix_extractTuples_UDT // [I,J,X] = find (A) +( + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + void *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from +) ; -// GxB_subassign is a generic function that provides access to all specific -// GxB_*_subassign* functions: +// Type-generic version: X can be a pointer to any supported C type or void * +// for a user-defined type. -// GxB_Vector_subassign (w,m,acc,u,I,ni,d) // w(I) = acc(w(I),u) -// GxB_Matrix_subassign (C,M,acc,A,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),A) -// GxB_Col_subassign (C,m,acc,u,I,ni,j,d) // C(I,j) = acc(C(I,j),u) -// GxB_Row_subassign (C,m,acc,u,i,J,nj,d) // C(i,J) = acc(C(i,J),u') -// GxB_Vector_subassign_T (w,m,acc,x,I,ni,d) // w(I) = acc(w(I),x) -// GxB_Matrix_subassign_T (C,M,acc,x,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),x) +/* +GrB_Info GrB_Matrix_extractTuples // [I,J,X] = find (A) +( + GrB_Index *Ilist, // array for returning row indices of tuples + GrB_Index *J, // array for returning col indices of tuples + *X, // array for returning values of tuples + GrB_Index *nvals, // I,J,X size on input; # tuples on output + const GrB_Matrix A // matrix to extract tuples from +) ; +*/ #if GxB_STDC_VERSION >= 201112L -#define GxB_subassign(arg1,Mask,accum,arg4,arg5,...) \ - _Generic \ - ( \ - (arg1), \ - GrB_Vector : \ - _Generic \ - ( \ - (arg4), \ - GB_CASES (GxB, Vector_subassign) , \ - GrB_Scalar : GxB_Vector_subassign_Scalar, \ - default: GxB_Vector_subassign \ - ), \ - default: \ - _Generic \ - ( \ - (arg4), \ - GB_CASES (GxB, Matrix_subassign) , \ - GrB_Scalar : GxB_Matrix_subassign_Scalar, \ - GrB_Vector : \ - _Generic \ - ( \ - (arg5), \ - const GrB_Index *: GxB_Col_subassign , \ - GrB_Index *: GxB_Col_subassign , \ - default: GxB_Row_subassign \ - ), \ - default: GxB_Matrix_subassign \ - ) \ - ) \ - (arg1, Mask, accum, arg4, arg5, __VA_ARGS__) +#define GrB_Matrix_extractTuples(Ilist,J,X,nvals,A) \ + _Generic \ + ( \ + (X), \ + GB_PCASES (GrB, Matrix_extractTuples) \ + ) \ + (Ilist, J, X, nvals, A) #endif -//============================================================================== -// GrB_assign: matrix and vector assign: C(I,J) = accum (C(I,J), A) -//============================================================================== +//------------------------------------------------------------------------------ +// GxB_Matrix_concat and GxB_Matrix_split +//------------------------------------------------------------------------------ -// Assign entries in a matrix or vector; C(I,J) = A. -// Each of these can be used with their generic name, GrB_assign. +// GxB_Matrix_concat concatenates an array of matrices (Tiles) into a single +// GrB_Matrix C. -GrB_Info GrB_Vector_assign // w(I) = accum (w(I),u) -( - GrB_Vector w, // input/output matrix for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w(I),t) - const GrB_Vector u, // first input: vector u - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// Tiles is an m-by-n dense array of matrices held in row-major format, where +// Tiles [i*n+j] is the (i,j)th tile, and where m > 0 and n > 0 must hold. Let +// A{i,j} denote the (i,j)th tile. The matrix C is constructed by +// concatenating these tiles together, as: -GrB_Info GrB_Matrix_assign // C(I,J) = accum (C(I,J),A) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),T) - const GrB_Matrix A, // first input: matrix A - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C, Mask, and A -) ; +// C = [ A{0,0} A{0,1} A{0,2} ... A{0,n-1} +// A{1,0} A{1,1} A{1,2} ... A{1,n-1} +// ... +// A{m-1,0} A{m-1,1} A{m-1,2} ... A{m-1,n-1} ] -GrB_Info GrB_Col_assign // C(I,j) = accum (C(I,j),u) +// On input, the matrix C must already exist. Any existing entries in C are +// discarded. C must have dimensions nrows by ncols where nrows is the sum of +// # of rows in the matrices A{i,0} for all i, and ncols is the sum of the # of +// columns in the matrices A{0,j} for all j. All matrices in any given tile +// row i must have the same number of rows (that is, nrows(A{i,0}) must equal +// nrows(A{i,j}) for all j), and all matrices in any given tile column j must +// have the same number of columns (that is, ncols(A{0,j}) must equal +// ncols(A{i,j}) for all i). + +// The type of C is unchanged, and all matrices A{i,j} are typecasted into the +// type of C. Any settings made to C by GrB_set (format by row +// or by column, bitmap switch, hyper switch, and sparsity control) are +// unchanged. + +GrB_Info GxB_Matrix_concat // concatenate a 2D array of matrices ( GrB_Matrix C, // input/output matrix for results - const GrB_Vector mask, // optional mask for C(:,j), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(C(I,j),t) - const GrB_Vector u, // input vector - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - GrB_Index j, // column index - const GrB_Descriptor desc // descriptor for C(:,j) and mask + const GrB_Matrix *Tiles, // 2D row-major array of size m-by-n + const GrB_Index m, + const GrB_Index n, + const GrB_Descriptor desc // unused, except threading control ) ; -GrB_Info GrB_Row_assign // C(i,J) = accum (C(i,J),u') +// GxB_Matrix_split does the opposite of GxB_Matrix_concat. It splits a single +// input matrix A into a 2D array of tiles. On input, the Tiles array must be +// a non-NULL pointer to a previously allocated array of size at least m*n +// where both m and n must be > 0. The Tiles_nrows array has size m, and +// Tiles_ncols has size n. The (i,j)th tile has dimension +// Tiles_nrows[i]-by-Tiles_ncols[j]. The sum of Tiles_nrows [0:m-1] must equal +// the number of rows of A, and the sum of Tiles_ncols [0:n-1] must equal the +// number of columns of A. The type of each tile is the same as the type of A; +// no typecasting is done. + +GrB_Info GxB_Matrix_split // split a matrix into 2D array of matrices ( - GrB_Matrix C, // input/output matrix for results - const GrB_Vector mask, // optional mask for C(i,:), unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(C(i,J),t) - const GrB_Vector u, // input vector - GrB_Index i, // row index - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C(i,:) and mask + GrB_Matrix *Tiles, // 2D row-major array of size m-by-n + const GrB_Index m, + const GrB_Index n, + const GrB_Index *Tile_nrows, // array of size m + const GrB_Index *Tile_ncols, // array of size n + const GrB_Matrix A, // input matrix to split + const GrB_Descriptor desc // unused, except threading control ) ; //------------------------------------------------------------------------------ -// GrB_Vector_assign_[SCALAR]: scalar expansion assignment to subvector +// GxB_Matrix_diag, GxB_Vector_diag, GrB_Matrix_diag //------------------------------------------------------------------------------ -// Assigns a single scalar to a subvector, w(I) = accum(w(I),x). The -// scalar x is implicitly expanded into a vector u of size ni-by-1, with each -// entry in u equal to x, and then w(I) = accum(w(I),u) is done. - -GrB_Info GrB_Vector_assign_BOOL // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w(I),x) - bool x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; - -GrB_Info GrB_Vector_assign_INT8 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int8_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// GrB_Matrix_diag constructs a new matrix from a vector. Let n be the length +// of the v vector, from GrB_Vector_size (&n, v). If k = 0, then C is an +// n-by-n diagonal matrix with the entries from v along the main diagonal of C, +// with C(i,i) = v(i). If k is nonzero, C is square with dimension n+abs(k). +// If k is positive, it denotes diagonals above the main diagonal, with +// C(i,i+k) = v(i). If k is negative, it denotes diagonals below the main +// diagonal of C, with C(i-k,i) = v(i). C is constructed with the same type +// as v. -GrB_Info GrB_Vector_assign_UINT8 // w(I) = accum (w(I),x) +GrB_Info GrB_Matrix_diag // build a diagonal matrix from a vector ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint8_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix *C, // output matrix + const GrB_Vector v, // input vector + int64_t k ) ; -GrB_Info GrB_Vector_assign_INT16 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int16_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// GrB_Matrix_diag is like GxB_Matrix_diag (&C, v, k, NULL), except that C must +// already exist on input, of the correct size. Any existing entries in C are +// discarded. The type of C is preserved, so that if the type of C and v +// differ, the entries are typecasted into the type of C. Any settings made to +// C by GrB_set (format by row or by column, bitmap switch, hyper +// switch, and sparsity control) are unchanged. -GrB_Info GrB_Vector_assign_UINT16 // w(I) = accum (w(I),x) +GrB_Info GxB_Matrix_diag // construct a diagonal matrix from a vector ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint16_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // output matrix + const GrB_Vector v, // input vector + int64_t k, + const GrB_Descriptor desc // to specify # of threads ) ; -GrB_Info GrB_Vector_assign_INT32 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// GxB_Vector_diag extracts a vector v from an input matrix A, which may be +// rectangular. If k = 0, the main diagonal of A is extracted; k > 0 denotes +// diagonals above the main diagonal of A, and k < 0 denotes diagonals below +// the main diagonal of A. Let A have dimension m-by-n. If k is in the range +// 0 to n-1, then v has length min(m,n-k). If k is negative and in the range +// -1 to -m+1, then v has length min(m+k,n). If k is outside these ranges, +// v has length 0 (this is not an error). -GrB_Info GrB_Vector_assign_UINT32 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// v must already exist on input, of the correct length; that is +// GrB_Vector_size (&len,v) must return len = 0 if k >= n or k <= -m, len = +// min(m,n-k) if k is in the range 0 to n-1, and len = min(m+k,n) if k is in +// the range -1 to -m+1. Any existing entries in v are discarded. The type of +// v is preserved, so that if the type of A and v differ, the entries are +// typecasted into the type of v. Any settings made to v by +// GrB_set (bitmap switch and sparsity control) are unchanged. -GrB_Info GrB_Vector_assign_INT64 // w(I) = accum (w(I),x) +GrB_Info GxB_Vector_diag // extract a diagonal from a matrix, as a vector ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - int64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GrB_Vector v, // output vector + const GrB_Matrix A, // input matrix + int64_t k, + const GrB_Descriptor desc // unused, except threading control ) ; -GrB_Info GrB_Vector_assign_UINT64 // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - uint64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +//============================================================================== +// GxB_Context: for managing computational resources +//============================================================================== -GrB_Info GrB_Vector_assign_FP32 // w(I) = accum (w(I),x) +GrB_Info GxB_Context_new // create a new Context ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - float x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GxB_Context *Context // handle of Context to create ) ; -GrB_Info GrB_Vector_assign_FP64 // w(I) = accum (w(I),x) +GrB_Info GxB_Context_free // free a Context ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - double x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GxB_Context *Context // handle of Context to free ) ; -GrB_Info GxB_Vector_assign_FC32 // w(I) = accum (w(I),x) +GrB_Info GxB_Context_engage // engage a Context ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GxB_FC32_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GxB_Context Context // Context to engage ) ; -GrB_Info GxB_Vector_assign_FC64 // w(I) = accum (w(I),x) +GrB_Info GxB_Context_disengage // disengage a Context ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GxB_FC64_t x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask + GxB_Context Context // Context to disengage ) ; -GrB_Info GrB_Vector_assign_UDT // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - void *x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +//============================================================================== +// GxB_set and GxB_get: historical; use GrB_set and GrB_get instead +//============================================================================== -GrB_Info GrB_Vector_assign_Scalar // w(I) = accum (w(I),x) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) - GrB_Scalar x, // scalar to assign to w(I) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Descriptor desc // descriptor for w and mask -) ; +// historical: use GrB_set and GrB_get instead of these methods: +GrB_Info GxB_Matrix_Option_set (GrB_Matrix, GxB_Option_Field, ...) ; +GrB_Info GxB_Matrix_Option_set_INT32 (GrB_Matrix, GxB_Option_Field, int32_t) ; +GrB_Info GxB_Matrix_Option_set_FP64 (GrB_Matrix, GxB_Option_Field, double) ; +GrB_Info GxB_Matrix_Option_get (GrB_Matrix, GxB_Option_Field, ...) ; +GrB_Info GxB_Matrix_Option_get_INT32 (GrB_Matrix, GxB_Option_Field, int32_t *) ; +GrB_Info GxB_Matrix_Option_get_FP64 (GrB_Matrix, GxB_Option_Field, double *) ; +GrB_Info GxB_Vector_Option_set (GrB_Vector, GxB_Option_Field, ...) ; +GrB_Info GxB_Vector_Option_set_INT32 (GrB_Vector, GxB_Option_Field, int32_t) ; +GrB_Info GxB_Vector_Option_set_FP64 (GrB_Vector, GxB_Option_Field, double) ; +GrB_Info GxB_Vector_Option_get (GrB_Vector, GxB_Option_Field, ...) ; +GrB_Info GxB_Vector_Option_get_INT32 (GrB_Vector, GxB_Option_Field, int32_t *) ; +GrB_Info GxB_Vector_Option_get_FP64 (GrB_Vector, GxB_Option_Field, double *) ; +GrB_Info GxB_Global_Option_set (GxB_Option_Field, ...) ; +GrB_Info GxB_Global_Option_set_INT32 (GxB_Option_Field, int32_t) ; +GrB_Info GxB_Global_Option_set_FP64 (GxB_Option_Field, double) ; +GrB_Info GxB_Global_Option_set_FP64_ARRAY (GxB_Option_Field, double *) ; +GrB_Info GxB_Global_Option_set_INT64_ARRAY (GxB_Option_Field, int64_t *) ; +GrB_Info GxB_Global_Option_set_CHAR (GxB_Option_Field, const char *) ; +GrB_Info GxB_Global_Option_set_FUNCTION (GxB_Option_Field, void *) ; +GrB_Info GxB_Global_Option_get (GxB_Option_Field, ...) ; +GrB_Info GxB_Global_Option_get_INT32 (GxB_Option_Field, int32_t *) ; +GrB_Info GxB_Global_Option_get_FP64 (GxB_Option_Field, double *) ; +GrB_Info GxB_Global_Option_get_INT64 (GxB_Option_Field, int64_t *) ; +GrB_Info GxB_Global_Option_get_CHAR (GxB_Option_Field, const char **) ; +GrB_Info GxB_Global_Option_get_FUNCTION (GxB_Option_Field, void **) ; +GrB_Info GxB_Context_set_INT32 (GxB_Context, GxB_Context_Field, int32_t) ; +GrB_Info GxB_Context_set_FP64 (GxB_Context, GxB_Context_Field, double) ; +GrB_Info GxB_Context_set (GxB_Context, GxB_Context_Field, ...) ; +GrB_Info GxB_Context_get_INT32 (GxB_Context, GxB_Context_Field, int32_t *) ; +GrB_Info GxB_Context_get_FP64 (GxB_Context, GxB_Context_Field, double *) ; +GrB_Info GxB_Context_get (GxB_Context, GxB_Context_Field, ...) ; + +#if GxB_STDC_VERSION >= 201112L +#define GxB_set(arg1,...) \ + _Generic \ + ( \ + (arg1), \ + default: GxB_Global_Option_set , \ + GxB_Option_Field : GxB_Global_Option_set , \ + GrB_Vector : GxB_Vector_Option_set , \ + GrB_Matrix : GxB_Matrix_Option_set , \ + GrB_Descriptor : GxB_Desc_set , \ + GxB_Context : GxB_Context_set \ + ) \ + (arg1, __VA_ARGS__) + +#define GxB_get(arg1,...) \ + _Generic \ + ( \ + (arg1), \ + default: GxB_Global_Option_get , \ + GxB_Option_Field : GxB_Global_Option_get , \ + GrB_Vector : GxB_Vector_Option_get , \ + GrB_Matrix : GxB_Matrix_Option_get , \ + GrB_Descriptor : GxB_Desc_get , \ + GxB_Context : GxB_Context_get \ + ) \ + (arg1, __VA_ARGS__) +#endif + +//============================================================================== +// GrB_set and GrB_get +//============================================================================== //------------------------------------------------------------------------------ -// GrB_Matrix_assign_[SCALAR]: scalar expansion assignment to submatrix +// GrB_get: get a scalar, string, enum, size, or void * from an object //------------------------------------------------------------------------------ -// Assigns a single scalar to a submatrix, C(I,J) = accum(C(I,J),x). The -// scalar x is implicitly expanded into a matrix A of size ni-by-nj, with each -// entry in A equal to x, and then C(I,J) = accum(C(I,J),A) is done. +GrB_Info GrB_Scalar_get_Scalar (GrB_Scalar, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Scalar_get_String (GrB_Scalar, char * , GrB_Field) ; +GrB_Info GrB_Scalar_get_INT32 (GrB_Scalar, int32_t * , GrB_Field) ; +GrB_Info GrB_Scalar_get_SIZE (GrB_Scalar, size_t * , GrB_Field) ; +GrB_Info GrB_Scalar_get_VOID (GrB_Scalar, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_BOOL // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - bool x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Vector_get_Scalar (GrB_Vector, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Vector_get_String (GrB_Vector, char * , GrB_Field) ; +GrB_Info GrB_Vector_get_INT32 (GrB_Vector, int32_t * , GrB_Field) ; +GrB_Info GrB_Vector_get_SIZE (GrB_Vector, size_t * , GrB_Field) ; +GrB_Info GrB_Vector_get_VOID (GrB_Vector, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_INT8 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int8_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Matrix_get_Scalar (GrB_Matrix, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Matrix_get_String (GrB_Matrix, char * , GrB_Field) ; +GrB_Info GrB_Matrix_get_INT32 (GrB_Matrix, int32_t * , GrB_Field) ; +GrB_Info GrB_Matrix_get_SIZE (GrB_Matrix, size_t * , GrB_Field) ; +GrB_Info GrB_Matrix_get_VOID (GrB_Matrix, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_UINT8 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint8_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GxB_Serialized_get_Scalar (const void *, GrB_Scalar, GrB_Field, size_t) ; +GrB_Info GxB_Serialized_get_String (const void *, char * , GrB_Field, size_t) ; +GrB_Info GxB_Serialized_get_INT32 (const void *, int32_t * , GrB_Field, size_t) ; +GrB_Info GxB_Serialized_get_SIZE (const void *, size_t * , GrB_Field, size_t) ; +GrB_Info GxB_Serialized_get_VOID (const void *, void * , GrB_Field, size_t) ; -GrB_Info GrB_Matrix_assign_INT16 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int16_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_UnaryOp_get_Scalar (GrB_UnaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_UnaryOp_get_String (GrB_UnaryOp, char * , GrB_Field) ; +GrB_Info GrB_UnaryOp_get_INT32 (GrB_UnaryOp, int32_t * , GrB_Field) ; +GrB_Info GrB_UnaryOp_get_SIZE (GrB_UnaryOp, size_t * , GrB_Field) ; +GrB_Info GrB_UnaryOp_get_VOID (GrB_UnaryOp, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_UINT16 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint16_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_IndexUnaryOp_get_Scalar (GrB_IndexUnaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_get_String (GrB_IndexUnaryOp, char * , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_get_INT32 (GrB_IndexUnaryOp, int32_t * , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_get_SIZE (GrB_IndexUnaryOp, size_t * , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_get_VOID (GrB_IndexUnaryOp, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_INT32 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_BinaryOp_get_Scalar (GrB_BinaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_BinaryOp_get_String (GrB_BinaryOp, char * , GrB_Field) ; +GrB_Info GrB_BinaryOp_get_INT32 (GrB_BinaryOp, int32_t * , GrB_Field) ; +GrB_Info GrB_BinaryOp_get_SIZE (GrB_BinaryOp, size_t * , GrB_Field) ; +GrB_Info GrB_BinaryOp_get_VOID (GrB_BinaryOp, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_UINT32 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint32_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Monoid_get_Scalar (GrB_Monoid, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Monoid_get_String (GrB_Monoid, char * , GrB_Field) ; +GrB_Info GrB_Monoid_get_INT32 (GrB_Monoid, int32_t * , GrB_Field) ; +GrB_Info GrB_Monoid_get_SIZE (GrB_Monoid, size_t * , GrB_Field) ; +GrB_Info GrB_Monoid_get_VOID (GrB_Monoid, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_INT64 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - int64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Semiring_get_Scalar (GrB_Semiring, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Semiring_get_String (GrB_Semiring, char * , GrB_Field) ; +GrB_Info GrB_Semiring_get_INT32 (GrB_Semiring, int32_t * , GrB_Field) ; +GrB_Info GrB_Semiring_get_SIZE (GrB_Semiring, size_t * , GrB_Field) ; +GrB_Info GrB_Semiring_get_VOID (GrB_Semiring, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_UINT64 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - uint64_t x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Descriptor_get_Scalar (GrB_Descriptor, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Descriptor_get_String (GrB_Descriptor, char * , GrB_Field) ; +GrB_Info GrB_Descriptor_get_INT32 (GrB_Descriptor, int32_t * , GrB_Field) ; +GrB_Info GrB_Descriptor_get_SIZE (GrB_Descriptor, size_t * , GrB_Field) ; +GrB_Info GrB_Descriptor_get_VOID (GrB_Descriptor, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_FP32 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - float x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask -) ; +GrB_Info GrB_Type_get_Scalar (GrB_Type, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Type_get_String (GrB_Type, char * , GrB_Field) ; +GrB_Info GrB_Type_get_INT32 (GrB_Type, int32_t * , GrB_Field) ; +GrB_Info GrB_Type_get_SIZE (GrB_Type, size_t * , GrB_Field) ; +GrB_Info GrB_Type_get_VOID (GrB_Type, void * , GrB_Field) ; -GrB_Info GrB_Matrix_assign_FP64 // C(I,J) = accum (C(I,J),x) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - double x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices +GrB_Info GrB_Global_get_Scalar (GrB_Global, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Global_get_String (GrB_Global, char * , GrB_Field) ; +GrB_Info GrB_Global_get_INT32 (GrB_Global, int32_t * , GrB_Field) ; +GrB_Info GrB_Global_get_SIZE (GrB_Global, size_t * , GrB_Field) ; +GrB_Info GrB_Global_get_VOID (GrB_Global, void * , GrB_Field) ; + +GrB_Info GxB_Context_get_Scalar (GxB_Context, GrB_Scalar, GrB_Field) ; +GrB_Info GxB_Context_get_String (GxB_Context, char * , GrB_Field) ; +GrB_Info GxB_Context_get_INT (GxB_Context, int32_t * , GrB_Field) ; +GrB_Info GxB_Context_get_SIZE (GxB_Context, size_t * , GrB_Field) ; +GrB_Info GxB_Context_get_VOID (GxB_Context, void * , GrB_Field) ; + +// GrB_get (object, value, field): +#if GxB_STDC_VERSION >= 201112L +#define GrB_get(object,value,...) \ + _Generic \ + ( \ + (object), \ + GrB_Scalar : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Scalar_get_Scalar , \ + char * : GrB_Scalar_get_String , \ + int32_t * : GrB_Scalar_get_INT32 , \ + size_t * : GrB_Scalar_get_SIZE , \ + void * : GrB_Scalar_get_VOID \ + ) , \ + GrB_Vector : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Vector_get_Scalar , \ + char * : GrB_Vector_get_String , \ + int32_t * : GrB_Vector_get_INT32 , \ + size_t * : GrB_Vector_get_SIZE , \ + void * : GrB_Vector_get_VOID \ + ) , \ + GrB_Matrix : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Matrix_get_Scalar , \ + char * : GrB_Matrix_get_String , \ + int32_t * : GrB_Matrix_get_INT32 , \ + size_t * : GrB_Matrix_get_SIZE , \ + void * : GrB_Matrix_get_VOID \ + ) , \ + GrB_UnaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_UnaryOp_get_Scalar , \ + char * : GrB_UnaryOp_get_String , \ + int32_t * : GrB_UnaryOp_get_INT32 , \ + size_t * : GrB_UnaryOp_get_SIZE , \ + void * : GrB_UnaryOp_get_VOID \ + ) , \ + GrB_IndexUnaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_IndexUnaryOp_get_Scalar , \ + char * : GrB_IndexUnaryOp_get_String , \ + int32_t * : GrB_IndexUnaryOp_get_INT32 , \ + size_t * : GrB_IndexUnaryOp_get_SIZE , \ + void * : GrB_IndexUnaryOp_get_VOID \ + ) , \ + GrB_BinaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_BinaryOp_get_Scalar , \ + char * : GrB_BinaryOp_get_String , \ + int32_t * : GrB_BinaryOp_get_INT32 , \ + size_t * : GrB_BinaryOp_get_SIZE , \ + void * : GrB_BinaryOp_get_VOID \ + ) , \ + GrB_Monoid : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Monoid_get_Scalar , \ + char * : GrB_Monoid_get_String , \ + int32_t * : GrB_Monoid_get_INT32 , \ + size_t * : GrB_Monoid_get_SIZE , \ + void * : GrB_Monoid_get_VOID \ + ) , \ + GrB_Semiring : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Semiring_get_Scalar , \ + char * : GrB_Semiring_get_String , \ + int32_t * : GrB_Semiring_get_INT32 , \ + size_t * : GrB_Semiring_get_SIZE , \ + void * : GrB_Semiring_get_VOID \ + ) , \ + GrB_Type : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Type_get_Scalar , \ + char * : GrB_Type_get_String , \ + int32_t * : GrB_Type_get_INT32 , \ + size_t * : GrB_Type_get_SIZE , \ + void * : GrB_Type_get_VOID \ + ) , \ + GrB_Descriptor : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Descriptor_get_Scalar , \ + char * : GrB_Descriptor_get_String , \ + int32_t * : GrB_Descriptor_get_INT32 , \ + size_t * : GrB_Descriptor_get_SIZE , \ + void * : GrB_Descriptor_get_VOID \ + ) , \ + GrB_Global : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Global_get_Scalar , \ + char * : GrB_Global_get_String , \ + int32_t * : GrB_Global_get_INT32 , \ + size_t * : GrB_Global_get_SIZE , \ + void * : GrB_Global_get_VOID \ + ) , \ + GxB_Context : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GxB_Context_get_Scalar , \ + char * : GxB_Context_get_String , \ + int32_t * : GxB_Context_get_INT , \ + size_t * : GxB_Context_get_SIZE , \ + void * : GxB_Context_get_VOID \ + ) , \ + const void *: \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GxB_Serialized_get_Scalar , \ + char * : GxB_Serialized_get_String , \ + int32_t * : GxB_Serialized_get_INT32 , \ + size_t * : GxB_Serialized_get_SIZE , \ + void * : GxB_Serialized_get_VOID \ + ) , \ + void *: \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GxB_Serialized_get_Scalar , \ + char * : GxB_Serialized_get_String , \ + int32_t * : GxB_Serialized_get_INT32 , \ + size_t * : GxB_Serialized_get_SIZE , \ + void * : GxB_Serialized_get_VOID \ + ) \ + ) (object, value, __VA_ARGS__) +#endif + +//------------------------------------------------------------------------------ +// GrB_set: set a scalar, string, enum, size, or void * of an object +//------------------------------------------------------------------------------ + +GrB_Info GrB_Scalar_set_Scalar (GrB_Scalar, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Scalar_set_String (GrB_Scalar, char * , GrB_Field) ; +GrB_Info GrB_Scalar_set_INT32 (GrB_Scalar, int32_t , GrB_Field) ; +GrB_Info GrB_Scalar_set_VOID (GrB_Scalar, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Vector_set_Scalar (GrB_Vector, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Vector_set_String (GrB_Vector, char * , GrB_Field) ; +GrB_Info GrB_Vector_set_INT32 (GrB_Vector, int32_t , GrB_Field) ; +GrB_Info GrB_Vector_set_VOID (GrB_Vector, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Matrix_set_Scalar (GrB_Matrix, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Matrix_set_String (GrB_Matrix, char * , GrB_Field) ; +GrB_Info GrB_Matrix_set_INT32 (GrB_Matrix, int32_t , GrB_Field) ; +GrB_Info GrB_Matrix_set_VOID (GrB_Matrix, void * , GrB_Field, size_t) ; + +GrB_Info GrB_UnaryOp_set_Scalar (GrB_UnaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_UnaryOp_set_String (GrB_UnaryOp, char * , GrB_Field) ; +GrB_Info GrB_UnaryOp_set_INT32 (GrB_UnaryOp, int32_t , GrB_Field) ; +GrB_Info GrB_UnaryOp_set_VOID (GrB_UnaryOp, void * , GrB_Field, size_t) ; + +GrB_Info GrB_IndexUnaryOp_set_Scalar (GrB_IndexUnaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_set_String (GrB_IndexUnaryOp, char * , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_set_INT32 (GrB_IndexUnaryOp, int32_t , GrB_Field) ; +GrB_Info GrB_IndexUnaryOp_set_VOID (GrB_IndexUnaryOp, void * , GrB_Field, + size_t) ; + +GrB_Info GrB_BinaryOp_set_Scalar (GrB_BinaryOp, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_BinaryOp_set_String (GrB_BinaryOp, char * , GrB_Field) ; +GrB_Info GrB_BinaryOp_set_INT32 (GrB_BinaryOp, int32_t , GrB_Field) ; +GrB_Info GrB_BinaryOp_set_VOID (GrB_BinaryOp, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Monoid_set_Scalar (GrB_Monoid, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Monoid_set_String (GrB_Monoid, char * , GrB_Field) ; +GrB_Info GrB_Monoid_set_INT32 (GrB_Monoid, int32_t , GrB_Field) ; +GrB_Info GrB_Monoid_set_VOID (GrB_Monoid, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Semiring_set_Scalar (GrB_Semiring, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Semiring_set_String (GrB_Semiring, char * , GrB_Field) ; +GrB_Info GrB_Semiring_set_INT32 (GrB_Semiring, int32_t , GrB_Field) ; +GrB_Info GrB_Semiring_set_VOID (GrB_Semiring, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Descriptor_set_Scalar (GrB_Descriptor, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Descriptor_set_String (GrB_Descriptor, char * , GrB_Field) ; +GrB_Info GrB_Descriptor_set_INT32 (GrB_Descriptor, int32_t , GrB_Field) ; +GrB_Info GrB_Descriptor_set_VOID (GrB_Descriptor, void * , GrB_Field, + size_t) ; + +GrB_Info GrB_Type_set_Scalar (GrB_Type, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Type_set_String (GrB_Type, char * , GrB_Field) ; +GrB_Info GrB_Type_set_INT32 (GrB_Type, int32_t , GrB_Field) ; +GrB_Info GrB_Type_set_VOID (GrB_Type, void * , GrB_Field, size_t) ; + +GrB_Info GrB_Global_set_Scalar (GrB_Global, GrB_Scalar, GrB_Field) ; +GrB_Info GrB_Global_set_String (GrB_Global, char * , GrB_Field) ; +GrB_Info GrB_Global_set_INT32 (GrB_Global, int32_t , GrB_Field) ; +GrB_Info GrB_Global_set_VOID (GrB_Global, void * , GrB_Field, size_t) ; + +GrB_Info GxB_Context_set_Scalar (GxB_Context, GrB_Scalar, GrB_Field) ; +GrB_Info GxB_Context_set_String (GxB_Context, char * , GrB_Field) ; +GrB_Info GxB_Context_set_INT (GxB_Context, int32_t , GrB_Field) ; +GrB_Info GxB_Context_set_VOID (GxB_Context, void * , GrB_Field, size_t) ; + +// GrB_set (object, value, field) or (object, value, field, size) for _VOID +#if GxB_STDC_VERSION >= 201112L +#define GrB_set(object,value,...) \ + _Generic \ + ( \ + (object), \ + GrB_Scalar : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Scalar_set_Scalar , \ + char * : GrB_Scalar_set_String , \ + int32_t : GrB_Scalar_set_INT32 , \ + void * : GrB_Scalar_set_VOID \ + ) , \ + GrB_Vector : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Vector_set_Scalar , \ + char * : GrB_Vector_set_String , \ + int32_t : GrB_Vector_set_INT32 , \ + void * : GrB_Vector_set_VOID \ + ) , \ + GrB_Matrix : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Matrix_set_Scalar , \ + char * : GrB_Matrix_set_String , \ + int32_t : GrB_Matrix_set_INT32 , \ + void * : GrB_Matrix_set_VOID \ + ) , \ + GrB_UnaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_UnaryOp_set_Scalar , \ + char * : GrB_UnaryOp_set_String , \ + int32_t : GrB_UnaryOp_set_INT32 , \ + void * : GrB_UnaryOp_set_VOID \ + ) , \ + GrB_IndexUnaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_IndexUnaryOp_set_Scalar , \ + char * : GrB_IndexUnaryOp_set_String , \ + int32_t : GrB_IndexUnaryOp_set_INT32 , \ + void * : GrB_IndexUnaryOp_set_VOID \ + ) , \ + GrB_BinaryOp : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_BinaryOp_set_Scalar , \ + char * : GrB_BinaryOp_set_String , \ + int32_t : GrB_BinaryOp_set_INT32 , \ + void * : GrB_BinaryOp_set_VOID \ + ) , \ + GrB_Monoid : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Monoid_set_Scalar , \ + char * : GrB_Monoid_set_String , \ + int32_t : GrB_Monoid_set_INT32 , \ + void * : GrB_Monoid_set_VOID \ + ) , \ + GrB_Semiring : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Semiring_set_Scalar , \ + char * : GrB_Semiring_set_String , \ + int32_t : GrB_Semiring_set_INT32 , \ + void * : GrB_Semiring_set_VOID \ + ) , \ + GrB_Type : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Type_set_Scalar , \ + char * : GrB_Type_set_String , \ + int32_t : GrB_Type_set_INT32 , \ + void * : GrB_Type_set_VOID \ + ) , \ + GrB_Descriptor : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Descriptor_set_Scalar , \ + char * : GrB_Descriptor_set_String , \ + int32_t : GrB_Descriptor_set_INT32 , \ + void * : GrB_Descriptor_set_VOID \ + ) , \ + GrB_Global : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GrB_Global_set_Scalar , \ + char * : GrB_Global_set_String , \ + int32_t : GrB_Global_set_INT32 , \ + void * : GrB_Global_set_VOID \ + ) , \ + GxB_Context : \ + _Generic \ + ( \ + (value), \ + GrB_Scalar : GxB_Context_set_Scalar , \ + char * : GxB_Context_set_String , \ + int32_t : GxB_Context_set_INT , \ + void * : GxB_Context_set_VOID \ + ) \ + ) (object, value, __VA_ARGS__) +#endif + +//============================================================================== +// GrB_free: free any GraphBLAS object +//============================================================================== + +#if GxB_STDC_VERSION >= 201112L +#define GrB_free(object) \ + _Generic \ + ( \ + (object), \ + GrB_Type *: GrB_Type_free , \ + GrB_UnaryOp *: GrB_UnaryOp_free , \ + GrB_BinaryOp *: GrB_BinaryOp_free , \ + GrB_IndexUnaryOp *: GrB_IndexUnaryOp_free , \ + GrB_Monoid *: GrB_Monoid_free , \ + GrB_Semiring *: GrB_Semiring_free , \ + GrB_Scalar *: GrB_Scalar_free , \ + GrB_Vector *: GrB_Vector_free , \ + GrB_Matrix *: GrB_Matrix_free , \ + GrB_Descriptor *: GrB_Descriptor_free , \ + GxB_Context *: GxB_Context_free , \ + GxB_Iterator *: GxB_Iterator_free \ + ) \ + (object) +#endif + +//============================================================================== +// GrB_wait: finish computations +//============================================================================== + +// Finish all pending work in a specific object. + +GrB_Info GrB_Type_wait (GrB_Type type , GrB_WaitMode waitmode); +GrB_Info GrB_UnaryOp_wait (GrB_UnaryOp op , GrB_WaitMode waitmode); +GrB_Info GrB_BinaryOp_wait (GrB_BinaryOp op , GrB_WaitMode waitmode); +GrB_Info GrB_IndexUnaryOp_wait (GrB_IndexUnaryOp op , GrB_WaitMode waitmode); +GrB_Info GrB_Monoid_wait (GrB_Monoid monoid , GrB_WaitMode waitmode); +GrB_Info GrB_Semiring_wait (GrB_Semiring semiring, GrB_WaitMode waitmode); +GrB_Info GrB_Descriptor_wait (GrB_Descriptor desc , GrB_WaitMode waitmode); +GrB_Info GrB_Scalar_wait (GrB_Scalar s , GrB_WaitMode waitmode); +GrB_Info GrB_Vector_wait (GrB_Vector v , GrB_WaitMode waitmode); +GrB_Info GrB_Matrix_wait (GrB_Matrix A , GrB_WaitMode waitmode); +GrB_Info GxB_Context_wait (GxB_Context Context , GrB_WaitMode waitmode); + +// GrB_wait (object,waitmode) polymorphic function: +#if GxB_STDC_VERSION >= 201112L +#define GrB_wait(object,waitmode) \ + _Generic \ + ( \ + (object), \ + GrB_Type : GrB_Type_wait , \ + GrB_UnaryOp : GrB_UnaryOp_wait , \ + GrB_BinaryOp : GrB_BinaryOp_wait , \ + GrB_IndexUnaryOp : GrB_IndexUnaryOp_wait , \ + GrB_Monoid : GrB_Monoid_wait , \ + GrB_Semiring : GrB_Semiring_wait , \ + GrB_Scalar : GrB_Scalar_wait , \ + GrB_Vector : GrB_Vector_wait , \ + GrB_Matrix : GrB_Matrix_wait , \ + GxB_Context : GxB_Context_wait , \ + GrB_Descriptor : GrB_Descriptor_wait \ + ) \ + (object, waitmode) +#endif + +// NOTE: GxB_Scalar_wait is historical; use GrB_Scalar_wait instead +GrB_Info GxB_Scalar_wait (GrB_Scalar *s) ; + +//============================================================================== +// GrB_error: error handling +//============================================================================== + +// Each GraphBLAS method and operation returns a GrB_Info error code. +// GrB_error returns additional information on the error in a thread-safe +// null-terminated string. The string returned by GrB_error is owned by +// the GraphBLAS library and must not be free'd. + +GrB_Info GrB_Type_error (const char **error, const GrB_Type type) ; +GrB_Info GrB_UnaryOp_error (const char **error, const GrB_UnaryOp op) ; +GrB_Info GrB_BinaryOp_error (const char **error, const GrB_BinaryOp op) ; +GrB_Info GrB_IndexUnaryOp_error (const char **error, const GrB_IndexUnaryOp op) ; +GrB_Info GrB_Monoid_error (const char **error, const GrB_Monoid monoid) ; +GrB_Info GrB_Semiring_error (const char **error, const GrB_Semiring semiring) ; +GrB_Info GrB_Scalar_error (const char **error, const GrB_Scalar s) ; +GrB_Info GrB_Vector_error (const char **error, const GrB_Vector v) ; +GrB_Info GrB_Matrix_error (const char **error, const GrB_Matrix A) ; +GrB_Info GrB_Descriptor_error (const char **error, const GrB_Descriptor d) ; +// GxB_Scalar_error is historical: use GrB_Scalar_error instead +GrB_Info GxB_Scalar_error (const char **error, const GrB_Scalar s) ; +GrB_Info GxB_Context_error (const char **error, const GxB_Context Context); + +// GrB_error (error,object) polymorphic function: +#if GxB_STDC_VERSION >= 201112L +#define GrB_error(error,object) \ + _Generic \ + ( \ + (object), \ + GrB_Type : GrB_Type_error , \ + GrB_UnaryOp : GrB_UnaryOp_error , \ + GrB_BinaryOp : GrB_BinaryOp_error , \ + GrB_IndexUnaryOp : GrB_IndexUnaryOp_error , \ + GrB_Monoid : GrB_Monoid_error , \ + GrB_Semiring : GrB_Semiring_error , \ + GrB_Scalar : GrB_Scalar_error , \ + GrB_Vector : GrB_Vector_error , \ + GrB_Matrix : GrB_Matrix_error , \ + GxB_Context : GxB_Context_error , \ + GrB_Descriptor : GrB_Descriptor_error \ + ) \ + (error, object) +#endif + +//============================================================================== +// GrB_mxm, vxm, mxv: matrix multiplication over a semiring +//============================================================================== + +GrB_Info GrB_mxm // C = accum (C, A*B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Semiring semiring, // defines '+' and '*' for A*B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_vxm // w' = accum (w, u'*A) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Semiring semiring, // defines '+' and '*' for u'*A + const GrB_Vector u, // first input: vector u + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for w, mask, and A +) ; + +GrB_Info GrB_mxv // w = accum (w, A*u) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Semiring semiring, // defines '+' and '*' for A*B + const GrB_Matrix A, // first input: matrix A + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w, mask, and A +) ; + +//============================================================================== +// GrB_eWiseMult: element-wise matrix and vector operations, set intersection +//============================================================================== + +// GrB_eWiseMult computes C = accum (C, A.*B), where ".*" is the Hadamard +// product, and where pairs of elements in two matrices (or vectors) are +// pairwise "multiplied" with C(i,j) = mult (A(i,j),B(i,j)). + +GrB_Info GrB_Vector_eWiseMult_Semiring // w = accum (w, u.*v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Semiring semiring, // defines '.*' for t=u.*v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_eWiseMult_Monoid // w = accum (w, u.*v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Monoid monoid, // defines '.*' for t=u.*v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_eWiseMult_BinaryOp // w = accum (w, u.*v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp mult, // defines '.*' for t=u.*v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Matrix_eWiseMult_Semiring // C = accum (C, A.*B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Semiring semiring, // defines '.*' for T=A.*B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_Matrix_eWiseMult_Monoid // C = accum (C, A.*B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Monoid monoid, // defines '.*' for T=A.*B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_Matrix_eWiseMult_BinaryOp // C = accum (C, A.*B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp mult, // defines '.*' for T=A.*B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +// All 6 of the above type-specific functions are captured in a single +// type-generic function, GrB_eWiseMult: + +#if GxB_STDC_VERSION >= 201112L +#define GrB_eWiseMult(C,Mask,accum,op,A,B,desc) \ + _Generic \ + ( \ + (C), \ + GrB_Matrix : \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Matrix_eWiseMult_Semiring , \ + GrB_Monoid : GrB_Matrix_eWiseMult_Monoid , \ + GrB_BinaryOp : GrB_Matrix_eWiseMult_BinaryOp \ + ), \ + GrB_Vector : \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Vector_eWiseMult_Semiring , \ + GrB_Monoid : GrB_Vector_eWiseMult_Monoid , \ + GrB_BinaryOp : GrB_Vector_eWiseMult_BinaryOp \ + ) \ + ) \ + (C, Mask, accum, op, A, B, desc) +#endif + +//============================================================================== +// GrB_eWiseAdd: element-wise matrix and vector operations, set union +//============================================================================== + +// GrB_eWiseAdd computes C = accum (C, A+B), where pairs of elements in +// two matrices (or two vectors) are pairwise "added". + +GrB_Info GrB_Vector_eWiseAdd_Semiring // w = accum (w, u+v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Semiring semiring, // defines '+' for t=u+v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_eWiseAdd_Monoid // w = accum (w, u+v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Monoid monoid, // defines '+' for t=u+v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_eWiseAdd_BinaryOp // w = accum (w, u+v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp add, // defines '+' for t=u+v + const GrB_Vector u, // first input: vector u + const GrB_Vector v, // second input: vector v + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Matrix_eWiseAdd_Semiring // C = accum (C, A+B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Semiring semiring, // defines '+' for T=A+B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_Matrix_eWiseAdd_Monoid // C = accum (C, A+B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Monoid monoid, // defines '+' for T=A+B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +GrB_Info GrB_Matrix_eWiseAdd_BinaryOp // C = accum (C, A+B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp add, // defines '+' for T=A+B + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; + +#if GxB_STDC_VERSION >= 201112L +#define GrB_eWiseAdd(C,Mask,accum,op,A,B,desc) \ + _Generic \ + ( \ + (C), \ + GrB_Matrix : \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Matrix_eWiseAdd_Semiring , \ + GrB_Monoid : GrB_Matrix_eWiseAdd_Monoid , \ + GrB_BinaryOp : GrB_Matrix_eWiseAdd_BinaryOp \ + ), \ + GrB_Vector : \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Vector_eWiseAdd_Semiring , \ + GrB_Monoid : GrB_Vector_eWiseAdd_Monoid , \ + GrB_BinaryOp : GrB_Vector_eWiseAdd_BinaryOp \ + ) \ + ) \ + (C, Mask, accum, op, A, B, desc) +#endif + +//============================================================================== +// GxB_eWiseUnion: a variant of GrB_eWiseAdd +//============================================================================== + +// GxB_eWiseUnion is a variant of eWiseAdd. The methods create a result with +// the same sparsity structure. They differ when an entry is present in A but +// not B, or in B but not A. + +// eWiseAdd does the following, for a matrix, where "+" is the add binary op: + +// if A(i,j) and B(i,j) are both present: +// C(i,j) = A(i,j) + B(i,j) +// else if A(i,j) is present but not B(i,j) +// C(i,j) = A(i,j) +// else if B(i,j) is present but not A(i,j) +// C(i,j) = B(i,j) + +// by contrast, eWiseUnion always applies the operator: + +// if A(i,j) and B(i,j) are both present: +// C(i,j) = A(i,j) + B(i,j) +// else if A(i,j) is present but not B(i,j) +// C(i,j) = A(i,j) + beta +// else if B(i,j) is present but not A(i,j) +// C(i,j) = alpha + B(i,j) + +GrB_Info GxB_Vector_eWiseUnion // w = accum (w, u+v) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp add, // defines '+' for t=u+v + const GrB_Vector u, // first input: vector u + const GrB_Scalar alpha, + const GrB_Vector v, // second input: vector v + const GrB_Scalar beta, + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GxB_Matrix_eWiseUnion // C = accum (C, A+B) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp add, // defines '+' for T=A+B + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar alpha, + const GrB_Matrix B, // second input: matrix B + const GrB_Scalar beta, + const GrB_Descriptor desc // descriptor for C, M, A, and B +) ; + +#if GxB_STDC_VERSION >= 201112L +#define GxB_eWiseUnion(C,Mask,accum,op,A,alpha,B,beta,desc) \ + _Generic \ + ( \ + (C), \ + GrB_Matrix : GxB_Matrix_eWiseUnion , \ + GrB_Vector : GxB_Vector_eWiseUnion \ + ) \ + (C, Mask, accum, op, A, alpha, B, beta, desc) +#endif + +//============================================================================== +// GrB_extract: extract a submatrix or subvector +//============================================================================== + +GrB_Info GrB_Vector_extract // w = accum (w, u(I)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Vector u, // first input: vector u + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Matrix_extract // C = accum (C, A(I,J)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Matrix A, // first input: matrix A + const GrB_Index *Ilist, // row indices GrB_Index ni, // number of row indices const GrB_Index *J, // column indices GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + const GrB_Descriptor desc // descriptor for C, Mask, and A +) ; + +GrB_Info GrB_Col_extract // w = accum (w, A(I,j)) +( + GrB_Vector w, // input/output matrix for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Matrix A, // first input: matrix A + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + GrB_Index j, // column index + const GrB_Descriptor desc // descriptor for w, mask, and A ) ; -GrB_Info GxB_Matrix_assign_FC32 // C(I,J) = accum (C(I,J),x) +// GrB_extract is a generic interface to the following functions: + +// GrB_Vector_extract (w,mask,acc,u,I,ni,d) // w = acc (w, u(I)) +// GrB_Col_extract (w,mask,acc,A,I,ni,j,d) // w = acc (w, A(I,j)) +// GrB_Matrix_extract (C,Mask,acc,A,I,ni,J,nj,d) // C = acc (C, A(I,J)) + +#if GxB_STDC_VERSION >= 201112L +#define GrB_extract(arg1,Mask,accum,arg4,...) \ + _Generic \ + ( \ + (arg1), \ + GrB_Vector : \ + _Generic \ + ( \ + (arg4), \ + GrB_Vector : GrB_Vector_extract , \ + GrB_Matrix : GrB_Col_extract \ + ), \ + GrB_Matrix : GrB_Matrix_extract \ + ) \ + (arg1, Mask, accum, arg4, __VA_ARGS__) +#endif + +//============================================================================== +// GxB_subassign: matrix and vector subassign: C(I,J) = accum (C(I,J), A) +//============================================================================== + +// Assign entries in a matrix or vector; C(I,J) = A. + +// Each GxB_subassign function is very similar to its corresponding GrB_assign +// function in the spec, but they differ in two ways: (1) the mask in +// GxB_subassign has the same size as w(I) for vectors and C(I,J) for matrices, +// and (2) they differ in the GrB_REPLACE option. See the user guide for +// details. + +// In GraphBLAS notation, the two methods can be described as follows: + +// matrix and vector subassign: C(I,J) = accum (C(I,J), A) +// matrix and vector assign: C(I,J) = accum (C(I,J), A) + +// --- assign ------------------------------------------------------------------ +// +// GrB_Matrix_assign C(I,J) += A M same size as matrix C. +// A is |I|-by-|J| +// +// GrB_Vector_assign w(I) += u m same size as column vector w. +// u is |I|-by-1 +// +// GrB_Row_assign C(i,J) += u' m is a column vector the same +// size as a row of C. +// u is |J|-by-1, i is a scalar. +// +// GrB_Col_assign C(I,j) += u m is a column vector the same +// size as a column of C. +// u is |I|-by-1, j is a scalar. +// +// --- subassign --------------------------------------------------------------- +// +// GxB_Matrix_subassign C(I,J) += A M same size as matrix A. +// A is |I|-by-|J| +// +// GxB_Vector_subassign w(I) += u m same size as column vector u. +// u is |I|-by-1 +// +// GxB_Row_subassign C(i,J) += u' m same size as column vector u. +// u is |J|-by-1, i is a scalar. +// +// GxB_Col_subassign C(I,j) += u m same size as column vector u. +// u is |I|-by-1, j is a scalar. + +GrB_Info GxB_Vector_subassign // w(I) = accum (w(I),u) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GxB_FC32_t x, // scalar to assign to C(I,J) + GrB_Vector w, // input/output matrix for results + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w(I),t) + const GrB_Vector u, // first input: vector u const GrB_Index *Ilist, // row indices GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GxB_Matrix_assign_FC64 // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Matrix_subassign // C(I,J) = accum (C(I,J),A) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GxB_FC64_t x, // scalar to assign to C(I,J) + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),T) + const GrB_Matrix A, // first input: matrix A const GrB_Index *Ilist, // row indices GrB_Index ni, // number of row indices const GrB_Index *J, // column indices GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + const GrB_Descriptor desc // descriptor for C(I,J), Mask, and A ) ; -GrB_Info GrB_Matrix_assign_UDT // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Col_subassign // C(I,j) = accum (C(I,j),u) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - void *x, // scalar to assign to C(I,J) + const GrB_Vector mask, // optional mask for C(I,j), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(C(I,j),t) + const GrB_Vector u, // input vector const GrB_Index *Ilist, // row indices GrB_Index ni, // number of row indices - const GrB_Index *J, // column indices - GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + GrB_Index j, // column index + const GrB_Descriptor desc // descriptor for C(I,j) and mask ) ; -GrB_Info GrB_Matrix_assign_Scalar // C(I,J) = accum (C(I,J),x) +GrB_Info GxB_Row_subassign // C(i,J) = accum (C(i,J),u') ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) - GrB_Scalar x, // scalar to assign to C(I,J) - const GrB_Index *Ilist, // row indices - GrB_Index ni, // number of row indices + const GrB_Vector mask, // optional mask for C(i,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(C(i,J),t) + const GrB_Vector u, // input vector + GrB_Index i, // row index const GrB_Index *J, // column indices GrB_Index nj, // number of column indices - const GrB_Descriptor desc // descriptor for C and Mask + const GrB_Descriptor desc // descriptor for C(i,J) and mask ) ; //------------------------------------------------------------------------------ -// GrB_assign: generic submatrix/subvector assignment +// GxB_Vector_subassign_[SCALAR]: scalar expansion assignment to subvector //------------------------------------------------------------------------------ -// GrB_assign is a generic function that provides access to all specific -// GrB_*_assign* functions: - -// GrB_Vector_assign_T (w,m,acc,x,I,ni,d) // w(I) = acc(w(I),x) -// GrB_Vector_assign (w,m,acc,u,I,ni,d) // w(I) = acc(w(I),u) -// GrB_Matrix_assign_T (C,M,acc,x,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),x) -// GrB_Col_assign (C,m,acc,u,I,ni,j,d) // C(I,j) = acc(C(I,j),u) -// GrB_Row_assign (C,m,acc,u,i,J,nj,d) // C(i,J) = acc(C(i,J),u') -// GrB_Matrix_assign (C,M,acc,A,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),A) - -#if GxB_STDC_VERSION >= 201112L -#define GrB_assign(arg1,Mask,accum,arg4,arg5,...) \ - _Generic \ - ( \ - (arg1), \ - GrB_Vector : \ - _Generic \ - ( \ - (arg4), \ - GB_CASES (GrB, Vector_assign) , \ - GrB_Scalar : GrB_Vector_assign_Scalar , \ - default: GrB_Vector_assign \ - ), \ - default: \ - _Generic \ - ( \ - (arg4), \ - GB_CASES (GrB, Matrix_assign) , \ - GrB_Scalar : GrB_Matrix_assign_Scalar , \ - GrB_Vector : \ - _Generic \ - ( \ - (arg5), \ - const GrB_Index *: GrB_Col_assign , \ - GrB_Index *: GrB_Col_assign , \ - default: GrB_Row_assign \ - ), \ - default: GrB_Matrix_assign \ - ) \ - ) \ - (arg1, Mask, accum, arg4, arg5, __VA_ARGS__) -#endif - -//============================================================================== -// GrB_apply: matrix and vector apply -//============================================================================== - -// Apply a unary, index_unary, or binary operator to entries in a matrix or -// vector, C = accum (C, op (A)). - -GrB_Info GrB_Vector_apply // w = accum (w, op(u)) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_UnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const GrB_Descriptor desc // descriptor for w and mask -) ; - -GrB_Info GrB_Matrix_apply // C = accum (C, op(A)) or op(A') -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_UnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -//------------------------------------------- -// vector apply: binaryop variants (bind 1st) -//------------------------------------------- - -// Apply a binary operator to the entries in a vector, binding the first -// input to a scalar x, w = accum (w, op (x,u)). +// Assigns a single scalar to a subvector, w(I) = accum(w(I),x). The +// scalar x is implicitly expanded into a vector u of size ni-by-1, with each +// entry in u equal to x, and then w(I) = accum(w(I),u) is done. -GrB_Info GrB_Vector_apply_BinaryOp1st_Scalar // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_BOOL // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Scalar x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w(I),x) + bool x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -// historical: identical to GxB_Vector_apply_BinaryOp1st -GrB_Info GxB_Vector_apply_BinaryOp1st // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_INT8 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Scalar x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int8_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_BOOL // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UINT8 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - bool x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint8_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_INT8 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_INT16 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - int8_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int16_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_INT16 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UINT16 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - int16_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint16_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_INT32 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_INT32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - int32_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_INT64 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UINT32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - int64_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UINT8 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_INT64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - uint8_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UINT16 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UINT64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - uint16_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UINT32 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_FP32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - uint32_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + float x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UINT64 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_FP64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - uint64_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + double x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_FP32 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_FC32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - float x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GxB_FC32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_FP64 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_FC64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - double x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GxB_FC64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GxB_Vector_apply_BinaryOp1st_FC32 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_UDT // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - GxB_FC32_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + void *x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GxB_Vector_apply_BinaryOp1st_FC64 // w = accum (w, op(x,u)) +GrB_Info GxB_Vector_subassign_Scalar // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - GxB_FC64_t x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + const GrB_Vector mask, // optional mask for w(I), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GrB_Scalar x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Descriptor desc // descriptor for w(I) and mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp1st_UDT // w = accum (w, op(x,u)) +//------------------------------------------------------------------------------ +// GxB_Matrix_subassign_[SCALAR]: scalar expansion assignment to submatrix +//------------------------------------------------------------------------------ + +// Assigns a single scalar to a submatrix, C(I,J) = accum(C(I,J),x). The +// scalar x is implicitly expanded into a matrix A of size ni-by-nj, with each +// entry in A equal to x, and then C(I,J) = accum(C(I,J),A) is done. + +GrB_Info GxB_Matrix_subassign_BOOL // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const void *x, // first input: scalar x - const GrB_Vector u, // second input: vector u - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + bool x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -//------------------------------------------- -// vector apply: binaryop variants (bind 2nd) -//------------------------------------------- +GrB_Info GxB_Matrix_subassign_INT8 // C(I,J) = accum (C(I,J),x) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int8_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask +) ; -// Apply a binary operator to the entries in a vector, binding the second -// input to a scalar y, w = accum (w, op (u,y)). +GrB_Info GxB_Matrix_subassign_UINT8 // C(I,J) = accum (C(I,J),x) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint8_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask +) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_Scalar // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_INT16 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int16_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -// historical: identical to GrB_Vector_apply_BinaryOp2nd_Scalar -GrB_Info GxB_Vector_apply_BinaryOp2nd // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_UINT16 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint16_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_BOOL // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_INT32 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - bool y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_INT8 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_UINT32 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_INT16 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_INT64 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_INT32 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_UINT64 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_INT64 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_FP32 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + float x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT8 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_FP64 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + double x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT16 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_FC32 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GxB_FC32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT32 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_FC64 // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GxB_FC64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT64 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_UDT // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + void *x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_FP32 // w = accum (w, op(u,y)) +GrB_Info GxB_Matrix_subassign_Scalar // C(I,J) = accum (C(I,J),x) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - float y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C(I,J), unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GrB_Scalar x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(I,J) and Mask ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_FP64 // w = accum (w, op(u,y)) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - double y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask -) ; +//------------------------------------------------------------------------------ +// GxB_subassign: generic submatrix/subvector assignment +//------------------------------------------------------------------------------ -GrB_Info GxB_Vector_apply_BinaryOp2nd_FC32 // w = accum (w, op(u,y)) +// GxB_subassign is a generic function that provides access to all specific +// GxB_*_subassign* functions: + +// GxB_Vector_subassign (w,m,acc,u,I,ni,d) // w(I) = acc(w(I),u) +// GxB_Matrix_subassign (C,M,acc,A,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),A) +// GxB_Col_subassign (C,m,acc,u,I,ni,j,d) // C(I,j) = acc(C(I,j),u) +// GxB_Row_subassign (C,m,acc,u,i,J,nj,d) // C(i,J) = acc(C(i,J),u') +// GxB_Vector_subassign_T (w,m,acc,x,I,ni,d) // w(I) = acc(w(I),x) +// GxB_Matrix_subassign_T (C,M,acc,x,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),x) + +#if GxB_STDC_VERSION >= 201112L +#define GxB_subassign(arg1,Mask,accum,arg4,arg5,...) \ + _Generic \ + ( \ + (arg1), \ + GrB_Vector : \ + _Generic \ + ( \ + (arg4), \ + GB_CASES (GxB, Vector_subassign) , \ + GrB_Scalar : GxB_Vector_subassign_Scalar, \ + default: GxB_Vector_subassign \ + ), \ + default: \ + _Generic \ + ( \ + (arg4), \ + GB_CASES (GxB, Matrix_subassign) , \ + GrB_Scalar : GxB_Matrix_subassign_Scalar, \ + GrB_Vector : \ + _Generic \ + ( \ + (arg5), \ + const GrB_Index *: GxB_Col_subassign , \ + GrB_Index *: GxB_Col_subassign , \ + default: GxB_Row_subassign \ + ), \ + default: GxB_Matrix_subassign \ + ) \ + ) \ + (arg1, Mask, accum, arg4, arg5, __VA_ARGS__) +#endif + +//============================================================================== +// GrB_assign: matrix and vector assign: C(I,J) = accum (C(I,J), A) +//============================================================================== + +// Assign entries in a matrix or vector; C(I,J) = A. +// Each of these can be used with their generic name, GrB_assign. + +GrB_Info GrB_Vector_assign // w(I) = accum (w(I),u) ( - GrB_Vector w, // input/output vector for results + GrB_Vector w, // input/output matrix for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries + const GrB_BinaryOp accum, // optional accum for z=accum(w(I),t) const GrB_Vector u, // first input: vector u - GxB_FC32_t y, // second input: scalar y + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_apply_BinaryOp2nd_FC64 // w = accum (w, op(u,y)) +GrB_Info GrB_Matrix_assign // C(I,J) = accum (C(I,J),A) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - GxB_FC64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),T) + const GrB_Matrix A, // first input: matrix A + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C, Mask, and A ) ; -GrB_Info GrB_Vector_apply_BinaryOp2nd_UDT // w = accum (w, op(u,y)) +GrB_Info GrB_Col_assign // C(I,j) = accum (C(I,j),u) ( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const void *y, // second input: scalar y - const GrB_Descriptor desc // descriptor for w and mask + GrB_Matrix C, // input/output matrix for results + const GrB_Vector mask, // optional mask for C(:,j), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(C(I,j),t) + const GrB_Vector u, // input vector + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + GrB_Index j, // column index + const GrB_Descriptor desc // descriptor for C(:,j) and mask ) ; -//------------------------------------------- -// vector apply: IndexUnaryOp variants -//------------------------------------------- +GrB_Info GrB_Row_assign // C(i,J) = accum (C(i,J),u') +( + GrB_Matrix C, // input/output matrix for results + const GrB_Vector mask, // optional mask for C(i,:), unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(C(i,J),t) + const GrB_Vector u, // input vector + GrB_Index i, // row index + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C(i,:) and mask +) ; -// Apply a GrB_IndexUnaryOp to the entries in a vector +//------------------------------------------------------------------------------ +// GrB_Vector_assign_[SCALAR]: scalar expansion assignment to subvector +//------------------------------------------------------------------------------ -GrB_Info GrB_Vector_apply_IndexOp_Scalar // w = accum (w, op(u)) +// Assigns a single scalar to a subvector, w(I) = accum(w(I),x). The +// scalar x is implicitly expanded into a vector u of size ni-by-1, with each +// entry in u equal to x, and then w(I) = accum(w(I),u) is done. + +GrB_Info GrB_Vector_assign_BOOL // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const GrB_Scalar y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for z=accum(w(I),x) + bool x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_BOOL // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_INT8 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - bool y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int8_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_INT8 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UINT8 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int8_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint8_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_INT16 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_INT16 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int16_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int16_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_INT32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UINT16 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int32_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint16_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_INT64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_INT32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - int64_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UINT8 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UINT32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint8_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UINT16 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_INT64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint16_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + int64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UINT32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UINT64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint32_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + uint64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UINT64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_FP32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - uint64_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + float x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_FP32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_FP64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - float y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + double x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_FP64 // w = accum (w, op(u)) +GrB_Info GxB_Vector_assign_FC32 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - double y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GxB_FC32_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_apply_IndexOp_FC32 // w = accum (w, op(u)) +GrB_Info GxB_Vector_assign_FC64 // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - GxB_FC32_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GxB_FC64_t x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_apply_IndexOp_FC64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_UDT // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - GxB_FC64_t y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + void *x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_apply_IndexOp_UDT // w = accum (w, op(u)) +GrB_Info GrB_Vector_assign_Scalar // w(I) = accum (w(I),x) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Vector u, // first input: vector u - const void *y, // second input: scalar y + const GrB_BinaryOp accum, // optional accum for Z=accum(w(I),x) + GrB_Scalar x, // scalar to assign to w(I) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices const GrB_Descriptor desc // descriptor for w and mask ) ; -//------------------------------------------- -// matrix apply: binaryop variants (bind 1st) -//------------------------------------------- +//------------------------------------------------------------------------------ +// GrB_Matrix_assign_[SCALAR]: scalar expansion assignment to submatrix +//------------------------------------------------------------------------------ -// Apply a binary operator to the entries in a matrix, binding the first input -// to a scalar x, C = accum (C, op (x,A)), or op(x,A'). +// Assigns a single scalar to a submatrix, C(I,J) = accum(C(I,J),x). The +// scalar x is implicitly expanded into a matrix A of size ni-by-nj, with each +// entry in A equal to x, and then C(I,J) = accum(C(I,J),A) is done. -GrB_Info GrB_Matrix_apply_BinaryOp1st_Scalar // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_BOOL // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Scalar x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + bool x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -// historical: identical to GrB_Matrix_apply_BinaryOp1st_Scalar -GrB_Info GxB_Matrix_apply_BinaryOp1st // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_INT8 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Scalar x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int8_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_BOOL // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UINT8 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - bool x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint8_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_INT8 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_INT16 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - int8_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int16_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_INT16 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UINT16 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - int16_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint16_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_INT32 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_INT32 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - int32_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_INT64 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UINT32 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - int64_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT8 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_INT64 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - uint8_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + int64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT16 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UINT64 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - uint16_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + uint64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT32 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_FP32 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - uint32_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + float x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT64 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_FP64 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - uint64_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + double x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_FP32 // C=accum(C,op(x,A)) +GrB_Info GxB_Matrix_assign_FC32 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - float x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GxB_FC32_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_FP64 // C=accum(C,op(x,A)) +GrB_Info GxB_Matrix_assign_FC64 // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - double x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GxB_FC64_t x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GxB_Matrix_apply_BinaryOp1st_FC32 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_UDT // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - GxB_FC32_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + void *x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GxB_Matrix_apply_BinaryOp1st_FC64 // C=accum(C,op(x,A)) +GrB_Info GrB_Matrix_assign_Scalar // C(I,J) = accum (C(I,J),x) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - GxB_FC64_t x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),x) + GrB_Scalar x, // scalar to assign to C(I,J) + const GrB_Index *Ilist, // row indices + GrB_Index ni, // number of row indices + const GrB_Index *J, // column indices + GrB_Index nj, // number of column indices + const GrB_Descriptor desc // descriptor for C and Mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp1st_UDT // C=accum(C,op(x,A)) +//------------------------------------------------------------------------------ +// GrB_assign: generic submatrix/subvector assignment +//------------------------------------------------------------------------------ + +// GrB_assign is a generic function that provides access to all specific +// GrB_*_assign* functions: + +// GrB_Vector_assign_T (w,m,acc,x,I,ni,d) // w(I) = acc(w(I),x) +// GrB_Vector_assign (w,m,acc,u,I,ni,d) // w(I) = acc(w(I),u) +// GrB_Matrix_assign_T (C,M,acc,x,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),x) +// GrB_Col_assign (C,m,acc,u,I,ni,j,d) // C(I,j) = acc(C(I,j),u) +// GrB_Row_assign (C,m,acc,u,i,J,nj,d) // C(i,J) = acc(C(i,J),u') +// GrB_Matrix_assign (C,M,acc,A,I,ni,J,nj,d) // C(I,J) = acc(C(I,J),A) + +#if GxB_STDC_VERSION >= 201112L +#define GrB_assign(arg1,Mask,accum,arg4,arg5,...) \ + _Generic \ + ( \ + (arg1), \ + GrB_Vector : \ + _Generic \ + ( \ + (arg4), \ + GB_CASES (GrB, Vector_assign) , \ + GrB_Scalar : GrB_Vector_assign_Scalar , \ + default: GrB_Vector_assign \ + ), \ + default: \ + _Generic \ + ( \ + (arg4), \ + GB_CASES (GrB, Matrix_assign) , \ + GrB_Scalar : GrB_Matrix_assign_Scalar , \ + GrB_Vector : \ + _Generic \ + ( \ + (arg5), \ + const GrB_Index *: GrB_Col_assign , \ + GrB_Index *: GrB_Col_assign , \ + default: GrB_Row_assign \ + ), \ + default: GrB_Matrix_assign \ + ) \ + ) \ + (arg1, Mask, accum, arg4, arg5, __VA_ARGS__) +#endif + +//============================================================================== +// GrB_apply: matrix and vector apply +//============================================================================== + +// Apply a unary, index_unary, or binary operator to entries in a matrix or +// vector, C = accum (C, op (A)). + +GrB_Info GrB_Vector_apply // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_UnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Matrix_apply // C = accum (C, op(A)) or op(A') ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - const void *x, // first input: scalar x - const GrB_Matrix A, // second input: matrix A + const GrB_UnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; //------------------------------------------- -// matrix apply: binaryop variants (bind 2nd) +// vector apply: binaryop variants (bind 1st) //------------------------------------------- -// Apply a binary operator to the entries in a matrix, binding the second input -// to a scalar y, C = accum (C, op (A,y)), or op(A',y). +// Apply a binary operator to the entries in a vector, binding the first +// input to a scalar x, w = accum (w, op (x,u)). -GrB_Info GrB_Matrix_apply_BinaryOp2nd_Scalar // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_Scalar // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Scalar x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -// historical: identical to GrB_Matrix_apply_BinaryOp2nd_Scalar -GrB_Info GxB_Matrix_apply_BinaryOp2nd // C=accum(C,op(A,y)) +// historical: identical to GrB_Vector_apply_BinaryOp1st_Scalar +GrB_Info GxB_Vector_apply_BinaryOp1st // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Scalar x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_BOOL // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_BOOL // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - bool y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + bool x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT8 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_INT8 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + int8_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT16 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_INT16 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + int16_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT32 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_INT32 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + int32_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT64 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_INT64 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + int64_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT8 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UINT8 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + uint8_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT16 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UINT16 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + uint16_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT32 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UINT32 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + uint32_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT64 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UINT64 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + uint64_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP32 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_FP32 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - float y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + float x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP64 // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_FP64 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - double y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + double x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC32 // C=accum(C,op(A,y)) +GrB_Info GxB_Vector_apply_BinaryOp1st_FC32 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - GxB_FC32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + GxB_FC32_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC64 // C=accum(C,op(A,y)) +GrB_Info GxB_Vector_apply_BinaryOp1st_FC64 // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - GxB_FC64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + GxB_FC64_t x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_BinaryOp2nd_UDT // C=accum(C,op(A,y)) +GrB_Info GrB_Vector_apply_BinaryOp1st_UDT // w = accum (w, op(x,u)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) const GrB_BinaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const void *y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const void *x, // first input: scalar x + const GrB_Vector u, // second input: vector u + const GrB_Descriptor desc // descriptor for w and mask ) ; //------------------------------------------- -// matrix apply: IndexUnaryOp variants +// vector apply: binaryop variants (bind 2nd) //------------------------------------------- -// Apply a GrB_IndexUnaryOp to the entries in a matrix. +// Apply a binary operator to the entries in a vector, binding the second +// input to a scalar y, w = accum (w, op (u,y)). -GrB_Info GrB_Matrix_apply_IndexOp_Scalar // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_Scalar // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_BOOL // C=accum(C,op(A)) +// historical: identical to GrB_Vector_apply_BinaryOp2nd_Scalar +GrB_Info GxB_Vector_apply_BinaryOp2nd // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; + +GrB_Info GrB_Vector_apply_BinaryOp2nd_BOOL // w = accum (w, op(u,y)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u bool y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_INT8 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_INT8 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u int8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_INT16 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_INT16 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u int16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_INT32 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_INT32 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u int32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_INT64 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_INT64 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u int64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UINT8 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT8 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u uint8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UINT16 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT16 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u uint16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UINT32 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT32 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u uint32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UINT64 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UINT64 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u uint64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_FP32 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_FP32 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u float y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_FP64 // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_FP64 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u double y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Matrix_apply_IndexOp_FC32 // C=accum(C,op(A)) +GrB_Info GxB_Vector_apply_BinaryOp2nd_FC32 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u GxB_FC32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Matrix_apply_IndexOp_FC64 // C=accum(C,op(A)) +GrB_Info GxB_Vector_apply_BinaryOp2nd_FC64 // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u GxB_FC64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Matrix_apply_IndexOp_UDT // C=accum(C,op(A)) +GrB_Info GrB_Vector_apply_BinaryOp2nd_UDT // w = accum (w, op(u,y)) ( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u const void *y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A + const GrB_Descriptor desc // descriptor for w and mask ) ; -//------------------------------------------------------------------------------ -// GrB_apply: generic matrix/vector apply -//------------------------------------------------------------------------------ - -// GrB_apply is a generic function for applying a unary operator to a matrix -// or vector and provides access to these functions: - -// GrB_Vector_apply (w,mask,acc,op,u,d) // w = accum (w, op(u)) -// GrB_Matrix_apply (C,Mask,acc,op,A,d) // C = accum (C, op(A)) - -// GrB_Vector_apply (w,m,acc,unop ,u,d) -// GrB_Vector_apply_BinaryOp1st_TYPE (w,m,acc,binop,x,u,d) -// GrB_Vector_apply_BinaryOp2nd_TYPE (w,m,acc,binop,u,y,d) -// GrB_Vector_apply_IndexOp_TYPE (w,m,acc,idxop,u,y,d) - -// GrB_Matrix_apply (C,M,acc,unop ,A,d) -// GrB_Matrix_apply_BinaryOp1st_TYPE (C,M,acc,binop,x,A,d) -// GrB_Matrix_apply_BinaryOp2nd_TYPE (C,M,acc,binop,A,y,d) -// GrB_Matrix_apply_IndexOp_TYPE (C,M,acc,idxop,A,y,d) - -#if GxB_STDC_VERSION >= 201112L - -#define GB_BIND(kind,x,y,...) \ - _Generic \ - ( \ - (x), \ - GrB_Scalar: GB_CONCAT ( GrB,_,kind,_apply_BinaryOp1st_Scalar), \ - GB_CASES (GrB, GB_CONCAT ( kind, _apply_BinaryOp1st,, )) , \ - default: \ - _Generic \ - ( \ - (y), \ - GB_CASES (GrB, GB_CONCAT ( kind , _apply_BinaryOp2nd,, )), \ - default: GB_CONCAT ( GrB,_,kind,_apply_BinaryOp2nd_Scalar) \ - ) \ - ) - -#define GB_IDXOP(kind,A,y,...) \ - _Generic \ - ( \ - (y), \ - GB_CASES (GrB, GB_CONCAT ( kind, _apply_IndexOp,, )), \ - default: GB_CONCAT ( GrB, _, kind, _apply_IndexOp_Scalar) \ - ) - -#define GrB_apply(C,Mask,accum,op,...) \ - _Generic \ - ( \ - (C), \ - GrB_Vector : \ - _Generic \ - ( \ - (op), \ - GrB_UnaryOp : GrB_Vector_apply , \ - GrB_BinaryOp : GB_BIND (Vector, __VA_ARGS__), \ - GrB_IndexUnaryOp : GB_IDXOP (Vector, __VA_ARGS__) \ - ), \ - GrB_Matrix : \ - _Generic \ - ( \ - (op), \ - GrB_UnaryOp : GrB_Matrix_apply , \ - GrB_BinaryOp : GB_BIND (Matrix, __VA_ARGS__), \ - GrB_IndexUnaryOp : GB_IDXOP (Matrix, __VA_ARGS__) \ - ) \ - ) \ - (C, Mask, accum, op, __VA_ARGS__) -#endif - -//============================================================================== -// GrB_select: matrix and vector selection using an IndexUnaryOp -//============================================================================== - //------------------------------------------- -// vector select using an IndexUnaryOp +// vector apply: IndexUnaryOp variants //------------------------------------------- -GrB_Info GrB_Vector_select_Scalar // w = accum (w, op(u)) +// Apply a GrB_IndexUnaryOp to the entries in a vector + +GrB_Info GrB_Vector_apply_IndexOp_Scalar // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7229,7 +7513,7 @@ GrB_Info GrB_Vector_select_Scalar // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_BOOL // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_BOOL // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7240,7 +7524,7 @@ GrB_Info GrB_Vector_select_BOOL // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_INT8 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_INT8 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7251,7 +7535,7 @@ GrB_Info GrB_Vector_select_INT8 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_INT16 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_INT16 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7262,7 +7546,7 @@ GrB_Info GrB_Vector_select_INT16 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_INT32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_INT32 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7273,7 +7557,7 @@ GrB_Info GrB_Vector_select_INT32 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_INT64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_INT64 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7284,7 +7568,7 @@ GrB_Info GrB_Vector_select_INT64 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UINT8 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UINT8 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7295,7 +7579,7 @@ GrB_Info GrB_Vector_select_UINT8 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UINT16 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UINT16 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7306,7 +7590,7 @@ GrB_Info GrB_Vector_select_UINT16 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UINT32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UINT32 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7317,7 +7601,7 @@ GrB_Info GrB_Vector_select_UINT32 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UINT64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UINT64 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7328,7 +7612,7 @@ GrB_Info GrB_Vector_select_UINT64 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_FP32 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_FP32 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7339,7 +7623,7 @@ GrB_Info GrB_Vector_select_FP32 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_FP64 // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_FP64 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7350,7 +7634,7 @@ GrB_Info GrB_Vector_select_FP64 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_select_FC32 // w = accum (w, op(u)) +GrB_Info GxB_Vector_apply_IndexOp_FC32 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7361,7 +7645,7 @@ GrB_Info GxB_Vector_select_FC32 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GxB_Vector_select_FC64 // w = accum (w, op(u)) +GrB_Info GxB_Vector_apply_IndexOp_FC64 // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7372,7 +7656,7 @@ GrB_Info GxB_Vector_select_FC64 // w = accum (w, op(u)) const GrB_Descriptor desc // descriptor for w and mask ) ; -GrB_Info GrB_Vector_select_UDT // w = accum (w, op(u)) +GrB_Info GrB_Vector_apply_IndexOp_UDT // w = accum (w, op(u)) ( GrB_Vector w, // input/output vector for results const GrB_Vector mask, // optional mask for w, unused if NULL @@ -7384,1621 +7668,1460 @@ GrB_Info GrB_Vector_select_UDT // w = accum (w, op(u)) ) ; //------------------------------------------- -// matrix select using an IndexUnaryOp +// matrix apply: binaryop variants (bind 1st) //------------------------------------------- -GrB_Info GrB_Matrix_select_Scalar // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const GrB_Scalar y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_BOOL // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - bool y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_INT8 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_INT16 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_INT32 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_INT64 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - int64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_UINT8 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint8_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_UINT16 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint16_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_UINT32 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint32_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; - -GrB_Info GrB_Matrix_select_UINT64 // C=accum(C,op(A)) -( - GrB_Matrix C, // input/output matrix for results - const GrB_Matrix Mask, // optional mask for C, unused if NULL - const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - uint64_t y, // second input: scalar y - const GrB_Descriptor desc // descriptor for C, mask, and A -) ; +// Apply a binary operator to the entries in a matrix, binding the first input +// to a scalar x, C = accum (C, op (x,A)), or op(x,A'). -GrB_Info GrB_Matrix_select_FP32 // C=accum(C,op(A)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_Scalar // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - float y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Scalar x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_select_FP64 // C=accum(C,op(A)) +// historical: identical to GrB_Matrix_apply_BinaryOp1st_Scalar +GrB_Info GxB_Matrix_apply_BinaryOp1st // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - double y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Scalar x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Matrix_select_FC32 // C=accum(C,op(A)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_BOOL // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - GxB_FC32_t y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + bool x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Matrix_select_FC64 // C=accum(C,op(A)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_INT8 // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - GxB_FC64_t y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + int8_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_select_UDT // C=accum(C,op(A)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_INT16 // C=accum(C,op(x,A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_IndexUnaryOp op, // operator to apply to the entries - const GrB_Matrix A, // first input: matrix A - const void *y, // second input: scalar y + const GrB_BinaryOp op, // operator to apply to the entries + int16_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -// GrB_select is a generic method that applies an IndexUnaryOp to -// a matrix or vector, using any type of the scalar y. - -// GrB_Vector_select_TYPE (w,m,acc,idxop,u,y,d) -// GrB_Matrix_select_TYPE (C,M,acc,idxop,A,y,d) - -#if GxB_STDC_VERSION >= 201112L -#define GrB_select(C,Mask,accum,op,x,y,d) \ - _Generic \ - ( \ - (C), \ - GrB_Vector : \ - _Generic \ - ( \ - (y), \ - GB_CASES (GrB, Vector_select), \ - default: GrB_Vector_select_Scalar \ - ), \ - GrB_Matrix : \ - _Generic \ - ( \ - (y), \ - GB_CASES (GrB, Matrix_select), \ - default: GrB_Matrix_select_Scalar \ - ) \ - ) \ - (C, Mask, accum, op, x, y, d) -#endif - -//============================================================================== -// GxB_select: matrix and vector selection (DEPRECATED: use GrB_select instead) -//============================================================================== - -GrB_Info GxB_Vector_select (GrB_Vector w, const GrB_Vector mask, -const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Vector u, -const GrB_Scalar Thunk, const GrB_Descriptor desc) ; -GrB_Info GxB_Matrix_select (GrB_Matrix C, const GrB_Matrix Mask, -const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Matrix A, -const GrB_Scalar Thunk, const GrB_Descriptor desc) ; -#if GxB_STDC_VERSION >= 201112L -#define GxB_select(C,Mask,accum,op,A,Thunk,desc) _Generic \ -((C), GrB_Vector:GxB_Vector_select , GrB_Matrix:GxB_Matrix_select ) \ -(C, Mask, accum, op, A, Thunk, desc) -#endif - -//============================================================================== -// GrB_reduce: matrix and vector reduction -//============================================================================== - -// Reduce the entries in a matrix to a vector, a column vector t such that -// t(i) = sum (A (i,:)), and where "sum" is a commutative and associative -// monoid with an identity value. A can be transposed, which reduces down the -// columns instead of the rows. - -// For GrB_Matrix_reduce_BinaryOp, the GrB_BinaryOp op must correspond to a -// known built-in monoid: -// -// operator data-types (all built-in) -// ---------------------- --------------------------- -// MIN, MAX INT*, UINT*, FP* -// TIMES, PLUS INT*, UINT*, FP*, FC* -// ANY INT*, UINT*, FP*, FC*, BOOL -// LOR, LAND, LXOR, EQ BOOL -// BOR, BAND, BXOR, BXNOR UINT* - -GrB_Info GrB_Matrix_reduce_Monoid // w = accum (w,reduce(A)) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_Monoid monoid, // reduce operator for t=reduce(A) - const GrB_Matrix A, // first input: matrix A - const GrB_Descriptor desc // descriptor for w, mask, and A -) ; - -GrB_Info GrB_Matrix_reduce_BinaryOp // w = accum (w,reduce(A)) -( - GrB_Vector w, // input/output vector for results - const GrB_Vector mask, // optional mask for w, unused if NULL - const GrB_BinaryOp accum, // optional accum for z=accum(w,t) - const GrB_BinaryOp op, // reduce operator for t=reduce(A) - const GrB_Matrix A, // first input: matrix A - const GrB_Descriptor desc // descriptor for w, mask, and A -) ; - -//------------------------------------------------------------------------------ -// reduce a vector to a scalar -//------------------------------------------------------------------------------ - -// Reduce entries in a vector to a scalar, c = accum (c, reduce_to_scalar(u)) - -GrB_Info GrB_Vector_reduce_BOOL // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_INT32 // C=accum(C,op(x,A)) ( - bool *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + int32_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_INT8 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_INT64 // C=accum(C,op(x,A)) ( - int8_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + int64_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UINT8 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT8 // C=accum(C,op(x,A)) ( - uint8_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + uint8_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_INT16 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT16 // C=accum(C,op(x,A)) ( - int16_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + uint16_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UINT16 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT32 // C=accum(C,op(x,A)) ( - uint16_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + uint32_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_INT32 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UINT64 // C=accum(C,op(x,A)) ( - int32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + uint64_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UINT32 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_FP32 // C=accum(C,op(x,A)) ( - uint32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + float x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_INT64 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_FP64 // C=accum(C,op(x,A)) ( - int64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + double x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UINT64 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GxB_Matrix_apply_BinaryOp1st_FC32 // C=accum(C,op(x,A)) ( - uint64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + GxB_FC32_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_FP32 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GxB_Matrix_apply_BinaryOp1st_FC64 // C=accum(C,op(x,A)) ( - float *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + GxB_FC64_t x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_FP64 // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp1st_UDT // C=accum(C,op(x,A)) ( - double *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const void *x, // first input: scalar x + const GrB_Matrix A, // second input: matrix A + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Vector_reduce_FC32 // c = accum (c, reduce_to_scalar (u)) +//------------------------------------------- +// matrix apply: binaryop variants (bind 2nd) +//------------------------------------------- + +// Apply a binary operator to the entries in a matrix, binding the second input +// to a scalar y, C = accum (C, op (A,y)), or op(A',y). + +GrB_Info GrB_Matrix_apply_BinaryOp2nd_Scalar // C=accum(C,op(A,y)) ( - GxB_FC32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Vector_reduce_FC64 // c = accum (c, reduce_to_scalar (u)) +// historical: identical to GrB_Matrix_apply_BinaryOp2nd_Scalar +GrB_Info GxB_Matrix_apply_BinaryOp2nd // C=accum(C,op(A,y)) ( - GxB_FC64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_UDT // c = accum (c, reduce_to_scalar (u)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_BOOL // C=accum(C,op(A,y)) ( - void *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + bool y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_Monoid_Scalar // c = accum(c,reduce_to_scalar(u)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT8 // C=accum(C,op(A,y)) ( - GrB_Scalar c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Vector_reduce_BinaryOp_Scalar +GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT16 // C=accum(C,op(A,y)) ( - GrB_Scalar c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_BinaryOp op, // binary op to do the reduction - const GrB_Vector u, // vector to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -//------------------------------------------------------------------------------ -// reduce a matrix to a scalar -//------------------------------------------------------------------------------ - -// Reduce entries in a matrix to a scalar, c = accum (c, reduce_to_scalar(A)) - -GrB_Info GrB_Matrix_reduce_BOOL // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT32 // C=accum(C,op(A,y)) ( - bool *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_INT8 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_INT64 // C=accum(C,op(A,y)) ( - int8_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UINT8 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT8 // C=accum(C,op(A,y)) ( - uint8_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_INT16 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT16 // C=accum(C,op(A,y)) ( - int16_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UINT16 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT32 // C=accum(C,op(A,y)) ( - uint16_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_INT32 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UINT64 // C=accum(C,op(A,y)) ( - int32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UINT32 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP32 // C=accum(C,op(A,y)) ( - uint32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + float y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_INT64 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_FP64 // C=accum(C,op(A,y)) ( - int64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + double y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UINT64 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC32 // C=accum(C,op(A,y)) ( - uint64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_FP32 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GxB_Matrix_apply_BinaryOp2nd_FC64 // C=accum(C,op(A,y)) ( - float *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_FP64 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_BinaryOp2nd_UDT // C=accum(C,op(A,y)) ( - double *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const void *y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Matrix_reduce_FC32 // c = accum (c, reduce_to_scalar (A)) +//------------------------------------------- +// matrix apply: IndexUnaryOp variants +//------------------------------------------- + +// Apply a GrB_IndexUnaryOp to the entries in a matrix. + +GrB_Info GrB_Matrix_apply_IndexOp_Scalar // C=accum(C,op(A)) ( - GxB_FC32_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GxB_Matrix_reduce_FC64 // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_IndexOp_BOOL // C=accum(C,op(A)) ( - GxB_FC64_t *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + bool y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_UDT // c = accum (c, reduce_to_scalar (A)) +GrB_Info GrB_Matrix_apply_IndexOp_INT8 // C=accum(C,op(A)) ( - void *c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_Monoid_Scalar // c = accum(c,reduce_to_scalar(A)) +GrB_Info GrB_Matrix_apply_IndexOp_INT16 // C=accum(C,op(A)) ( - GrB_Scalar c, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_reduce_BinaryOp_Scalar +GrB_Info GrB_Matrix_apply_IndexOp_INT32 // C=accum(C,op(A)) ( - GrB_Scalar S, // result scalar - const GrB_BinaryOp accum, // optional accum for c=accum(c,t) - const GrB_BinaryOp op, // binary op to do the reduction - const GrB_Matrix A, // matrix to reduce - const GrB_Descriptor desc + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -//------------------------------------------------------------------------------ -// GrB_reduce: generic matrix/vector reduction to a vector or scalar -//------------------------------------------------------------------------------ - -// GrB_reduce is a generic function that provides access to all GrB_*reduce* -// functions: - -// reduce matrix to vector: -// GrB_Matrix_reduce_Monoid (w,mask,acc,mo,A,d) // w = acc (w,reduce(A)) -// GrB_Matrix_reduce_BinaryOp (w,mask,acc,op,A,d) // w = acc (w,reduce(A)) - -// reduce matrix to scalar: -// GrB_Vector_reduce_[SCALAR] (c,acc,monoid,u,d) // c = acc (c,reduce(u)) -// GrB_Matrix_reduce_[SCALAR] (c,acc,monoid,A,d) // c = acc (c,reduce(A)) -// GrB_Vector_reduce_Monoid_Scalar (s,acc,monoid,u,d) // s = acc (s,reduce(u)) -// GrB_Matrix_reduce_Monoid_Scalar (s,acc,monoid,A,d) // s = acc (s,reduce(A)) -// GrB_Vector_reduce_BinaryOp_Scalar (s,acc,op,u,d) // s = acc (s,reduce(u)) -// GrB_Matrix_reduce_BinaryOp_Scalar (s,acc,op,A,d) // s = acc (s,reduce(A)) - -#if GxB_STDC_VERSION >= 201112L -#define GB_REDUCE_TO_SCALAR(kind,c,op) \ - _Generic \ - ( \ - (c), \ - GB_PCASES (GrB, GB_CONCAT ( kind, _reduce,, )), \ - default: \ - _Generic \ - ( \ - (op), \ - GrB_BinaryOp : \ - GB_CONCAT (GrB,_,kind,_reduce_BinaryOp_Scalar),\ - default: GB_CONCAT (GrB,_,kind,_reduce_Monoid_Scalar) \ - ) \ - ) - -#define GrB_reduce(arg1,arg2,arg3,arg4,...) \ - _Generic \ - ( \ - (arg4), \ - GrB_Vector : GB_REDUCE_TO_SCALAR (Vector, arg1, arg3), \ - GrB_Matrix : GB_REDUCE_TO_SCALAR (Matrix, arg1, arg3), \ - GrB_Monoid : GrB_Matrix_reduce_Monoid , \ - GrB_BinaryOp : GrB_Matrix_reduce_BinaryOp \ - ) \ - (arg1, arg2, arg3, arg4, __VA_ARGS__) -#endif - -//============================================================================== -// GrB_transpose: matrix transpose -//============================================================================== - -GrB_Info GrB_transpose // C = accum (C, A') +GrB_Info GrB_Matrix_apply_IndexOp_INT64 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Descriptor desc // descriptor for C, Mask, and A + int64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -//============================================================================== -// GrB_kronecker: Kronecker product -//============================================================================== - -// GxB_kron is historical; use GrB_kronecker instead -GrB_Info GxB_kron // C = accum(C,kron(A,B)) (historical) +GrB_Info GrB_Matrix_apply_IndexOp_UINT8 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // defines '*' for T=kron(A,B) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, Mask, A, and B + uint8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_kronecker_BinaryOp // C = accum (C, kron(A,B)) +GrB_Info GrB_Matrix_apply_IndexOp_UINT16 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_BinaryOp op, // defines '*' for T=kron(A,B) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, M, A, and B + uint16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_kronecker_Monoid // C = accum (C, kron(A,B)) +GrB_Info GrB_Matrix_apply_IndexOp_UINT32 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Monoid monoid, // defines '*' for T=kron(A,B) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, M, A, and B + uint32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -GrB_Info GrB_Matrix_kronecker_Semiring // C = accum (C, kron(A,B)) +GrB_Info GrB_Matrix_apply_IndexOp_UINT64 // C=accum(C,op(A)) ( GrB_Matrix C, // input/output matrix for results - const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_Matrix Mask, // optional mask for C, unused if NULL const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) - const GrB_Semiring semiring, // defines '*' for T=kron(A,B) + const GrB_IndexUnaryOp op, // operator to apply to the entries const GrB_Matrix A, // first input: matrix A - const GrB_Matrix B, // second input: matrix B - const GrB_Descriptor desc // descriptor for C, M, A, and B + uint64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A ) ; -#if GxB_STDC_VERSION >= 201112L -#define GrB_kronecker(C,Mask,accum,op,A,B,desc) \ - _Generic \ - ( \ - (op), \ - GrB_Semiring : GrB_Matrix_kronecker_Semiring , \ - GrB_Monoid : GrB_Matrix_kronecker_Monoid , \ - GrB_BinaryOp : GrB_Matrix_kronecker_BinaryOp \ - ) \ - (C, Mask, accum, op, A, B, desc) -#endif - - -//============================================================================== -// GrB_Monoid: built-in monoids -//============================================================================== - -GB_GLOBAL GrB_Monoid - - //-------------------------------------------------------------------------- - // 10 MIN monoids: (not for complex types) - //-------------------------------------------------------------------------- - - // GxB_MIN monoids, historical, use GrB_MIN_MONOID_* instead: - GxB_MIN_INT8_MONOID, // identity: INT8_MAX terminal: INT8_MIN - GxB_MIN_INT16_MONOID, // identity: INT16_MAX terminal: INT16_MIN - GxB_MIN_INT32_MONOID, // identity: INT32_MAX terminal: INT32_MIN - GxB_MIN_INT64_MONOID, // identity: INT64_MAX terminal: INT32_MIN - GxB_MIN_UINT8_MONOID, // identity: UINT8_MAX terminal: 0 - GxB_MIN_UINT16_MONOID, // identity: UINT16_MAX terminal: 0 - GxB_MIN_UINT32_MONOID, // identity: UINT32_MAX terminal: 0 - GxB_MIN_UINT64_MONOID, // identity: UINT64_MAX terminal: 0 - GxB_MIN_FP32_MONOID, // identity: INFINITY terminal: -INFINITY - GxB_MIN_FP64_MONOID, // identity: INFINITY terminal: -INFINITY - - // preferred names from the v1.3 spec: - GrB_MIN_MONOID_INT8, // identity: INT8_MAX terminal: INT8_MIN - GrB_MIN_MONOID_INT16, // identity: INT16_MAX terminal: INT16_MIN - GrB_MIN_MONOID_INT32, // identity: INT32_MAX terminal: INT32_MIN - GrB_MIN_MONOID_INT64, // identity: INT64_MAX terminal: INT32_MIN - GrB_MIN_MONOID_UINT8, // identity: UINT8_MAX terminal: 0 - GrB_MIN_MONOID_UINT16, // identity: UINT16_MAX terminal: 0 - GrB_MIN_MONOID_UINT32, // identity: UINT32_MAX terminal: 0 - GrB_MIN_MONOID_UINT64, // identity: UINT64_MAX terminal: 0 - GrB_MIN_MONOID_FP32, // identity: INFINITY terminal: -INFINITY - GrB_MIN_MONOID_FP64, // identity: INFINITY terminal: -INFINITY - - //-------------------------------------------------------------------------- - // 10 MAX monoids: - //-------------------------------------------------------------------------- - - // GxB_MAX monoids, historical, use GrB_MAX_MONOID_* instead: - GxB_MAX_INT8_MONOID, // identity: INT8_MIN terminal: INT8_MAX - GxB_MAX_INT16_MONOID, // identity: INT16_MIN terminal: INT16_MAX - GxB_MAX_INT32_MONOID, // identity: INT32_MIN terminal: INT32_MAX - GxB_MAX_INT64_MONOID, // identity: INT64_MIN terminal: INT64_MAX - GxB_MAX_UINT8_MONOID, // identity: 0 terminal: UINT8_MAX - GxB_MAX_UINT16_MONOID, // identity: 0 terminal: UINT16_MAX - GxB_MAX_UINT32_MONOID, // identity: 0 terminal: UINT32_MAX - GxB_MAX_UINT64_MONOID, // identity: 0 terminal: UINT64_MAX - GxB_MAX_FP32_MONOID, // identity: -INFINITY terminal: INFINITY - GxB_MAX_FP64_MONOID, // identity: -INFINITY terminal: INFINITY - - // preferred names from the v1.3 spec: - GrB_MAX_MONOID_INT8, // identity: INT8_MIN terminal: INT8_MAX - GrB_MAX_MONOID_INT16, // identity: INT16_MIN terminal: INT16_MAX - GrB_MAX_MONOID_INT32, // identity: INT32_MIN terminal: INT32_MAX - GrB_MAX_MONOID_INT64, // identity: INT64_MIN terminal: INT64_MAX - GrB_MAX_MONOID_UINT8, // identity: 0 terminal: UINT8_MAX - GrB_MAX_MONOID_UINT16, // identity: 0 terminal: UINT16_MAX - GrB_MAX_MONOID_UINT32, // identity: 0 terminal: UINT32_MAX - GrB_MAX_MONOID_UINT64, // identity: 0 terminal: UINT64_MAX - GrB_MAX_MONOID_FP32, // identity: -INFINITY terminal: INFINITY - GrB_MAX_MONOID_FP64, // identity: -INFINITY terminal: INFINITY - - //-------------------------------------------------------------------------- - // 12 PLUS monoids: - //-------------------------------------------------------------------------- - - // GxB_PLUS monoids, historical, use GrB_PLUS_MONOID_* instead: - GxB_PLUS_INT8_MONOID, // identity: 0 - GxB_PLUS_INT16_MONOID, // identity: 0 - GxB_PLUS_INT32_MONOID, // identity: 0 - GxB_PLUS_INT64_MONOID, // identity: 0 - GxB_PLUS_UINT8_MONOID, // identity: 0 - GxB_PLUS_UINT16_MONOID, // identity: 0 - GxB_PLUS_UINT32_MONOID, // identity: 0 - GxB_PLUS_UINT64_MONOID, // identity: 0 - GxB_PLUS_FP32_MONOID, // identity: 0 - GxB_PLUS_FP64_MONOID, // identity: 0 - - // preferred names from the v1.3 spec: - GrB_PLUS_MONOID_INT8, // identity: 0 - GrB_PLUS_MONOID_INT16, // identity: 0 - GrB_PLUS_MONOID_INT32, // identity: 0 - GrB_PLUS_MONOID_INT64, // identity: 0 - GrB_PLUS_MONOID_UINT8, // identity: 0 - GrB_PLUS_MONOID_UINT16, // identity: 0 - GrB_PLUS_MONOID_UINT32, // identity: 0 - GrB_PLUS_MONOID_UINT64, // identity: 0 - GrB_PLUS_MONOID_FP32, // identity: 0 - GrB_PLUS_MONOID_FP64, // identity: 0 - - // complex monoids: - GxB_PLUS_FC32_MONOID, // identity: 0 - GxB_PLUS_FC64_MONOID, // identity: 0 - - //-------------------------------------------------------------------------- - // 12 TIMES monoids: identity value is 1, int* and uint* are terminal - //-------------------------------------------------------------------------- - - // GxB_TIMES monoids, historical, use GrB_TIMES_MONOID_* instead: - GxB_TIMES_INT8_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_INT16_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_INT32_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_INT64_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_UINT8_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_UINT16_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_UINT32_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_UINT64_MONOID, // identity: 1 terminal: 0 - GxB_TIMES_FP32_MONOID, // identity: 1 - GxB_TIMES_FP64_MONOID, // identity: 1 - - // preferred names from the v1.3 spec: - GrB_TIMES_MONOID_INT8, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_INT16, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_INT32, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_INT64, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_UINT8, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_UINT16, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_UINT32, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_UINT64, // identity: 1 terminal: 0 - GrB_TIMES_MONOID_FP32, // identity: 1 - GrB_TIMES_MONOID_FP64, // identity: 1 - - // complex monoids: - GxB_TIMES_FC32_MONOID, // identity: 1 - GxB_TIMES_FC64_MONOID, // identity: 1 - - //-------------------------------------------------------------------------- - // 13 ANY monoids: - //-------------------------------------------------------------------------- - - GxB_ANY_BOOL_MONOID, // identity: any value terminal: any value - GxB_ANY_INT8_MONOID, // identity: any value terminal: any value - GxB_ANY_INT16_MONOID, // identity: any value terminal: any value - GxB_ANY_INT32_MONOID, // identity: any value terminal: any value - GxB_ANY_INT64_MONOID, // identity: any value terminal: any value - GxB_ANY_UINT8_MONOID, // identity: any value terminal: any value - GxB_ANY_UINT16_MONOID, // identity: any value terminal: any value - GxB_ANY_UINT32_MONOID, // identity: any value terminal: any value - GxB_ANY_UINT64_MONOID, // identity: any value terminal: any value - GxB_ANY_FP32_MONOID, // identity: any value terminal: any value - GxB_ANY_FP64_MONOID, // identity: any value terminal: any value - GxB_ANY_FC32_MONOID, // identity: any value terminal: any value - GxB_ANY_FC64_MONOID, // identity: any value terminal: any value - - //-------------------------------------------------------------------------- - // 4 Boolean monoids: (see also the GxB_ANY_BOOL_MONOID above) - //-------------------------------------------------------------------------- - - // GxB_* boolean monoids, historical, use GrB_* instead: - GxB_LOR_BOOL_MONOID, // identity: false terminal: true - GxB_LAND_BOOL_MONOID, // identity: true terminal: false - GxB_LXOR_BOOL_MONOID, // identity: false - GxB_LXNOR_BOOL_MONOID, // identity: true - GxB_EQ_BOOL_MONOID, // (another name for GrB_LXNOR_MONOID_BOOL) - - // preferred names from the v1.3 spec: - GrB_LOR_MONOID_BOOL, // identity: false terminal: true - GrB_LAND_MONOID_BOOL, // identity: true terminal: false - GrB_LXOR_MONOID_BOOL, // identity: false - GrB_LXNOR_MONOID_BOOL, // identity: true - - //-------------------------------------------------------------------------- - // 16 Bitwise-or monoids: - //-------------------------------------------------------------------------- - - // BOR monoids (bitwise or): - GxB_BOR_UINT8_MONOID, // identity: 0 terminal: 0xFF - GxB_BOR_UINT16_MONOID, // identity: 0 terminal: 0xFFFF - GxB_BOR_UINT32_MONOID, // identity: 0 terminal: 0xFFFFFFFF - GxB_BOR_UINT64_MONOID, // identity: 0 terminal: 0xFFFFFFFFFFFFFFFF - - // BAND monoids (bitwise and): - GxB_BAND_UINT8_MONOID, // identity: 0xFF terminal: 0 - GxB_BAND_UINT16_MONOID, // identity: 0xFFFF terminal: 0 - GxB_BAND_UINT32_MONOID, // identity: 0xFFFFFFFF terminal: 0 - GxB_BAND_UINT64_MONOID, // identity: 0xFFFFFFFFFFFFFFFF terminal: 0 +GrB_Info GrB_Matrix_apply_IndexOp_FP32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + float y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // BXOR monoids (bitwise xor): - GxB_BXOR_UINT8_MONOID, // identity: 0 - GxB_BXOR_UINT16_MONOID, // identity: 0 - GxB_BXOR_UINT32_MONOID, // identity: 0 - GxB_BXOR_UINT64_MONOID, // identity: 0 +GrB_Info GrB_Matrix_apply_IndexOp_FP64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + double y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // BXNOR monoids (bitwise xnor): - GxB_BXNOR_UINT8_MONOID, // identity: 0xFF - GxB_BXNOR_UINT16_MONOID, // identity: 0xFFFF - GxB_BXNOR_UINT32_MONOID, // identity: 0xFFFFFFFF - GxB_BXNOR_UINT64_MONOID ; // identity: 0xFFFFFFFFFFFFFFFF +GrB_Info GxB_Matrix_apply_IndexOp_FC32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; -//============================================================================== -// GrB_Semiring: built-in semirings -//============================================================================== +GrB_Info GxB_Matrix_apply_IndexOp_FC64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; -// Using built-in types and operators, SuiteSparse:GraphBLAS provides -// 1553 pre-defined, built-in semirings: +GrB_Info GrB_Matrix_apply_IndexOp_UDT // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const void *y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; -// 1000 semirings with a multiply operator TxT -> T where T is non-Boolean, -// from the complete cross product of: +//------------------------------------------------------------------------------ +// GrB_apply: generic matrix/vector apply +//------------------------------------------------------------------------------ -// 5 monoids: MIN, MAX, PLUS, TIMES, ANY -// 20 multiply operators: -// FIRST, SECOND, PAIR (=ONEB), MIN, MAX, PLUS, MINUS, TIMES, DIV, -// RDIV, RMINUS -// ISEQ, ISNE, ISGT, ISLT, ISGE, ISLE, -// LOR, LAND, LXOR -// 10 non-Boolean real types, T -// -// Note that min_pair, max_pair, times_pair are all identical to any_pair. -// These 30 semirings are named below, but are internally remapped to -// their corresponding any_pair semiring. +// GrB_apply is a generic function for applying a unary operator to a matrix +// or vector and provides access to these functions: -// 300 semirings with a comparator TxT -> bool, where T is -// non-Boolean, from the complete cross product of: +// GrB_Vector_apply (w,mask,acc,op,u,d) // w = accum (w, op(u)) +// GrB_Matrix_apply (C,Mask,acc,op,A,d) // C = accum (C, op(A)) -// 5 Boolean monoids: LAND, LOR, LXOR, EQ (=LXNOR), ANY -// 6 multiply operators: EQ, NE, GT, LT, GE, LE -// 10 non-Boolean real types, T +// GrB_Vector_apply (w,m,acc,unop ,u,d) +// GrB_Vector_apply_BinaryOp1st_TYPE (w,m,acc,binop,x,u,d) +// GrB_Vector_apply_BinaryOp2nd_TYPE (w,m,acc,binop,u,y,d) +// GrB_Vector_apply_IndexOp_TYPE (w,m,acc,idxop,u,y,d) -// 55 semirings with purely Boolean types, bool x bool -> bool, from the -// complete cross product of: +// GrB_Matrix_apply (C,M,acc,unop ,A,d) +// GrB_Matrix_apply_BinaryOp1st_TYPE (C,M,acc,binop,x,A,d) +// GrB_Matrix_apply_BinaryOp2nd_TYPE (C,M,acc,binop,A,y,d) +// GrB_Matrix_apply_IndexOp_TYPE (C,M,acc,idxop,A,y,d) -// 5 Boolean monoids LAND, LOR, LXOR, EQ (=LXNOR), ANY -// 11 multiply operators: -// FIRST, SECOND, LOR, LAND, LXOR, EQ (=LXNOR), GT, LT, GE, LE, -// PAIR (=ONEB) -// -// Note that lor_pair, land_pair, and eq_pair are all identical to -// any_pair. These 3 semirings are named below, but are internally -// remapped to any_pair_bool semiring. +#if GxB_STDC_VERSION >= 201112L -// 54 complex semirings: TxT -> T where T is float complex or double complex: +#define GB_BIND(kind,x,y,...) \ + _Generic \ + ( \ + (x), \ + GrB_Scalar: GB_CONCAT ( GrB,_,kind,_apply_BinaryOp1st_Scalar), \ + GB_CASES (GrB, GB_CONCAT ( kind, _apply_BinaryOp1st,, )) , \ + default: \ + _Generic \ + ( \ + (y), \ + GB_CASES (GrB, GB_CONCAT ( kind , _apply_BinaryOp2nd,, )), \ + default: GB_CONCAT ( GrB,_,kind,_apply_BinaryOp2nd_Scalar) \ + ) \ + ) -// 3 complex monoids: PLUS, TIMES, ANY -// 9 complex multiply operators: -// FIRST, SECOND, PAIR (=ONEB), PLUS, MINUS, TIMES, DIV, RDIV, RMINUS -// 2 complex types -// -// Note that times_pair is identical to any_pair. -// These 2 semirings are named below, but are internally remapped to -// their corresponding any_pair semiring. +#define GB_IDXOP(kind,A,y,...) \ + _Generic \ + ( \ + (y), \ + GB_CASES (GrB, GB_CONCAT ( kind, _apply_IndexOp,, )), \ + default: GB_CONCAT ( GrB, _, kind, _apply_IndexOp_Scalar) \ + ) -// 64 bitwise semirings: TxT -> T where T is an unsigned integer: +#define GrB_apply(C,Mask,accum,op,...) \ + _Generic \ + ( \ + (C), \ + GrB_Vector : \ + _Generic \ + ( \ + (op), \ + GrB_UnaryOp : GrB_Vector_apply , \ + GrB_BinaryOp : GB_BIND (Vector, __VA_ARGS__), \ + GrB_IndexUnaryOp : GB_IDXOP (Vector, __VA_ARGS__) \ + ), \ + GrB_Matrix : \ + _Generic \ + ( \ + (op), \ + GrB_UnaryOp : GrB_Matrix_apply , \ + GrB_BinaryOp : GB_BIND (Matrix, __VA_ARGS__), \ + GrB_IndexUnaryOp : GB_IDXOP (Matrix, __VA_ARGS__) \ + ) \ + ) \ + (C, Mask, accum, op, __VA_ARGS__) +#endif -// 4 bitwise monoids: BOR, BAND, BXOR, BXNOR -// 4 bitwise multiply operators: BOR, BAND, BXOR, BXNOR -// 4 unsigned integer types: UINT8, UINT16, UINT32, UINT64 +//============================================================================== +// GrB_select: matrix and vector selection using an IndexUnaryOp +//============================================================================== -// 80 positional semirings: XxX -> T where T is int64 or int32, and the type of -// X is ignored: +//------------------------------------------- +// vector select using an IndexUnaryOp +//------------------------------------------- -// 5 monoids: MIN, MAX, PLUS, TIMES, ANY -// 8 multiply operators: -// FIRSTI, FIRSTI1, FIRSTJ, FIRSTJ1, -// SECONDI, SECONDI1, SECONDJ, SECONDJ1 -// 2 types: int32, int64 +GrB_Info GrB_Vector_select_Scalar // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -// The ANY operator is also valid to use as a multiplicative operator in a -// semiring, but serves no purpose in that case. The ANY operator is meant as -// a fast additive operator for a monoid, that terminates, or short-circuits, -// as soon as any value is found. A valid user semiring can be constructed -// with ANY as the multiply operator, but they are not predefined below. +GrB_Info GrB_Vector_select_BOOL // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + bool y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -// Likewise, additional built-in operators can be used as multiplicative -// operators for floating-point semirings (POW, ATAN2, HYPOT, ...) and many -// more semirings can be constructed from bitwise monoids and many integer -// binary (non-bitwise) multiplicative operators, but these are not -// pre-defined. +GrB_Info GrB_Vector_select_INT8 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + int8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -// In the names below, each semiring has a name of the form GxB_add_mult_T -// where add is the additive monoid, mult is the multiply operator, and T is -// the type. The type T is always the type of x and y for the z=mult(x,y) -// operator. The monoid's three types and the ztype of the mult operator are -// always the same. This is the type T for the first set, and Boolean for -// the second and third sets of semirngs. +GrB_Info GrB_Vector_select_INT16 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + int16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -// 1553 = 1000 + 300 + 55 + 54 + 64 + 80 semirings are named below, but 35 = 30 -// + 3 + 2 are identical to the corresponding any_pair semirings of the same -// type. For positional semirings, the mulitiply ops FIRSTJ and SECONDI are -// identical, as are FIRSTJ1 and SECONDI1. These semirings still appear as -// predefined, for convenience. +GrB_Info GrB_Vector_select_INT32 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + int32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -GB_GLOBAL GrB_Semiring +GrB_Info GrB_Vector_select_INT64 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + int64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; -//------------------------------------------------------------------------------ -// 1000 non-Boolean semirings where all types are the same, given by suffix _T -//------------------------------------------------------------------------------ +GrB_Info GrB_Vector_select_UINT8 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + uint8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = FIRST (x,y), all types x,y,z the same: - GxB_MIN_FIRST_INT8 , GxB_MAX_FIRST_INT8 , GxB_PLUS_FIRST_INT8 , GxB_TIMES_FIRST_INT8 , GxB_ANY_FIRST_INT8 , - GxB_MIN_FIRST_INT16 , GxB_MAX_FIRST_INT16 , GxB_PLUS_FIRST_INT16 , GxB_TIMES_FIRST_INT16 , GxB_ANY_FIRST_INT16 , - GxB_MIN_FIRST_INT32 , GxB_MAX_FIRST_INT32 , GxB_PLUS_FIRST_INT32 , GxB_TIMES_FIRST_INT32 , GxB_ANY_FIRST_INT32 , - GxB_MIN_FIRST_INT64 , GxB_MAX_FIRST_INT64 , GxB_PLUS_FIRST_INT64 , GxB_TIMES_FIRST_INT64 , GxB_ANY_FIRST_INT64 , - GxB_MIN_FIRST_UINT8 , GxB_MAX_FIRST_UINT8 , GxB_PLUS_FIRST_UINT8 , GxB_TIMES_FIRST_UINT8 , GxB_ANY_FIRST_UINT8 , - GxB_MIN_FIRST_UINT16 , GxB_MAX_FIRST_UINT16 , GxB_PLUS_FIRST_UINT16 , GxB_TIMES_FIRST_UINT16 , GxB_ANY_FIRST_UINT16 , - GxB_MIN_FIRST_UINT32 , GxB_MAX_FIRST_UINT32 , GxB_PLUS_FIRST_UINT32 , GxB_TIMES_FIRST_UINT32 , GxB_ANY_FIRST_UINT32 , - GxB_MIN_FIRST_UINT64 , GxB_MAX_FIRST_UINT64 , GxB_PLUS_FIRST_UINT64 , GxB_TIMES_FIRST_UINT64 , GxB_ANY_FIRST_UINT64 , - GxB_MIN_FIRST_FP32 , GxB_MAX_FIRST_FP32 , GxB_PLUS_FIRST_FP32 , GxB_TIMES_FIRST_FP32 , GxB_ANY_FIRST_FP32 , - GxB_MIN_FIRST_FP64 , GxB_MAX_FIRST_FP64 , GxB_PLUS_FIRST_FP64 , GxB_TIMES_FIRST_FP64 , GxB_ANY_FIRST_FP64 , +GrB_Info GrB_Vector_select_UINT16 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + uint16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = SECOND (x,y), all types x,y,z the same: - GxB_MIN_SECOND_INT8 , GxB_MAX_SECOND_INT8 , GxB_PLUS_SECOND_INT8 , GxB_TIMES_SECOND_INT8 , GxB_ANY_SECOND_INT8 , - GxB_MIN_SECOND_INT16 , GxB_MAX_SECOND_INT16 , GxB_PLUS_SECOND_INT16 , GxB_TIMES_SECOND_INT16 , GxB_ANY_SECOND_INT16 , - GxB_MIN_SECOND_INT32 , GxB_MAX_SECOND_INT32 , GxB_PLUS_SECOND_INT32 , GxB_TIMES_SECOND_INT32 , GxB_ANY_SECOND_INT32 , - GxB_MIN_SECOND_INT64 , GxB_MAX_SECOND_INT64 , GxB_PLUS_SECOND_INT64 , GxB_TIMES_SECOND_INT64 , GxB_ANY_SECOND_INT64 , - GxB_MIN_SECOND_UINT8 , GxB_MAX_SECOND_UINT8 , GxB_PLUS_SECOND_UINT8 , GxB_TIMES_SECOND_UINT8 , GxB_ANY_SECOND_UINT8 , - GxB_MIN_SECOND_UINT16 , GxB_MAX_SECOND_UINT16 , GxB_PLUS_SECOND_UINT16 , GxB_TIMES_SECOND_UINT16, GxB_ANY_SECOND_UINT16 , - GxB_MIN_SECOND_UINT32 , GxB_MAX_SECOND_UINT32 , GxB_PLUS_SECOND_UINT32 , GxB_TIMES_SECOND_UINT32, GxB_ANY_SECOND_UINT32 , - GxB_MIN_SECOND_UINT64 , GxB_MAX_SECOND_UINT64 , GxB_PLUS_SECOND_UINT64 , GxB_TIMES_SECOND_UINT64, GxB_ANY_SECOND_UINT64 , - GxB_MIN_SECOND_FP32 , GxB_MAX_SECOND_FP32 , GxB_PLUS_SECOND_FP32 , GxB_TIMES_SECOND_FP32 , GxB_ANY_SECOND_FP32 , - GxB_MIN_SECOND_FP64 , GxB_MAX_SECOND_FP64 , GxB_PLUS_SECOND_FP64 , GxB_TIMES_SECOND_FP64 , GxB_ANY_SECOND_FP64 , +GrB_Info GrB_Vector_select_UINT32 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + uint32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = PAIR (x,y), all types x,y,z the same: - // (note that min_pair, max_pair, times_pair are all identical to any_pair, and are marked below) - GxB_MIN_PAIR_INT8 /**/, GxB_MAX_PAIR_INT8 /**/, GxB_PLUS_PAIR_INT8 , GxB_TIMES_PAIR_INT8 /**/, GxB_ANY_PAIR_INT8 , - GxB_MIN_PAIR_INT16 /**/, GxB_MAX_PAIR_INT16 /**/, GxB_PLUS_PAIR_INT16 , GxB_TIMES_PAIR_INT16 /**/, GxB_ANY_PAIR_INT16 , - GxB_MIN_PAIR_INT32 /**/, GxB_MAX_PAIR_INT32 /**/, GxB_PLUS_PAIR_INT32 , GxB_TIMES_PAIR_INT32 /**/, GxB_ANY_PAIR_INT32 , - GxB_MIN_PAIR_INT64 /**/, GxB_MAX_PAIR_INT64 /**/, GxB_PLUS_PAIR_INT64 , GxB_TIMES_PAIR_INT64 /**/, GxB_ANY_PAIR_INT64 , - GxB_MIN_PAIR_UINT8 /**/, GxB_MAX_PAIR_UINT8 /**/, GxB_PLUS_PAIR_UINT8 , GxB_TIMES_PAIR_UINT8 /**/, GxB_ANY_PAIR_UINT8 , - GxB_MIN_PAIR_UINT16/**/, GxB_MAX_PAIR_UINT16/**/, GxB_PLUS_PAIR_UINT16 , GxB_TIMES_PAIR_UINT16/**/, GxB_ANY_PAIR_UINT16 , - GxB_MIN_PAIR_UINT32/**/, GxB_MAX_PAIR_UINT32/**/, GxB_PLUS_PAIR_UINT32 , GxB_TIMES_PAIR_UINT32/**/, GxB_ANY_PAIR_UINT32 , - GxB_MIN_PAIR_UINT64/**/, GxB_MAX_PAIR_UINT64/**/, GxB_PLUS_PAIR_UINT64 , GxB_TIMES_PAIR_UINT64/**/, GxB_ANY_PAIR_UINT64 , - GxB_MIN_PAIR_FP32 /**/, GxB_MAX_PAIR_FP32 /**/, GxB_PLUS_PAIR_FP32 , GxB_TIMES_PAIR_FP32 /**/, GxB_ANY_PAIR_FP32 , - GxB_MIN_PAIR_FP64 /**/, GxB_MAX_PAIR_FP64 /**/, GxB_PLUS_PAIR_FP64 , GxB_TIMES_PAIR_FP64 /**/, GxB_ANY_PAIR_FP64 , +GrB_Info GrB_Vector_select_UINT64 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + uint64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = MIN (x,y), all types x,y,z the same: - GxB_MIN_MIN_INT8 , GxB_MAX_MIN_INT8 , GxB_PLUS_MIN_INT8 , GxB_TIMES_MIN_INT8 , GxB_ANY_MIN_INT8 , - GxB_MIN_MIN_INT16 , GxB_MAX_MIN_INT16 , GxB_PLUS_MIN_INT16 , GxB_TIMES_MIN_INT16 , GxB_ANY_MIN_INT16 , - GxB_MIN_MIN_INT32 , GxB_MAX_MIN_INT32 , GxB_PLUS_MIN_INT32 , GxB_TIMES_MIN_INT32 , GxB_ANY_MIN_INT32 , - GxB_MIN_MIN_INT64 , GxB_MAX_MIN_INT64 , GxB_PLUS_MIN_INT64 , GxB_TIMES_MIN_INT64 , GxB_ANY_MIN_INT64 , - GxB_MIN_MIN_UINT8 , GxB_MAX_MIN_UINT8 , GxB_PLUS_MIN_UINT8 , GxB_TIMES_MIN_UINT8 , GxB_ANY_MIN_UINT8 , - GxB_MIN_MIN_UINT16 , GxB_MAX_MIN_UINT16 , GxB_PLUS_MIN_UINT16 , GxB_TIMES_MIN_UINT16 , GxB_ANY_MIN_UINT16 , - GxB_MIN_MIN_UINT32 , GxB_MAX_MIN_UINT32 , GxB_PLUS_MIN_UINT32 , GxB_TIMES_MIN_UINT32 , GxB_ANY_MIN_UINT32 , - GxB_MIN_MIN_UINT64 , GxB_MAX_MIN_UINT64 , GxB_PLUS_MIN_UINT64 , GxB_TIMES_MIN_UINT64 , GxB_ANY_MIN_UINT64 , - GxB_MIN_MIN_FP32 , GxB_MAX_MIN_FP32 , GxB_PLUS_MIN_FP32 , GxB_TIMES_MIN_FP32 , GxB_ANY_MIN_FP32 , - GxB_MIN_MIN_FP64 , GxB_MAX_MIN_FP64 , GxB_PLUS_MIN_FP64 , GxB_TIMES_MIN_FP64 , GxB_ANY_MIN_FP64 , +GrB_Info GrB_Vector_select_FP32 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + float y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = MAX (x,y), all types x,y,z the same: - GxB_MIN_MAX_INT8 , GxB_MAX_MAX_INT8 , GxB_PLUS_MAX_INT8 , GxB_TIMES_MAX_INT8 , GxB_ANY_MAX_INT8 , - GxB_MIN_MAX_INT16 , GxB_MAX_MAX_INT16 , GxB_PLUS_MAX_INT16 , GxB_TIMES_MAX_INT16 , GxB_ANY_MAX_INT16 , - GxB_MIN_MAX_INT32 , GxB_MAX_MAX_INT32 , GxB_PLUS_MAX_INT32 , GxB_TIMES_MAX_INT32 , GxB_ANY_MAX_INT32 , - GxB_MIN_MAX_INT64 , GxB_MAX_MAX_INT64 , GxB_PLUS_MAX_INT64 , GxB_TIMES_MAX_INT64 , GxB_ANY_MAX_INT64 , - GxB_MIN_MAX_UINT8 , GxB_MAX_MAX_UINT8 , GxB_PLUS_MAX_UINT8 , GxB_TIMES_MAX_UINT8 , GxB_ANY_MAX_UINT8 , - GxB_MIN_MAX_UINT16 , GxB_MAX_MAX_UINT16 , GxB_PLUS_MAX_UINT16 , GxB_TIMES_MAX_UINT16 , GxB_ANY_MAX_UINT16 , - GxB_MIN_MAX_UINT32 , GxB_MAX_MAX_UINT32 , GxB_PLUS_MAX_UINT32 , GxB_TIMES_MAX_UINT32 , GxB_ANY_MAX_UINT32 , - GxB_MIN_MAX_UINT64 , GxB_MAX_MAX_UINT64 , GxB_PLUS_MAX_UINT64 , GxB_TIMES_MAX_UINT64 , GxB_ANY_MAX_UINT64 , - GxB_MIN_MAX_FP32 , GxB_MAX_MAX_FP32 , GxB_PLUS_MAX_FP32 , GxB_TIMES_MAX_FP32 , GxB_ANY_MAX_FP32 , - GxB_MIN_MAX_FP64 , GxB_MAX_MAX_FP64 , GxB_PLUS_MAX_FP64 , GxB_TIMES_MAX_FP64 , GxB_ANY_MAX_FP64 , +GrB_Info GrB_Vector_select_FP64 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + double y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = PLUS (x,y), all types x,y,z the same: - GxB_MIN_PLUS_INT8 , GxB_MAX_PLUS_INT8 , GxB_PLUS_PLUS_INT8 , GxB_TIMES_PLUS_INT8 , GxB_ANY_PLUS_INT8 , - GxB_MIN_PLUS_INT16 , GxB_MAX_PLUS_INT16 , GxB_PLUS_PLUS_INT16 , GxB_TIMES_PLUS_INT16 , GxB_ANY_PLUS_INT16 , - GxB_MIN_PLUS_INT32 , GxB_MAX_PLUS_INT32 , GxB_PLUS_PLUS_INT32 , GxB_TIMES_PLUS_INT32 , GxB_ANY_PLUS_INT32 , - GxB_MIN_PLUS_INT64 , GxB_MAX_PLUS_INT64 , GxB_PLUS_PLUS_INT64 , GxB_TIMES_PLUS_INT64 , GxB_ANY_PLUS_INT64 , - GxB_MIN_PLUS_UINT8 , GxB_MAX_PLUS_UINT8 , GxB_PLUS_PLUS_UINT8 , GxB_TIMES_PLUS_UINT8 , GxB_ANY_PLUS_UINT8 , - GxB_MIN_PLUS_UINT16 , GxB_MAX_PLUS_UINT16 , GxB_PLUS_PLUS_UINT16 , GxB_TIMES_PLUS_UINT16 , GxB_ANY_PLUS_UINT16 , - GxB_MIN_PLUS_UINT32 , GxB_MAX_PLUS_UINT32 , GxB_PLUS_PLUS_UINT32 , GxB_TIMES_PLUS_UINT32 , GxB_ANY_PLUS_UINT32 , - GxB_MIN_PLUS_UINT64 , GxB_MAX_PLUS_UINT64 , GxB_PLUS_PLUS_UINT64 , GxB_TIMES_PLUS_UINT64 , GxB_ANY_PLUS_UINT64 , - GxB_MIN_PLUS_FP32 , GxB_MAX_PLUS_FP32 , GxB_PLUS_PLUS_FP32 , GxB_TIMES_PLUS_FP32 , GxB_ANY_PLUS_FP32 , - GxB_MIN_PLUS_FP64 , GxB_MAX_PLUS_FP64 , GxB_PLUS_PLUS_FP64 , GxB_TIMES_PLUS_FP64 , GxB_ANY_PLUS_FP64 , +GrB_Info GxB_Vector_select_FC32 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + GxB_FC32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = MINUS (x,y), all types x,y,z the same: - GxB_MIN_MINUS_INT8 , GxB_MAX_MINUS_INT8 , GxB_PLUS_MINUS_INT8 , GxB_TIMES_MINUS_INT8 , GxB_ANY_MINUS_INT8 , - GxB_MIN_MINUS_INT16 , GxB_MAX_MINUS_INT16 , GxB_PLUS_MINUS_INT16 , GxB_TIMES_MINUS_INT16 , GxB_ANY_MINUS_INT16 , - GxB_MIN_MINUS_INT32 , GxB_MAX_MINUS_INT32 , GxB_PLUS_MINUS_INT32 , GxB_TIMES_MINUS_INT32 , GxB_ANY_MINUS_INT32 , - GxB_MIN_MINUS_INT64 , GxB_MAX_MINUS_INT64 , GxB_PLUS_MINUS_INT64 , GxB_TIMES_MINUS_INT64 , GxB_ANY_MINUS_INT64 , - GxB_MIN_MINUS_UINT8 , GxB_MAX_MINUS_UINT8 , GxB_PLUS_MINUS_UINT8 , GxB_TIMES_MINUS_UINT8 , GxB_ANY_MINUS_UINT8 , - GxB_MIN_MINUS_UINT16 , GxB_MAX_MINUS_UINT16 , GxB_PLUS_MINUS_UINT16 , GxB_TIMES_MINUS_UINT16 , GxB_ANY_MINUS_UINT16 , - GxB_MIN_MINUS_UINT32 , GxB_MAX_MINUS_UINT32 , GxB_PLUS_MINUS_UINT32 , GxB_TIMES_MINUS_UINT32 , GxB_ANY_MINUS_UINT32 , - GxB_MIN_MINUS_UINT64 , GxB_MAX_MINUS_UINT64 , GxB_PLUS_MINUS_UINT64 , GxB_TIMES_MINUS_UINT64 , GxB_ANY_MINUS_UINT64 , - GxB_MIN_MINUS_FP32 , GxB_MAX_MINUS_FP32 , GxB_PLUS_MINUS_FP32 , GxB_TIMES_MINUS_FP32 , GxB_ANY_MINUS_FP32 , - GxB_MIN_MINUS_FP64 , GxB_MAX_MINUS_FP64 , GxB_PLUS_MINUS_FP64 , GxB_TIMES_MINUS_FP64 , GxB_ANY_MINUS_FP64 , +GrB_Info GxB_Vector_select_FC64 // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + GxB_FC64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = TIMES (x,y), all types x,y,z the same: - GxB_MIN_TIMES_INT8 , GxB_MAX_TIMES_INT8 , GxB_PLUS_TIMES_INT8 , GxB_TIMES_TIMES_INT8 , GxB_ANY_TIMES_INT8 , - GxB_MIN_TIMES_INT16 , GxB_MAX_TIMES_INT16 , GxB_PLUS_TIMES_INT16 , GxB_TIMES_TIMES_INT16 , GxB_ANY_TIMES_INT16 , - GxB_MIN_TIMES_INT32 , GxB_MAX_TIMES_INT32 , GxB_PLUS_TIMES_INT32 , GxB_TIMES_TIMES_INT32 , GxB_ANY_TIMES_INT32 , - GxB_MIN_TIMES_INT64 , GxB_MAX_TIMES_INT64 , GxB_PLUS_TIMES_INT64 , GxB_TIMES_TIMES_INT64 , GxB_ANY_TIMES_INT64 , - GxB_MIN_TIMES_UINT8 , GxB_MAX_TIMES_UINT8 , GxB_PLUS_TIMES_UINT8 , GxB_TIMES_TIMES_UINT8 , GxB_ANY_TIMES_UINT8 , - GxB_MIN_TIMES_UINT16 , GxB_MAX_TIMES_UINT16 , GxB_PLUS_TIMES_UINT16 , GxB_TIMES_TIMES_UINT16 , GxB_ANY_TIMES_UINT16 , - GxB_MIN_TIMES_UINT32 , GxB_MAX_TIMES_UINT32 , GxB_PLUS_TIMES_UINT32 , GxB_TIMES_TIMES_UINT32 , GxB_ANY_TIMES_UINT32 , - GxB_MIN_TIMES_UINT64 , GxB_MAX_TIMES_UINT64 , GxB_PLUS_TIMES_UINT64 , GxB_TIMES_TIMES_UINT64 , GxB_ANY_TIMES_UINT64 , - GxB_MIN_TIMES_FP32 , GxB_MAX_TIMES_FP32 , GxB_PLUS_TIMES_FP32 , GxB_TIMES_TIMES_FP32 , GxB_ANY_TIMES_FP32 , - GxB_MIN_TIMES_FP64 , GxB_MAX_TIMES_FP64 , GxB_PLUS_TIMES_FP64 , GxB_TIMES_TIMES_FP64 , GxB_ANY_TIMES_FP64 , +GrB_Info GrB_Vector_select_UDT // w = accum (w, op(u)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Vector u, // first input: vector u + const void *y, // second input: scalar y + const GrB_Descriptor desc // descriptor for w and mask +) ; - // semirings with multiply op: z = DIV (x,y), all types x,y,z the same: - GxB_MIN_DIV_INT8 , GxB_MAX_DIV_INT8 , GxB_PLUS_DIV_INT8 , GxB_TIMES_DIV_INT8 , GxB_ANY_DIV_INT8 , - GxB_MIN_DIV_INT16 , GxB_MAX_DIV_INT16 , GxB_PLUS_DIV_INT16 , GxB_TIMES_DIV_INT16 , GxB_ANY_DIV_INT16 , - GxB_MIN_DIV_INT32 , GxB_MAX_DIV_INT32 , GxB_PLUS_DIV_INT32 , GxB_TIMES_DIV_INT32 , GxB_ANY_DIV_INT32 , - GxB_MIN_DIV_INT64 , GxB_MAX_DIV_INT64 , GxB_PLUS_DIV_INT64 , GxB_TIMES_DIV_INT64 , GxB_ANY_DIV_INT64 , - GxB_MIN_DIV_UINT8 , GxB_MAX_DIV_UINT8 , GxB_PLUS_DIV_UINT8 , GxB_TIMES_DIV_UINT8 , GxB_ANY_DIV_UINT8 , - GxB_MIN_DIV_UINT16 , GxB_MAX_DIV_UINT16 , GxB_PLUS_DIV_UINT16 , GxB_TIMES_DIV_UINT16 , GxB_ANY_DIV_UINT16 , - GxB_MIN_DIV_UINT32 , GxB_MAX_DIV_UINT32 , GxB_PLUS_DIV_UINT32 , GxB_TIMES_DIV_UINT32 , GxB_ANY_DIV_UINT32 , - GxB_MIN_DIV_UINT64 , GxB_MAX_DIV_UINT64 , GxB_PLUS_DIV_UINT64 , GxB_TIMES_DIV_UINT64 , GxB_ANY_DIV_UINT64 , - GxB_MIN_DIV_FP32 , GxB_MAX_DIV_FP32 , GxB_PLUS_DIV_FP32 , GxB_TIMES_DIV_FP32 , GxB_ANY_DIV_FP32 , - GxB_MIN_DIV_FP64 , GxB_MAX_DIV_FP64 , GxB_PLUS_DIV_FP64 , GxB_TIMES_DIV_FP64 , GxB_ANY_DIV_FP64 , +//------------------------------------------- +// matrix select using an IndexUnaryOp +//------------------------------------------- - // semirings with multiply op: z = RDIV (x,y), all types x,y,z the same: - GxB_MIN_RDIV_INT8 , GxB_MAX_RDIV_INT8 , GxB_PLUS_RDIV_INT8 , GxB_TIMES_RDIV_INT8 , GxB_ANY_RDIV_INT8 , - GxB_MIN_RDIV_INT16 , GxB_MAX_RDIV_INT16 , GxB_PLUS_RDIV_INT16 , GxB_TIMES_RDIV_INT16 , GxB_ANY_RDIV_INT16 , - GxB_MIN_RDIV_INT32 , GxB_MAX_RDIV_INT32 , GxB_PLUS_RDIV_INT32 , GxB_TIMES_RDIV_INT32 , GxB_ANY_RDIV_INT32 , - GxB_MIN_RDIV_INT64 , GxB_MAX_RDIV_INT64 , GxB_PLUS_RDIV_INT64 , GxB_TIMES_RDIV_INT64 , GxB_ANY_RDIV_INT64 , - GxB_MIN_RDIV_UINT8 , GxB_MAX_RDIV_UINT8 , GxB_PLUS_RDIV_UINT8 , GxB_TIMES_RDIV_UINT8 , GxB_ANY_RDIV_UINT8 , - GxB_MIN_RDIV_UINT16 , GxB_MAX_RDIV_UINT16 , GxB_PLUS_RDIV_UINT16 , GxB_TIMES_RDIV_UINT16 , GxB_ANY_RDIV_UINT16 , - GxB_MIN_RDIV_UINT32 , GxB_MAX_RDIV_UINT32 , GxB_PLUS_RDIV_UINT32 , GxB_TIMES_RDIV_UINT32 , GxB_ANY_RDIV_UINT32 , - GxB_MIN_RDIV_UINT64 , GxB_MAX_RDIV_UINT64 , GxB_PLUS_RDIV_UINT64 , GxB_TIMES_RDIV_UINT64 , GxB_ANY_RDIV_UINT64 , - GxB_MIN_RDIV_FP32 , GxB_MAX_RDIV_FP32 , GxB_PLUS_RDIV_FP32 , GxB_TIMES_RDIV_FP32 , GxB_ANY_RDIV_FP32 , - GxB_MIN_RDIV_FP64 , GxB_MAX_RDIV_FP64 , GxB_PLUS_RDIV_FP64 , GxB_TIMES_RDIV_FP64 , GxB_ANY_RDIV_FP64 , +GrB_Info GrB_Matrix_select_Scalar // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const GrB_Scalar y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = RMINUS (x,y), all types x,y,z the same: - GxB_MIN_RMINUS_INT8 , GxB_MAX_RMINUS_INT8 , GxB_PLUS_RMINUS_INT8 , GxB_TIMES_RMINUS_INT8 , GxB_ANY_RMINUS_INT8 , - GxB_MIN_RMINUS_INT16 , GxB_MAX_RMINUS_INT16 , GxB_PLUS_RMINUS_INT16 , GxB_TIMES_RMINUS_INT16 , GxB_ANY_RMINUS_INT16 , - GxB_MIN_RMINUS_INT32 , GxB_MAX_RMINUS_INT32 , GxB_PLUS_RMINUS_INT32 , GxB_TIMES_RMINUS_INT32 , GxB_ANY_RMINUS_INT32 , - GxB_MIN_RMINUS_INT64 , GxB_MAX_RMINUS_INT64 , GxB_PLUS_RMINUS_INT64 , GxB_TIMES_RMINUS_INT64 , GxB_ANY_RMINUS_INT64 , - GxB_MIN_RMINUS_UINT8 , GxB_MAX_RMINUS_UINT8 , GxB_PLUS_RMINUS_UINT8 , GxB_TIMES_RMINUS_UINT8 , GxB_ANY_RMINUS_UINT8 , - GxB_MIN_RMINUS_UINT16 , GxB_MAX_RMINUS_UINT16 , GxB_PLUS_RMINUS_UINT16 , GxB_TIMES_RMINUS_UINT16, GxB_ANY_RMINUS_UINT16 , - GxB_MIN_RMINUS_UINT32 , GxB_MAX_RMINUS_UINT32 , GxB_PLUS_RMINUS_UINT32 , GxB_TIMES_RMINUS_UINT32, GxB_ANY_RMINUS_UINT32 , - GxB_MIN_RMINUS_UINT64 , GxB_MAX_RMINUS_UINT64 , GxB_PLUS_RMINUS_UINT64 , GxB_TIMES_RMINUS_UINT64, GxB_ANY_RMINUS_UINT64 , - GxB_MIN_RMINUS_FP32 , GxB_MAX_RMINUS_FP32 , GxB_PLUS_RMINUS_FP32 , GxB_TIMES_RMINUS_FP32 , GxB_ANY_RMINUS_FP32 , - GxB_MIN_RMINUS_FP64 , GxB_MAX_RMINUS_FP64 , GxB_PLUS_RMINUS_FP64 , GxB_TIMES_RMINUS_FP64 , GxB_ANY_RMINUS_FP64 , +GrB_Info GrB_Matrix_select_BOOL // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + bool y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISEQ (x,y), all types x,y,z the same: - GxB_MIN_ISEQ_INT8 , GxB_MAX_ISEQ_INT8 , GxB_PLUS_ISEQ_INT8 , GxB_TIMES_ISEQ_INT8 , GxB_ANY_ISEQ_INT8 , - GxB_MIN_ISEQ_INT16 , GxB_MAX_ISEQ_INT16 , GxB_PLUS_ISEQ_INT16 , GxB_TIMES_ISEQ_INT16 , GxB_ANY_ISEQ_INT16 , - GxB_MIN_ISEQ_INT32 , GxB_MAX_ISEQ_INT32 , GxB_PLUS_ISEQ_INT32 , GxB_TIMES_ISEQ_INT32 , GxB_ANY_ISEQ_INT32 , - GxB_MIN_ISEQ_INT64 , GxB_MAX_ISEQ_INT64 , GxB_PLUS_ISEQ_INT64 , GxB_TIMES_ISEQ_INT64 , GxB_ANY_ISEQ_INT64 , - GxB_MIN_ISEQ_UINT8 , GxB_MAX_ISEQ_UINT8 , GxB_PLUS_ISEQ_UINT8 , GxB_TIMES_ISEQ_UINT8 , GxB_ANY_ISEQ_UINT8 , - GxB_MIN_ISEQ_UINT16 , GxB_MAX_ISEQ_UINT16 , GxB_PLUS_ISEQ_UINT16 , GxB_TIMES_ISEQ_UINT16 , GxB_ANY_ISEQ_UINT16 , - GxB_MIN_ISEQ_UINT32 , GxB_MAX_ISEQ_UINT32 , GxB_PLUS_ISEQ_UINT32 , GxB_TIMES_ISEQ_UINT32 , GxB_ANY_ISEQ_UINT32 , - GxB_MIN_ISEQ_UINT64 , GxB_MAX_ISEQ_UINT64 , GxB_PLUS_ISEQ_UINT64 , GxB_TIMES_ISEQ_UINT64 , GxB_ANY_ISEQ_UINT64 , - GxB_MIN_ISEQ_FP32 , GxB_MAX_ISEQ_FP32 , GxB_PLUS_ISEQ_FP32 , GxB_TIMES_ISEQ_FP32 , GxB_ANY_ISEQ_FP32 , - GxB_MIN_ISEQ_FP64 , GxB_MAX_ISEQ_FP64 , GxB_PLUS_ISEQ_FP64 , GxB_TIMES_ISEQ_FP64 , GxB_ANY_ISEQ_FP64 , +GrB_Info GrB_Matrix_select_INT8 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; + +GrB_Info GrB_Matrix_select_INT16 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISNE (x,y), all types x,y,z the same: - GxB_MIN_ISNE_INT8 , GxB_MAX_ISNE_INT8 , GxB_PLUS_ISNE_INT8 , GxB_TIMES_ISNE_INT8 , GxB_ANY_ISNE_INT8 , - GxB_MIN_ISNE_INT16 , GxB_MAX_ISNE_INT16 , GxB_PLUS_ISNE_INT16 , GxB_TIMES_ISNE_INT16 , GxB_ANY_ISNE_INT16 , - GxB_MIN_ISNE_INT32 , GxB_MAX_ISNE_INT32 , GxB_PLUS_ISNE_INT32 , GxB_TIMES_ISNE_INT32 , GxB_ANY_ISNE_INT32 , - GxB_MIN_ISNE_INT64 , GxB_MAX_ISNE_INT64 , GxB_PLUS_ISNE_INT64 , GxB_TIMES_ISNE_INT64 , GxB_ANY_ISNE_INT64 , - GxB_MIN_ISNE_UINT8 , GxB_MAX_ISNE_UINT8 , GxB_PLUS_ISNE_UINT8 , GxB_TIMES_ISNE_UINT8 , GxB_ANY_ISNE_UINT8 , - GxB_MIN_ISNE_UINT16 , GxB_MAX_ISNE_UINT16 , GxB_PLUS_ISNE_UINT16 , GxB_TIMES_ISNE_UINT16 , GxB_ANY_ISNE_UINT16 , - GxB_MIN_ISNE_UINT32 , GxB_MAX_ISNE_UINT32 , GxB_PLUS_ISNE_UINT32 , GxB_TIMES_ISNE_UINT32 , GxB_ANY_ISNE_UINT32 , - GxB_MIN_ISNE_UINT64 , GxB_MAX_ISNE_UINT64 , GxB_PLUS_ISNE_UINT64 , GxB_TIMES_ISNE_UINT64 , GxB_ANY_ISNE_UINT64 , - GxB_MIN_ISNE_FP32 , GxB_MAX_ISNE_FP32 , GxB_PLUS_ISNE_FP32 , GxB_TIMES_ISNE_FP32 , GxB_ANY_ISNE_FP32 , - GxB_MIN_ISNE_FP64 , GxB_MAX_ISNE_FP64 , GxB_PLUS_ISNE_FP64 , GxB_TIMES_ISNE_FP64 , GxB_ANY_ISNE_FP64 , +GrB_Info GrB_Matrix_select_INT32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISGT (x,y), all types x,y,z the same: - GxB_MIN_ISGT_INT8 , GxB_MAX_ISGT_INT8 , GxB_PLUS_ISGT_INT8 , GxB_TIMES_ISGT_INT8 , GxB_ANY_ISGT_INT8 , - GxB_MIN_ISGT_INT16 , GxB_MAX_ISGT_INT16 , GxB_PLUS_ISGT_INT16 , GxB_TIMES_ISGT_INT16 , GxB_ANY_ISGT_INT16 , - GxB_MIN_ISGT_INT32 , GxB_MAX_ISGT_INT32 , GxB_PLUS_ISGT_INT32 , GxB_TIMES_ISGT_INT32 , GxB_ANY_ISGT_INT32 , - GxB_MIN_ISGT_INT64 , GxB_MAX_ISGT_INT64 , GxB_PLUS_ISGT_INT64 , GxB_TIMES_ISGT_INT64 , GxB_ANY_ISGT_INT64 , - GxB_MIN_ISGT_UINT8 , GxB_MAX_ISGT_UINT8 , GxB_PLUS_ISGT_UINT8 , GxB_TIMES_ISGT_UINT8 , GxB_ANY_ISGT_UINT8 , - GxB_MIN_ISGT_UINT16 , GxB_MAX_ISGT_UINT16 , GxB_PLUS_ISGT_UINT16 , GxB_TIMES_ISGT_UINT16 , GxB_ANY_ISGT_UINT16 , - GxB_MIN_ISGT_UINT32 , GxB_MAX_ISGT_UINT32 , GxB_PLUS_ISGT_UINT32 , GxB_TIMES_ISGT_UINT32 , GxB_ANY_ISGT_UINT32 , - GxB_MIN_ISGT_UINT64 , GxB_MAX_ISGT_UINT64 , GxB_PLUS_ISGT_UINT64 , GxB_TIMES_ISGT_UINT64 , GxB_ANY_ISGT_UINT64 , - GxB_MIN_ISGT_FP32 , GxB_MAX_ISGT_FP32 , GxB_PLUS_ISGT_FP32 , GxB_TIMES_ISGT_FP32 , GxB_ANY_ISGT_FP32 , - GxB_MIN_ISGT_FP64 , GxB_MAX_ISGT_FP64 , GxB_PLUS_ISGT_FP64 , GxB_TIMES_ISGT_FP64 , GxB_ANY_ISGT_FP64 , +GrB_Info GrB_Matrix_select_INT64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + int64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISLT (x,y), all types x,y,z the same: - GxB_MIN_ISLT_INT8 , GxB_MAX_ISLT_INT8 , GxB_PLUS_ISLT_INT8 , GxB_TIMES_ISLT_INT8 , GxB_ANY_ISLT_INT8 , - GxB_MIN_ISLT_INT16 , GxB_MAX_ISLT_INT16 , GxB_PLUS_ISLT_INT16 , GxB_TIMES_ISLT_INT16 , GxB_ANY_ISLT_INT16 , - GxB_MIN_ISLT_INT32 , GxB_MAX_ISLT_INT32 , GxB_PLUS_ISLT_INT32 , GxB_TIMES_ISLT_INT32 , GxB_ANY_ISLT_INT32 , - GxB_MIN_ISLT_INT64 , GxB_MAX_ISLT_INT64 , GxB_PLUS_ISLT_INT64 , GxB_TIMES_ISLT_INT64 , GxB_ANY_ISLT_INT64 , - GxB_MIN_ISLT_UINT8 , GxB_MAX_ISLT_UINT8 , GxB_PLUS_ISLT_UINT8 , GxB_TIMES_ISLT_UINT8 , GxB_ANY_ISLT_UINT8 , - GxB_MIN_ISLT_UINT16 , GxB_MAX_ISLT_UINT16 , GxB_PLUS_ISLT_UINT16 , GxB_TIMES_ISLT_UINT16 , GxB_ANY_ISLT_UINT16 , - GxB_MIN_ISLT_UINT32 , GxB_MAX_ISLT_UINT32 , GxB_PLUS_ISLT_UINT32 , GxB_TIMES_ISLT_UINT32 , GxB_ANY_ISLT_UINT32 , - GxB_MIN_ISLT_UINT64 , GxB_MAX_ISLT_UINT64 , GxB_PLUS_ISLT_UINT64 , GxB_TIMES_ISLT_UINT64 , GxB_ANY_ISLT_UINT64 , - GxB_MIN_ISLT_FP32 , GxB_MAX_ISLT_FP32 , GxB_PLUS_ISLT_FP32 , GxB_TIMES_ISLT_FP32 , GxB_ANY_ISLT_FP32 , - GxB_MIN_ISLT_FP64 , GxB_MAX_ISLT_FP64 , GxB_PLUS_ISLT_FP64 , GxB_TIMES_ISLT_FP64 , GxB_ANY_ISLT_FP64 , +GrB_Info GrB_Matrix_select_UINT8 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint8_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISGE (x,y), all types x,y,z the same: - GxB_MIN_ISGE_INT8 , GxB_MAX_ISGE_INT8 , GxB_PLUS_ISGE_INT8 , GxB_TIMES_ISGE_INT8 , GxB_ANY_ISGE_INT8 , - GxB_MIN_ISGE_INT16 , GxB_MAX_ISGE_INT16 , GxB_PLUS_ISGE_INT16 , GxB_TIMES_ISGE_INT16 , GxB_ANY_ISGE_INT16 , - GxB_MIN_ISGE_INT32 , GxB_MAX_ISGE_INT32 , GxB_PLUS_ISGE_INT32 , GxB_TIMES_ISGE_INT32 , GxB_ANY_ISGE_INT32 , - GxB_MIN_ISGE_INT64 , GxB_MAX_ISGE_INT64 , GxB_PLUS_ISGE_INT64 , GxB_TIMES_ISGE_INT64 , GxB_ANY_ISGE_INT64 , - GxB_MIN_ISGE_UINT8 , GxB_MAX_ISGE_UINT8 , GxB_PLUS_ISGE_UINT8 , GxB_TIMES_ISGE_UINT8 , GxB_ANY_ISGE_UINT8 , - GxB_MIN_ISGE_UINT16 , GxB_MAX_ISGE_UINT16 , GxB_PLUS_ISGE_UINT16 , GxB_TIMES_ISGE_UINT16 , GxB_ANY_ISGE_UINT16 , - GxB_MIN_ISGE_UINT32 , GxB_MAX_ISGE_UINT32 , GxB_PLUS_ISGE_UINT32 , GxB_TIMES_ISGE_UINT32 , GxB_ANY_ISGE_UINT32 , - GxB_MIN_ISGE_UINT64 , GxB_MAX_ISGE_UINT64 , GxB_PLUS_ISGE_UINT64 , GxB_TIMES_ISGE_UINT64 , GxB_ANY_ISGE_UINT64 , - GxB_MIN_ISGE_FP32 , GxB_MAX_ISGE_FP32 , GxB_PLUS_ISGE_FP32 , GxB_TIMES_ISGE_FP32 , GxB_ANY_ISGE_FP32 , - GxB_MIN_ISGE_FP64 , GxB_MAX_ISGE_FP64 , GxB_PLUS_ISGE_FP64 , GxB_TIMES_ISGE_FP64 , GxB_ANY_ISGE_FP64 , +GrB_Info GrB_Matrix_select_UINT16 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint16_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = ISLE (x,y), all types x,y,z the same: - GxB_MIN_ISLE_INT8 , GxB_MAX_ISLE_INT8 , GxB_PLUS_ISLE_INT8 , GxB_TIMES_ISLE_INT8 , GxB_ANY_ISLE_INT8 , - GxB_MIN_ISLE_INT16 , GxB_MAX_ISLE_INT16 , GxB_PLUS_ISLE_INT16 , GxB_TIMES_ISLE_INT16 , GxB_ANY_ISLE_INT16 , - GxB_MIN_ISLE_INT32 , GxB_MAX_ISLE_INT32 , GxB_PLUS_ISLE_INT32 , GxB_TIMES_ISLE_INT32 , GxB_ANY_ISLE_INT32 , - GxB_MIN_ISLE_INT64 , GxB_MAX_ISLE_INT64 , GxB_PLUS_ISLE_INT64 , GxB_TIMES_ISLE_INT64 , GxB_ANY_ISLE_INT64 , - GxB_MIN_ISLE_UINT8 , GxB_MAX_ISLE_UINT8 , GxB_PLUS_ISLE_UINT8 , GxB_TIMES_ISLE_UINT8 , GxB_ANY_ISLE_UINT8 , - GxB_MIN_ISLE_UINT16 , GxB_MAX_ISLE_UINT16 , GxB_PLUS_ISLE_UINT16 , GxB_TIMES_ISLE_UINT16 , GxB_ANY_ISLE_UINT16 , - GxB_MIN_ISLE_UINT32 , GxB_MAX_ISLE_UINT32 , GxB_PLUS_ISLE_UINT32 , GxB_TIMES_ISLE_UINT32 , GxB_ANY_ISLE_UINT32 , - GxB_MIN_ISLE_UINT64 , GxB_MAX_ISLE_UINT64 , GxB_PLUS_ISLE_UINT64 , GxB_TIMES_ISLE_UINT64 , GxB_ANY_ISLE_UINT64 , - GxB_MIN_ISLE_FP32 , GxB_MAX_ISLE_FP32 , GxB_PLUS_ISLE_FP32 , GxB_TIMES_ISLE_FP32 , GxB_ANY_ISLE_FP32 , - GxB_MIN_ISLE_FP64 , GxB_MAX_ISLE_FP64 , GxB_PLUS_ISLE_FP64 , GxB_TIMES_ISLE_FP64 , GxB_ANY_ISLE_FP64 , +GrB_Info GrB_Matrix_select_UINT32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = LOR (x,y), all types x,y,z the same: - GxB_MIN_LOR_INT8 , GxB_MAX_LOR_INT8 , GxB_PLUS_LOR_INT8 , GxB_TIMES_LOR_INT8 , GxB_ANY_LOR_INT8 , - GxB_MIN_LOR_INT16 , GxB_MAX_LOR_INT16 , GxB_PLUS_LOR_INT16 , GxB_TIMES_LOR_INT16 , GxB_ANY_LOR_INT16 , - GxB_MIN_LOR_INT32 , GxB_MAX_LOR_INT32 , GxB_PLUS_LOR_INT32 , GxB_TIMES_LOR_INT32 , GxB_ANY_LOR_INT32 , - GxB_MIN_LOR_INT64 , GxB_MAX_LOR_INT64 , GxB_PLUS_LOR_INT64 , GxB_TIMES_LOR_INT64 , GxB_ANY_LOR_INT64 , - GxB_MIN_LOR_UINT8 , GxB_MAX_LOR_UINT8 , GxB_PLUS_LOR_UINT8 , GxB_TIMES_LOR_UINT8 , GxB_ANY_LOR_UINT8 , - GxB_MIN_LOR_UINT16 , GxB_MAX_LOR_UINT16 , GxB_PLUS_LOR_UINT16 , GxB_TIMES_LOR_UINT16 , GxB_ANY_LOR_UINT16 , - GxB_MIN_LOR_UINT32 , GxB_MAX_LOR_UINT32 , GxB_PLUS_LOR_UINT32 , GxB_TIMES_LOR_UINT32 , GxB_ANY_LOR_UINT32 , - GxB_MIN_LOR_UINT64 , GxB_MAX_LOR_UINT64 , GxB_PLUS_LOR_UINT64 , GxB_TIMES_LOR_UINT64 , GxB_ANY_LOR_UINT64 , - GxB_MIN_LOR_FP32 , GxB_MAX_LOR_FP32 , GxB_PLUS_LOR_FP32 , GxB_TIMES_LOR_FP32 , GxB_ANY_LOR_FP32 , - GxB_MIN_LOR_FP64 , GxB_MAX_LOR_FP64 , GxB_PLUS_LOR_FP64 , GxB_TIMES_LOR_FP64 , GxB_ANY_LOR_FP64 , +GrB_Info GrB_Matrix_select_UINT64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + uint64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = LAND (x,y), all types x,y,z the same: - GxB_MIN_LAND_INT8 , GxB_MAX_LAND_INT8 , GxB_PLUS_LAND_INT8 , GxB_TIMES_LAND_INT8 , GxB_ANY_LAND_INT8 , - GxB_MIN_LAND_INT16 , GxB_MAX_LAND_INT16 , GxB_PLUS_LAND_INT16 , GxB_TIMES_LAND_INT16 , GxB_ANY_LAND_INT16 , - GxB_MIN_LAND_INT32 , GxB_MAX_LAND_INT32 , GxB_PLUS_LAND_INT32 , GxB_TIMES_LAND_INT32 , GxB_ANY_LAND_INT32 , - GxB_MIN_LAND_INT64 , GxB_MAX_LAND_INT64 , GxB_PLUS_LAND_INT64 , GxB_TIMES_LAND_INT64 , GxB_ANY_LAND_INT64 , - GxB_MIN_LAND_UINT8 , GxB_MAX_LAND_UINT8 , GxB_PLUS_LAND_UINT8 , GxB_TIMES_LAND_UINT8 , GxB_ANY_LAND_UINT8 , - GxB_MIN_LAND_UINT16 , GxB_MAX_LAND_UINT16 , GxB_PLUS_LAND_UINT16 , GxB_TIMES_LAND_UINT16 , GxB_ANY_LAND_UINT16 , - GxB_MIN_LAND_UINT32 , GxB_MAX_LAND_UINT32 , GxB_PLUS_LAND_UINT32 , GxB_TIMES_LAND_UINT32 , GxB_ANY_LAND_UINT32 , - GxB_MIN_LAND_UINT64 , GxB_MAX_LAND_UINT64 , GxB_PLUS_LAND_UINT64 , GxB_TIMES_LAND_UINT64 , GxB_ANY_LAND_UINT64 , - GxB_MIN_LAND_FP32 , GxB_MAX_LAND_FP32 , GxB_PLUS_LAND_FP32 , GxB_TIMES_LAND_FP32 , GxB_ANY_LAND_FP32 , - GxB_MIN_LAND_FP64 , GxB_MAX_LAND_FP64 , GxB_PLUS_LAND_FP64 , GxB_TIMES_LAND_FP64 , GxB_ANY_LAND_FP64 , +GrB_Info GrB_Matrix_select_FP32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + float y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = LXOR (x,y), all types x,y,z the same: - GxB_MIN_LXOR_INT8 , GxB_MAX_LXOR_INT8 , GxB_PLUS_LXOR_INT8 , GxB_TIMES_LXOR_INT8 , GxB_ANY_LXOR_INT8 , - GxB_MIN_LXOR_INT16 , GxB_MAX_LXOR_INT16 , GxB_PLUS_LXOR_INT16 , GxB_TIMES_LXOR_INT16 , GxB_ANY_LXOR_INT16 , - GxB_MIN_LXOR_INT32 , GxB_MAX_LXOR_INT32 , GxB_PLUS_LXOR_INT32 , GxB_TIMES_LXOR_INT32 , GxB_ANY_LXOR_INT32 , - GxB_MIN_LXOR_INT64 , GxB_MAX_LXOR_INT64 , GxB_PLUS_LXOR_INT64 , GxB_TIMES_LXOR_INT64 , GxB_ANY_LXOR_INT64 , - GxB_MIN_LXOR_UINT8 , GxB_MAX_LXOR_UINT8 , GxB_PLUS_LXOR_UINT8 , GxB_TIMES_LXOR_UINT8 , GxB_ANY_LXOR_UINT8 , - GxB_MIN_LXOR_UINT16 , GxB_MAX_LXOR_UINT16 , GxB_PLUS_LXOR_UINT16 , GxB_TIMES_LXOR_UINT16 , GxB_ANY_LXOR_UINT16 , - GxB_MIN_LXOR_UINT32 , GxB_MAX_LXOR_UINT32 , GxB_PLUS_LXOR_UINT32 , GxB_TIMES_LXOR_UINT32 , GxB_ANY_LXOR_UINT32 , - GxB_MIN_LXOR_UINT64 , GxB_MAX_LXOR_UINT64 , GxB_PLUS_LXOR_UINT64 , GxB_TIMES_LXOR_UINT64 , GxB_ANY_LXOR_UINT64 , - GxB_MIN_LXOR_FP32 , GxB_MAX_LXOR_FP32 , GxB_PLUS_LXOR_FP32 , GxB_TIMES_LXOR_FP32 , GxB_ANY_LXOR_FP32 , - GxB_MIN_LXOR_FP64 , GxB_MAX_LXOR_FP64 , GxB_PLUS_LXOR_FP64 , GxB_TIMES_LXOR_FP64 , GxB_ANY_LXOR_FP64 , +GrB_Info GrB_Matrix_select_FP64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + double y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; -//------------------------------------------------------------------------------ -// 300 semirings with a comparator TxT -> bool, where T is non-Boolean -//------------------------------------------------------------------------------ +GrB_Info GxB_Matrix_select_FC32 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC32_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // In the 4th column the GxB_EQ_*_* semirings could also be called - // GxB_LXNOR_*_*, since the EQ and LXNOR boolean operators are identical - // but those names are not included. +GrB_Info GxB_Matrix_select_FC64 // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + GxB_FC64_t y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = EQ (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_EQ_INT8 , GxB_LAND_EQ_INT8 , GxB_LXOR_EQ_INT8 , GxB_EQ_EQ_INT8 , GxB_ANY_EQ_INT8 , - GxB_LOR_EQ_INT16 , GxB_LAND_EQ_INT16 , GxB_LXOR_EQ_INT16 , GxB_EQ_EQ_INT16 , GxB_ANY_EQ_INT16 , - GxB_LOR_EQ_INT32 , GxB_LAND_EQ_INT32 , GxB_LXOR_EQ_INT32 , GxB_EQ_EQ_INT32 , GxB_ANY_EQ_INT32 , - GxB_LOR_EQ_INT64 , GxB_LAND_EQ_INT64 , GxB_LXOR_EQ_INT64 , GxB_EQ_EQ_INT64 , GxB_ANY_EQ_INT64 , - GxB_LOR_EQ_UINT8 , GxB_LAND_EQ_UINT8 , GxB_LXOR_EQ_UINT8 , GxB_EQ_EQ_UINT8 , GxB_ANY_EQ_UINT8 , - GxB_LOR_EQ_UINT16 , GxB_LAND_EQ_UINT16 , GxB_LXOR_EQ_UINT16 , GxB_EQ_EQ_UINT16 , GxB_ANY_EQ_UINT16 , - GxB_LOR_EQ_UINT32 , GxB_LAND_EQ_UINT32 , GxB_LXOR_EQ_UINT32 , GxB_EQ_EQ_UINT32 , GxB_ANY_EQ_UINT32 , - GxB_LOR_EQ_UINT64 , GxB_LAND_EQ_UINT64 , GxB_LXOR_EQ_UINT64 , GxB_EQ_EQ_UINT64 , GxB_ANY_EQ_UINT64 , - GxB_LOR_EQ_FP32 , GxB_LAND_EQ_FP32 , GxB_LXOR_EQ_FP32 , GxB_EQ_EQ_FP32 , GxB_ANY_EQ_FP32 , - GxB_LOR_EQ_FP64 , GxB_LAND_EQ_FP64 , GxB_LXOR_EQ_FP64 , GxB_EQ_EQ_FP64 , GxB_ANY_EQ_FP64 , +GrB_Info GrB_Matrix_select_UDT // C=accum(C,op(A)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_IndexUnaryOp op, // operator to apply to the entries + const GrB_Matrix A, // first input: matrix A + const void *y, // second input: scalar y + const GrB_Descriptor desc // descriptor for C, mask, and A +) ; - // semirings with multiply op: z = NE (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_NE_INT8 , GxB_LAND_NE_INT8 , GxB_LXOR_NE_INT8 , GxB_EQ_NE_INT8 , GxB_ANY_NE_INT8 , - GxB_LOR_NE_INT16 , GxB_LAND_NE_INT16 , GxB_LXOR_NE_INT16 , GxB_EQ_NE_INT16 , GxB_ANY_NE_INT16 , - GxB_LOR_NE_INT32 , GxB_LAND_NE_INT32 , GxB_LXOR_NE_INT32 , GxB_EQ_NE_INT32 , GxB_ANY_NE_INT32 , - GxB_LOR_NE_INT64 , GxB_LAND_NE_INT64 , GxB_LXOR_NE_INT64 , GxB_EQ_NE_INT64 , GxB_ANY_NE_INT64 , - GxB_LOR_NE_UINT8 , GxB_LAND_NE_UINT8 , GxB_LXOR_NE_UINT8 , GxB_EQ_NE_UINT8 , GxB_ANY_NE_UINT8 , - GxB_LOR_NE_UINT16 , GxB_LAND_NE_UINT16 , GxB_LXOR_NE_UINT16 , GxB_EQ_NE_UINT16 , GxB_ANY_NE_UINT16 , - GxB_LOR_NE_UINT32 , GxB_LAND_NE_UINT32 , GxB_LXOR_NE_UINT32 , GxB_EQ_NE_UINT32 , GxB_ANY_NE_UINT32 , - GxB_LOR_NE_UINT64 , GxB_LAND_NE_UINT64 , GxB_LXOR_NE_UINT64 , GxB_EQ_NE_UINT64 , GxB_ANY_NE_UINT64 , - GxB_LOR_NE_FP32 , GxB_LAND_NE_FP32 , GxB_LXOR_NE_FP32 , GxB_EQ_NE_FP32 , GxB_ANY_NE_FP32 , - GxB_LOR_NE_FP64 , GxB_LAND_NE_FP64 , GxB_LXOR_NE_FP64 , GxB_EQ_NE_FP64 , GxB_ANY_NE_FP64 , +// GrB_select is a generic method that applies an IndexUnaryOp to +// a matrix or vector, using any type of the scalar y. - // semirings with multiply op: z = GT (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_GT_INT8 , GxB_LAND_GT_INT8 , GxB_LXOR_GT_INT8 , GxB_EQ_GT_INT8 , GxB_ANY_GT_INT8 , - GxB_LOR_GT_INT16 , GxB_LAND_GT_INT16 , GxB_LXOR_GT_INT16 , GxB_EQ_GT_INT16 , GxB_ANY_GT_INT16 , - GxB_LOR_GT_INT32 , GxB_LAND_GT_INT32 , GxB_LXOR_GT_INT32 , GxB_EQ_GT_INT32 , GxB_ANY_GT_INT32 , - GxB_LOR_GT_INT64 , GxB_LAND_GT_INT64 , GxB_LXOR_GT_INT64 , GxB_EQ_GT_INT64 , GxB_ANY_GT_INT64 , - GxB_LOR_GT_UINT8 , GxB_LAND_GT_UINT8 , GxB_LXOR_GT_UINT8 , GxB_EQ_GT_UINT8 , GxB_ANY_GT_UINT8 , - GxB_LOR_GT_UINT16 , GxB_LAND_GT_UINT16 , GxB_LXOR_GT_UINT16 , GxB_EQ_GT_UINT16 , GxB_ANY_GT_UINT16 , - GxB_LOR_GT_UINT32 , GxB_LAND_GT_UINT32 , GxB_LXOR_GT_UINT32 , GxB_EQ_GT_UINT32 , GxB_ANY_GT_UINT32 , - GxB_LOR_GT_UINT64 , GxB_LAND_GT_UINT64 , GxB_LXOR_GT_UINT64 , GxB_EQ_GT_UINT64 , GxB_ANY_GT_UINT64 , - GxB_LOR_GT_FP32 , GxB_LAND_GT_FP32 , GxB_LXOR_GT_FP32 , GxB_EQ_GT_FP32 , GxB_ANY_GT_FP32 , - GxB_LOR_GT_FP64 , GxB_LAND_GT_FP64 , GxB_LXOR_GT_FP64 , GxB_EQ_GT_FP64 , GxB_ANY_GT_FP64 , +// GrB_Vector_select_TYPE (w,m,acc,idxop,u,y,d) +// GrB_Matrix_select_TYPE (C,M,acc,idxop,A,y,d) + +#if GxB_STDC_VERSION >= 201112L +#define GrB_select(C,Mask,accum,op,x,y,d) \ + _Generic \ + ( \ + (C), \ + GrB_Vector : \ + _Generic \ + ( \ + (y), \ + GB_CASES (GrB, Vector_select), \ + default: GrB_Vector_select_Scalar \ + ), \ + GrB_Matrix : \ + _Generic \ + ( \ + (y), \ + GB_CASES (GrB, Matrix_select), \ + default: GrB_Matrix_select_Scalar \ + ) \ + ) \ + (C, Mask, accum, op, x, y, d) +#endif - // semirings with multiply op: z = LT (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_LT_INT8 , GxB_LAND_LT_INT8 , GxB_LXOR_LT_INT8 , GxB_EQ_LT_INT8 , GxB_ANY_LT_INT8 , - GxB_LOR_LT_INT16 , GxB_LAND_LT_INT16 , GxB_LXOR_LT_INT16 , GxB_EQ_LT_INT16 , GxB_ANY_LT_INT16 , - GxB_LOR_LT_INT32 , GxB_LAND_LT_INT32 , GxB_LXOR_LT_INT32 , GxB_EQ_LT_INT32 , GxB_ANY_LT_INT32 , - GxB_LOR_LT_INT64 , GxB_LAND_LT_INT64 , GxB_LXOR_LT_INT64 , GxB_EQ_LT_INT64 , GxB_ANY_LT_INT64 , - GxB_LOR_LT_UINT8 , GxB_LAND_LT_UINT8 , GxB_LXOR_LT_UINT8 , GxB_EQ_LT_UINT8 , GxB_ANY_LT_UINT8 , - GxB_LOR_LT_UINT16 , GxB_LAND_LT_UINT16 , GxB_LXOR_LT_UINT16 , GxB_EQ_LT_UINT16 , GxB_ANY_LT_UINT16 , - GxB_LOR_LT_UINT32 , GxB_LAND_LT_UINT32 , GxB_LXOR_LT_UINT32 , GxB_EQ_LT_UINT32 , GxB_ANY_LT_UINT32 , - GxB_LOR_LT_UINT64 , GxB_LAND_LT_UINT64 , GxB_LXOR_LT_UINT64 , GxB_EQ_LT_UINT64 , GxB_ANY_LT_UINT64 , - GxB_LOR_LT_FP32 , GxB_LAND_LT_FP32 , GxB_LXOR_LT_FP32 , GxB_EQ_LT_FP32 , GxB_ANY_LT_FP32 , - GxB_LOR_LT_FP64 , GxB_LAND_LT_FP64 , GxB_LXOR_LT_FP64 , GxB_EQ_LT_FP64 , GxB_ANY_LT_FP64 , +//============================================================================== +// GxB_select: matrix and vector selection (DEPRECATED: use GrB_select instead) +//============================================================================== - // semirings with multiply op: z = GE (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_GE_INT8 , GxB_LAND_GE_INT8 , GxB_LXOR_GE_INT8 , GxB_EQ_GE_INT8 , GxB_ANY_GE_INT8 , - GxB_LOR_GE_INT16 , GxB_LAND_GE_INT16 , GxB_LXOR_GE_INT16 , GxB_EQ_GE_INT16 , GxB_ANY_GE_INT16 , - GxB_LOR_GE_INT32 , GxB_LAND_GE_INT32 , GxB_LXOR_GE_INT32 , GxB_EQ_GE_INT32 , GxB_ANY_GE_INT32 , - GxB_LOR_GE_INT64 , GxB_LAND_GE_INT64 , GxB_LXOR_GE_INT64 , GxB_EQ_GE_INT64 , GxB_ANY_GE_INT64 , - GxB_LOR_GE_UINT8 , GxB_LAND_GE_UINT8 , GxB_LXOR_GE_UINT8 , GxB_EQ_GE_UINT8 , GxB_ANY_GE_UINT8 , - GxB_LOR_GE_UINT16 , GxB_LAND_GE_UINT16 , GxB_LXOR_GE_UINT16 , GxB_EQ_GE_UINT16 , GxB_ANY_GE_UINT16 , - GxB_LOR_GE_UINT32 , GxB_LAND_GE_UINT32 , GxB_LXOR_GE_UINT32 , GxB_EQ_GE_UINT32 , GxB_ANY_GE_UINT32 , - GxB_LOR_GE_UINT64 , GxB_LAND_GE_UINT64 , GxB_LXOR_GE_UINT64 , GxB_EQ_GE_UINT64 , GxB_ANY_GE_UINT64 , - GxB_LOR_GE_FP32 , GxB_LAND_GE_FP32 , GxB_LXOR_GE_FP32 , GxB_EQ_GE_FP32 , GxB_ANY_GE_FP32 , - GxB_LOR_GE_FP64 , GxB_LAND_GE_FP64 , GxB_LXOR_GE_FP64 , GxB_EQ_GE_FP64 , GxB_ANY_GE_FP64 , +GrB_Info GxB_Vector_select (GrB_Vector w, const GrB_Vector mask, + const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Vector u, + const GrB_Scalar Thunk, const GrB_Descriptor desc) ; +GrB_Info GxB_Matrix_select (GrB_Matrix C, const GrB_Matrix Mask, + const GrB_BinaryOp accum, const GxB_SelectOp op, const GrB_Matrix A, + const GrB_Scalar Thunk, const GrB_Descriptor desc) ; +#if GxB_STDC_VERSION >= 201112L +#define GxB_select(C,Mask,accum,op,A,Thunk,desc) _Generic \ +((C), GrB_Vector:GxB_Vector_select , GrB_Matrix:GxB_Matrix_select ) \ +(C, Mask, accum, op, A, Thunk, desc) +#endif - // semirings with multiply op: z = LE (x,y), where z is boolean and x,y are given by the suffix: - GxB_LOR_LE_INT8 , GxB_LAND_LE_INT8 , GxB_LXOR_LE_INT8 , GxB_EQ_LE_INT8 , GxB_ANY_LE_INT8 , - GxB_LOR_LE_INT16 , GxB_LAND_LE_INT16 , GxB_LXOR_LE_INT16 , GxB_EQ_LE_INT16 , GxB_ANY_LE_INT16 , - GxB_LOR_LE_INT32 , GxB_LAND_LE_INT32 , GxB_LXOR_LE_INT32 , GxB_EQ_LE_INT32 , GxB_ANY_LE_INT32 , - GxB_LOR_LE_INT64 , GxB_LAND_LE_INT64 , GxB_LXOR_LE_INT64 , GxB_EQ_LE_INT64 , GxB_ANY_LE_INT64 , - GxB_LOR_LE_UINT8 , GxB_LAND_LE_UINT8 , GxB_LXOR_LE_UINT8 , GxB_EQ_LE_UINT8 , GxB_ANY_LE_UINT8 , - GxB_LOR_LE_UINT16 , GxB_LAND_LE_UINT16 , GxB_LXOR_LE_UINT16 , GxB_EQ_LE_UINT16 , GxB_ANY_LE_UINT16 , - GxB_LOR_LE_UINT32 , GxB_LAND_LE_UINT32 , GxB_LXOR_LE_UINT32 , GxB_EQ_LE_UINT32 , GxB_ANY_LE_UINT32 , - GxB_LOR_LE_UINT64 , GxB_LAND_LE_UINT64 , GxB_LXOR_LE_UINT64 , GxB_EQ_LE_UINT64 , GxB_ANY_LE_UINT64 , - GxB_LOR_LE_FP32 , GxB_LAND_LE_FP32 , GxB_LXOR_LE_FP32 , GxB_EQ_LE_FP32 , GxB_ANY_LE_FP32 , - GxB_LOR_LE_FP64 , GxB_LAND_LE_FP64 , GxB_LXOR_LE_FP64 , GxB_EQ_LE_FP64 , GxB_ANY_LE_FP64 , +//============================================================================== +// GrB_reduce: matrix and vector reduction +//============================================================================== -//------------------------------------------------------------------------------ -// 55 semirings with purely Boolean types, bool x bool -> bool -//------------------------------------------------------------------------------ +// Reduce the entries in a matrix to a vector, a column vector t such that +// t(i) = sum (A (i,:)), and where "sum" is a commutative and associative +// monoid with an identity value. A can be transposed, which reduces down the +// columns instead of the rows. - // Note that lor_pair, land_pair, and eq_pair are all identical to any_pair. - // These 3 are marked below. GxB_EQ_*_BOOL could be called - // GxB_LXNOR_*_BOOL, and GxB_*_EQ_BOOL could be called GxB_*_LXNOR_BOOL, - // but those names are not included. +// For GrB_Matrix_reduce_BinaryOp, the GrB_BinaryOp op must correspond to a +// known built-in monoid: +// +// operator data-types (all built-in) +// ---------------------- --------------------------- +// MIN, MAX INT*, UINT*, FP* +// TIMES, PLUS INT*, UINT*, FP*, FC* +// ANY INT*, UINT*, FP*, FC*, BOOL +// LOR, LAND, LXOR, EQ BOOL +// BOR, BAND, BXOR, BXNOR UINT* - // purely boolean semirings in the form GxB_(add monoid)_(multiply operator)_BOOL: - GxB_LOR_FIRST_BOOL , GxB_LAND_FIRST_BOOL , GxB_LXOR_FIRST_BOOL , GxB_EQ_FIRST_BOOL , GxB_ANY_FIRST_BOOL , - GxB_LOR_SECOND_BOOL , GxB_LAND_SECOND_BOOL , GxB_LXOR_SECOND_BOOL , GxB_EQ_SECOND_BOOL , GxB_ANY_SECOND_BOOL , - GxB_LOR_PAIR_BOOL/**/ , GxB_LAND_PAIR_BOOL/**/ , GxB_LXOR_PAIR_BOOL , GxB_EQ_PAIR_BOOL/**/ , GxB_ANY_PAIR_BOOL , - GxB_LOR_LOR_BOOL , GxB_LAND_LOR_BOOL , GxB_LXOR_LOR_BOOL , GxB_EQ_LOR_BOOL , GxB_ANY_LOR_BOOL , - GxB_LOR_LAND_BOOL , GxB_LAND_LAND_BOOL , GxB_LXOR_LAND_BOOL , GxB_EQ_LAND_BOOL , GxB_ANY_LAND_BOOL , - GxB_LOR_LXOR_BOOL , GxB_LAND_LXOR_BOOL , GxB_LXOR_LXOR_BOOL , GxB_EQ_LXOR_BOOL , GxB_ANY_LXOR_BOOL , - GxB_LOR_EQ_BOOL , GxB_LAND_EQ_BOOL , GxB_LXOR_EQ_BOOL , GxB_EQ_EQ_BOOL , GxB_ANY_EQ_BOOL , - GxB_LOR_GT_BOOL , GxB_LAND_GT_BOOL , GxB_LXOR_GT_BOOL , GxB_EQ_GT_BOOL , GxB_ANY_GT_BOOL , - GxB_LOR_LT_BOOL , GxB_LAND_LT_BOOL , GxB_LXOR_LT_BOOL , GxB_EQ_LT_BOOL , GxB_ANY_LT_BOOL , - GxB_LOR_GE_BOOL , GxB_LAND_GE_BOOL , GxB_LXOR_GE_BOOL , GxB_EQ_GE_BOOL , GxB_ANY_GE_BOOL , - GxB_LOR_LE_BOOL , GxB_LAND_LE_BOOL , GxB_LXOR_LE_BOOL , GxB_EQ_LE_BOOL , GxB_ANY_LE_BOOL , +GrB_Info GrB_Matrix_reduce_Monoid // w = accum (w,reduce(A)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_Monoid monoid, // reduce operator for t=reduce(A) + const GrB_Matrix A, // first input: matrix A + const GrB_Descriptor desc // descriptor for w, mask, and A +) ; + +GrB_Info GrB_Matrix_reduce_BinaryOp // w = accum (w,reduce(A)) +( + GrB_Vector w, // input/output vector for results + const GrB_Vector mask, // optional mask for w, unused if NULL + const GrB_BinaryOp accum, // optional accum for z=accum(w,t) + const GrB_BinaryOp op, // reduce operator for t=reduce(A) + const GrB_Matrix A, // first input: matrix A + const GrB_Descriptor desc // descriptor for w, mask, and A +) ; //------------------------------------------------------------------------------ -// 54 complex semirings +// reduce a vector to a scalar //------------------------------------------------------------------------------ - // 3 monoids (plus, times, any), 2 types (FC32 and FC64), and 9 - // multiplicative operators. +// Reduce entries in a vector to a scalar, c = accum (c, reduce_to_scalar(u)) - // Note that times_pair is identical to any_pair. - // These 2 are marked below. +GrB_Info GrB_Vector_reduce_BOOL // c = accum (c, reduce_to_scalar (u)) +( + bool *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_FIRST_FC32 , GxB_TIMES_FIRST_FC32 , GxB_ANY_FIRST_FC32 , - GxB_PLUS_FIRST_FC64 , GxB_TIMES_FIRST_FC64 , GxB_ANY_FIRST_FC64 , +GrB_Info GrB_Vector_reduce_INT8 // c = accum (c, reduce_to_scalar (u)) +( + int8_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_SECOND_FC32 , GxB_TIMES_SECOND_FC32 , GxB_ANY_SECOND_FC32 , - GxB_PLUS_SECOND_FC64 , GxB_TIMES_SECOND_FC64 , GxB_ANY_SECOND_FC64 , +GrB_Info GrB_Vector_reduce_UINT8 // c = accum (c, reduce_to_scalar (u)) +( + uint8_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_PAIR_FC32 , GxB_TIMES_PAIR_FC32/**/, GxB_ANY_PAIR_FC32 , - GxB_PLUS_PAIR_FC64 , GxB_TIMES_PAIR_FC64/**/, GxB_ANY_PAIR_FC64 , +GrB_Info GrB_Vector_reduce_INT16 // c = accum (c, reduce_to_scalar (u)) +( + int16_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_PLUS_FC32 , GxB_TIMES_PLUS_FC32 , GxB_ANY_PLUS_FC32 , - GxB_PLUS_PLUS_FC64 , GxB_TIMES_PLUS_FC64 , GxB_ANY_PLUS_FC64 , +GrB_Info GrB_Vector_reduce_UINT16 // c = accum (c, reduce_to_scalar (u)) +( + uint16_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_MINUS_FC32 , GxB_TIMES_MINUS_FC32 , GxB_ANY_MINUS_FC32 , - GxB_PLUS_MINUS_FC64 , GxB_TIMES_MINUS_FC64 , GxB_ANY_MINUS_FC64 , +GrB_Info GrB_Vector_reduce_INT32 // c = accum (c, reduce_to_scalar (u)) +( + int32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_TIMES_FC32 , GxB_TIMES_TIMES_FC32 , GxB_ANY_TIMES_FC32 , - GxB_PLUS_TIMES_FC64 , GxB_TIMES_TIMES_FC64 , GxB_ANY_TIMES_FC64 , +GrB_Info GrB_Vector_reduce_UINT32 // c = accum (c, reduce_to_scalar (u)) +( + uint32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_DIV_FC32 , GxB_TIMES_DIV_FC32 , GxB_ANY_DIV_FC32 , - GxB_PLUS_DIV_FC64 , GxB_TIMES_DIV_FC64 , GxB_ANY_DIV_FC64 , +GrB_Info GrB_Vector_reduce_INT64 // c = accum (c, reduce_to_scalar (u)) +( + int64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_RDIV_FC32 , GxB_TIMES_RDIV_FC32 , GxB_ANY_RDIV_FC32 , - GxB_PLUS_RDIV_FC64 , GxB_TIMES_RDIV_FC64 , GxB_ANY_RDIV_FC64 , +GrB_Info GrB_Vector_reduce_UINT64 // c = accum (c, reduce_to_scalar (u)) +( + uint64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_PLUS_RMINUS_FC32 , GxB_TIMES_RMINUS_FC32 , GxB_ANY_RMINUS_FC32 , - GxB_PLUS_RMINUS_FC64 , GxB_TIMES_RMINUS_FC64 , GxB_ANY_RMINUS_FC64 , +GrB_Info GrB_Vector_reduce_FP32 // c = accum (c, reduce_to_scalar (u)) +( + float *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; -//------------------------------------------------------------------------------ -// 64 bitwise semirings -//------------------------------------------------------------------------------ +GrB_Info GrB_Vector_reduce_FP64 // c = accum (c, reduce_to_scalar (u)) +( + double *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - // monoids: (BOR, BAND, BXOR, BXNOR) x - // mult: (BOR, BAND, BXOR, BXNOR) x - // types: (UINT8, UINT16, UINT32, UINT64) +GrB_Info GxB_Vector_reduce_FC32 // c = accum (c, reduce_to_scalar (u)) +( + GxB_FC32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_BOR_BOR_UINT8 , GxB_BOR_BOR_UINT16 , GxB_BOR_BOR_UINT32 , GxB_BOR_BOR_UINT64 , - GxB_BOR_BAND_UINT8 , GxB_BOR_BAND_UINT16 , GxB_BOR_BAND_UINT32 , GxB_BOR_BAND_UINT64 , - GxB_BOR_BXOR_UINT8 , GxB_BOR_BXOR_UINT16 , GxB_BOR_BXOR_UINT32 , GxB_BOR_BXOR_UINT64 , - GxB_BOR_BXNOR_UINT8 , GxB_BOR_BXNOR_UINT16 , GxB_BOR_BXNOR_UINT32 , GxB_BOR_BXNOR_UINT64 , +GrB_Info GxB_Vector_reduce_FC64 // c = accum (c, reduce_to_scalar (u)) +( + GxB_FC64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_BAND_BOR_UINT8 , GxB_BAND_BOR_UINT16 , GxB_BAND_BOR_UINT32 , GxB_BAND_BOR_UINT64 , - GxB_BAND_BAND_UINT8 , GxB_BAND_BAND_UINT16 , GxB_BAND_BAND_UINT32 , GxB_BAND_BAND_UINT64 , - GxB_BAND_BXOR_UINT8 , GxB_BAND_BXOR_UINT16 , GxB_BAND_BXOR_UINT32 , GxB_BAND_BXOR_UINT64 , - GxB_BAND_BXNOR_UINT8 , GxB_BAND_BXNOR_UINT16 , GxB_BAND_BXNOR_UINT32 , GxB_BAND_BXNOR_UINT64 , +GrB_Info GrB_Vector_reduce_UDT // c = accum (c, reduce_to_scalar (u)) +( + void *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_BXOR_BOR_UINT8 , GxB_BXOR_BOR_UINT16 , GxB_BXOR_BOR_UINT32 , GxB_BXOR_BOR_UINT64 , - GxB_BXOR_BAND_UINT8 , GxB_BXOR_BAND_UINT16 , GxB_BXOR_BAND_UINT32 , GxB_BXOR_BAND_UINT64 , - GxB_BXOR_BXOR_UINT8 , GxB_BXOR_BXOR_UINT16 , GxB_BXOR_BXOR_UINT32 , GxB_BXOR_BXOR_UINT64 , - GxB_BXOR_BXNOR_UINT8 , GxB_BXOR_BXNOR_UINT16 , GxB_BXOR_BXNOR_UINT32 , GxB_BXOR_BXNOR_UINT64 , +GrB_Info GrB_Vector_reduce_Monoid_Scalar // c = accum(c,reduce_to_scalar(u)) +( + GrB_Scalar c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; - GxB_BXNOR_BOR_UINT8 , GxB_BXNOR_BOR_UINT16 , GxB_BXNOR_BOR_UINT32 , GxB_BXNOR_BOR_UINT64 , - GxB_BXNOR_BAND_UINT8 , GxB_BXNOR_BAND_UINT16 , GxB_BXNOR_BAND_UINT32 , GxB_BXNOR_BAND_UINT64 , - GxB_BXNOR_BXOR_UINT8 , GxB_BXNOR_BXOR_UINT16 , GxB_BXNOR_BXOR_UINT32 , GxB_BXNOR_BXOR_UINT64 , - GxB_BXNOR_BXNOR_UINT8 , GxB_BXNOR_BXNOR_UINT16 , GxB_BXNOR_BXNOR_UINT32 , GxB_BXNOR_BXNOR_UINT64 , +GrB_Info GrB_Vector_reduce_BinaryOp_Scalar +( + GrB_Scalar c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_BinaryOp op, // binary op to do the reduction + const GrB_Vector u, // vector to reduce + const GrB_Descriptor desc +) ; //------------------------------------------------------------------------------ -// 80 positional semirings +// reduce a matrix to a scalar //------------------------------------------------------------------------------ - // monoids: (MIN, MAX, ANY, PLUS, TIMES) x - // mult: (FIRSTI, FIRSTI1, FIRSTJ, FIRSTJ1, SECONDI, SECONDI1, SECONDJ, SECONDJ1) - // types: (INT32, INT64) - - GxB_MIN_FIRSTI_INT32, GxB_MIN_FIRSTI_INT64, - GxB_MAX_FIRSTI_INT32, GxB_MAX_FIRSTI_INT64, - GxB_ANY_FIRSTI_INT32, GxB_ANY_FIRSTI_INT64, - GxB_PLUS_FIRSTI_INT32, GxB_PLUS_FIRSTI_INT64, - GxB_TIMES_FIRSTI_INT32, GxB_TIMES_FIRSTI_INT64, - - GxB_MIN_FIRSTI1_INT32, GxB_MIN_FIRSTI1_INT64, - GxB_MAX_FIRSTI1_INT32, GxB_MAX_FIRSTI1_INT64, - GxB_ANY_FIRSTI1_INT32, GxB_ANY_FIRSTI1_INT64, - GxB_PLUS_FIRSTI1_INT32, GxB_PLUS_FIRSTI1_INT64, - GxB_TIMES_FIRSTI1_INT32, GxB_TIMES_FIRSTI1_INT64, - - GxB_MIN_FIRSTJ_INT32, GxB_MIN_FIRSTJ_INT64, - GxB_MAX_FIRSTJ_INT32, GxB_MAX_FIRSTJ_INT64, - GxB_ANY_FIRSTJ_INT32, GxB_ANY_FIRSTJ_INT64, - GxB_PLUS_FIRSTJ_INT32, GxB_PLUS_FIRSTJ_INT64, - GxB_TIMES_FIRSTJ_INT32, GxB_TIMES_FIRSTJ_INT64, - - GxB_MIN_FIRSTJ1_INT32, GxB_MIN_FIRSTJ1_INT64, - GxB_MAX_FIRSTJ1_INT32, GxB_MAX_FIRSTJ1_INT64, - GxB_ANY_FIRSTJ1_INT32, GxB_ANY_FIRSTJ1_INT64, - GxB_PLUS_FIRSTJ1_INT32, GxB_PLUS_FIRSTJ1_INT64, - GxB_TIMES_FIRSTJ1_INT32, GxB_TIMES_FIRSTJ1_INT64, - - GxB_MIN_SECONDI_INT32, GxB_MIN_SECONDI_INT64, - GxB_MAX_SECONDI_INT32, GxB_MAX_SECONDI_INT64, - GxB_ANY_SECONDI_INT32, GxB_ANY_SECONDI_INT64, - GxB_PLUS_SECONDI_INT32, GxB_PLUS_SECONDI_INT64, - GxB_TIMES_SECONDI_INT32, GxB_TIMES_SECONDI_INT64, +// Reduce entries in a matrix to a scalar, c = accum (c, reduce_to_scalar(A)) - GxB_MIN_SECONDI1_INT32, GxB_MIN_SECONDI1_INT64, - GxB_MAX_SECONDI1_INT32, GxB_MAX_SECONDI1_INT64, - GxB_ANY_SECONDI1_INT32, GxB_ANY_SECONDI1_INT64, - GxB_PLUS_SECONDI1_INT32, GxB_PLUS_SECONDI1_INT64, - GxB_TIMES_SECONDI1_INT32, GxB_TIMES_SECONDI1_INT64, +GrB_Info GrB_Matrix_reduce_BOOL // c = accum (c, reduce_to_scalar (A)) +( + bool *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - GxB_MIN_SECONDJ_INT32, GxB_MIN_SECONDJ_INT64, - GxB_MAX_SECONDJ_INT32, GxB_MAX_SECONDJ_INT64, - GxB_ANY_SECONDJ_INT32, GxB_ANY_SECONDJ_INT64, - GxB_PLUS_SECONDJ_INT32, GxB_PLUS_SECONDJ_INT64, - GxB_TIMES_SECONDJ_INT32, GxB_TIMES_SECONDJ_INT64, +GrB_Info GrB_Matrix_reduce_INT8 // c = accum (c, reduce_to_scalar (A)) +( + int8_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - GxB_MIN_SECONDJ1_INT32, GxB_MIN_SECONDJ1_INT64, - GxB_MAX_SECONDJ1_INT32, GxB_MAX_SECONDJ1_INT64, - GxB_ANY_SECONDJ1_INT32, GxB_ANY_SECONDJ1_INT64, - GxB_PLUS_SECONDJ1_INT32, GxB_PLUS_SECONDJ1_INT64, - GxB_TIMES_SECONDJ1_INT32, GxB_TIMES_SECONDJ1_INT64 ; +GrB_Info GrB_Matrix_reduce_UINT8 // c = accum (c, reduce_to_scalar (A)) +( + uint8_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -//------------------------------------------------------------------------------ -// GrB_* semirings -//------------------------------------------------------------------------------ +GrB_Info GrB_Matrix_reduce_INT16 // c = accum (c, reduce_to_scalar (A)) +( + int16_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -// The v1.3 C API for GraphBLAS adds the following 124 predefined semirings, -// with GrB_* names. They are identical to 124 GxB_* semirings defined above, -// with the same name, except that GrB_LXNOR_LOR_SEMIRING_BOOL is identical to -// GxB_EQ_LOR_BOOL (since GrB_EQ_BOOL == GrB_LXNOR). The old names are listed -// below alongside each new name; the new GrB_* names are preferred. +GrB_Info GrB_Matrix_reduce_UINT16 // c = accum (c, reduce_to_scalar (A)) +( + uint16_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -// 12 kinds of GrB_* semirings are available for all 10 real non-boolean types: +GrB_Info GrB_Matrix_reduce_INT32 // c = accum (c, reduce_to_scalar (A)) +( + int32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // PLUS_TIMES, PLUS_MIN, - // MIN_PLUS, MIN_TIMES, MIN_FIRST, MIN_SECOND, MIN_MAX, - // MAX_PLUS, MAX_TIMES, MAX_FIRST, MAX_SECOND, MAX_MIN +GrB_Info GrB_Matrix_reduce_UINT32 // c = accum (c, reduce_to_scalar (A)) +( + uint32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -// and 4 semirings for boolean only: +GrB_Info GrB_Matrix_reduce_INT64 // c = accum (c, reduce_to_scalar (A)) +( + int64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // LOR_LAND, LAND_LOR, LXOR_LAND, LXNOR_LOR. +GrB_Info GrB_Matrix_reduce_UINT64 // c = accum (c, reduce_to_scalar (A)) +( + uint64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -// GxB_* semirings corresponding to the equivalent GrB_* semiring are -// historical. +GrB_Info GrB_Matrix_reduce_FP32 // c = accum (c, reduce_to_scalar (A)) +( + float *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; -GB_GLOBAL GrB_Semiring +GrB_Info GrB_Matrix_reduce_FP64 // c = accum (c, reduce_to_scalar (A)) +( + double *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - //-------------------------------------------------------------------------- - // 20 semirings with PLUS monoids - //-------------------------------------------------------------------------- +GrB_Info GxB_Matrix_reduce_FC32 // c = accum (c, reduce_to_scalar (A)) +( + GxB_FC32_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // PLUS_TIMES semirings for all 10 real, non-boolean types: - GrB_PLUS_TIMES_SEMIRING_INT8, // GxB_PLUS_TIMES_INT8 - GrB_PLUS_TIMES_SEMIRING_INT16, // GxB_PLUS_TIMES_INT16 - GrB_PLUS_TIMES_SEMIRING_INT32, // GxB_PLUS_TIMES_INT32 - GrB_PLUS_TIMES_SEMIRING_INT64, // GxB_PLUS_TIMES_INT64 - GrB_PLUS_TIMES_SEMIRING_UINT8, // GxB_PLUS_TIMES_UINT8 - GrB_PLUS_TIMES_SEMIRING_UINT16, // GxB_PLUS_TIMES_UINT16 - GrB_PLUS_TIMES_SEMIRING_UINT32, // GxB_PLUS_TIMES_UINT32 - GrB_PLUS_TIMES_SEMIRING_UINT64, // GxB_PLUS_TIMES_UINT64 - GrB_PLUS_TIMES_SEMIRING_FP32, // GxB_PLUS_TIMES_FP32 - GrB_PLUS_TIMES_SEMIRING_FP64, // GxB_PLUS_TIMES_FP64 +GrB_Info GxB_Matrix_reduce_FC64 // c = accum (c, reduce_to_scalar (A)) +( + GxB_FC64_t *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // PLUS_MIN semirings for all 10 real, non-boolean types: - GrB_PLUS_MIN_SEMIRING_INT8, // GxB_PLUS_MIN_INT8 - GrB_PLUS_MIN_SEMIRING_INT16, // GxB_PLUS_MIN_INT16 - GrB_PLUS_MIN_SEMIRING_INT32, // GxB_PLUS_MIN_INT32 - GrB_PLUS_MIN_SEMIRING_INT64, // GxB_PLUS_MIN_INT64 - GrB_PLUS_MIN_SEMIRING_UINT8, // GxB_PLUS_MIN_UINT8 - GrB_PLUS_MIN_SEMIRING_UINT16, // GxB_PLUS_MIN_UINT16 - GrB_PLUS_MIN_SEMIRING_UINT32, // GxB_PLUS_MIN_UINT32 - GrB_PLUS_MIN_SEMIRING_UINT64, // GxB_PLUS_MIN_UINT64 - GrB_PLUS_MIN_SEMIRING_FP32, // GxB_PLUS_MIN_FP32 - GrB_PLUS_MIN_SEMIRING_FP64, // GxB_PLUS_MIN_FP64 +GrB_Info GrB_Matrix_reduce_UDT // c = accum (c, reduce_to_scalar (A)) +( + void *c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - //-------------------------------------------------------------------------- - // 50 semirings with MIN monoids - //-------------------------------------------------------------------------- +GrB_Info GrB_Matrix_reduce_Monoid_Scalar // c = accum(c,reduce_to_scalar(A)) +( + GrB_Scalar c, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // MIN_PLUS semirings for all 10 real, non-boolean types: - GrB_MIN_PLUS_SEMIRING_INT8, // GxB_MIN_PLUS_INT8 - GrB_MIN_PLUS_SEMIRING_INT16, // GxB_MIN_PLUS_INT16 - GrB_MIN_PLUS_SEMIRING_INT32, // GxB_MIN_PLUS_INT32 - GrB_MIN_PLUS_SEMIRING_INT64, // GxB_MIN_PLUS_INT64 - GrB_MIN_PLUS_SEMIRING_UINT8, // GxB_MIN_PLUS_UINT8 - GrB_MIN_PLUS_SEMIRING_UINT16, // GxB_MIN_PLUS_UINT16 - GrB_MIN_PLUS_SEMIRING_UINT32, // GxB_MIN_PLUS_UINT32 - GrB_MIN_PLUS_SEMIRING_UINT64, // GxB_MIN_PLUS_UINT64 - GrB_MIN_PLUS_SEMIRING_FP32, // GxB_MIN_PLUS_FP32 - GrB_MIN_PLUS_SEMIRING_FP64, // GxB_MIN_PLUS_FP64 +GrB_Info GrB_Matrix_reduce_BinaryOp_Scalar +( + GrB_Scalar S, // result scalar + const GrB_BinaryOp accum, // optional accum for c=accum(c,t) + const GrB_BinaryOp op, // binary op to do the reduction + const GrB_Matrix A, // matrix to reduce + const GrB_Descriptor desc +) ; - // MIN_TIMES semirings for all 10 real, non-boolean types: - GrB_MIN_TIMES_SEMIRING_INT8, // GxB_MIN_TIMES_INT8 - GrB_MIN_TIMES_SEMIRING_INT16, // GxB_MIN_TIMES_INT16 - GrB_MIN_TIMES_SEMIRING_INT32, // GxB_MIN_TIMES_INT32 - GrB_MIN_TIMES_SEMIRING_INT64, // GxB_MIN_TIMES_INT64 - GrB_MIN_TIMES_SEMIRING_UINT8, // GxB_MIN_TIMES_UINT8 - GrB_MIN_TIMES_SEMIRING_UINT16, // GxB_MIN_TIMES_UINT16 - GrB_MIN_TIMES_SEMIRING_UINT32, // GxB_MIN_TIMES_UINT32 - GrB_MIN_TIMES_SEMIRING_UINT64, // GxB_MIN_TIMES_UINT64 - GrB_MIN_TIMES_SEMIRING_FP32, // GxB_MIN_TIMES_FP32 - GrB_MIN_TIMES_SEMIRING_FP64, // GxB_MIN_TIMES_FP64 +//------------------------------------------------------------------------------ +// GrB_reduce: generic matrix/vector reduction to a vector or scalar +//------------------------------------------------------------------------------ - // MIN_FIRST semirings for all 10 real, non-boolean types: - GrB_MIN_FIRST_SEMIRING_INT8, // GxB_MIN_FIRST_INT8 - GrB_MIN_FIRST_SEMIRING_INT16, // GxB_MIN_FIRST_INT16 - GrB_MIN_FIRST_SEMIRING_INT32, // GxB_MIN_FIRST_INT32 - GrB_MIN_FIRST_SEMIRING_INT64, // GxB_MIN_FIRST_INT64 - GrB_MIN_FIRST_SEMIRING_UINT8, // GxB_MIN_FIRST_UINT8 - GrB_MIN_FIRST_SEMIRING_UINT16, // GxB_MIN_FIRST_UINT16 - GrB_MIN_FIRST_SEMIRING_UINT32, // GxB_MIN_FIRST_UINT32 - GrB_MIN_FIRST_SEMIRING_UINT64, // GxB_MIN_FIRST_UINT64 - GrB_MIN_FIRST_SEMIRING_FP32, // GxB_MIN_FIRST_FP32 - GrB_MIN_FIRST_SEMIRING_FP64, // GxB_MIN_FIRST_FP64 +// GrB_reduce is a generic function that provides access to all GrB_*reduce* +// functions: - // MIN_SECOND semirings for all 10 real, non-boolean types: - GrB_MIN_SECOND_SEMIRING_INT8, // GxB_MIN_SECOND_INT8 - GrB_MIN_SECOND_SEMIRING_INT16, // GxB_MIN_SECOND_INT16 - GrB_MIN_SECOND_SEMIRING_INT32, // GxB_MIN_SECOND_INT32 - GrB_MIN_SECOND_SEMIRING_INT64, // GxB_MIN_SECOND_INT64 - GrB_MIN_SECOND_SEMIRING_UINT8, // GxB_MIN_SECOND_UINT8 - GrB_MIN_SECOND_SEMIRING_UINT16, // GxB_MIN_SECOND_UINT16 - GrB_MIN_SECOND_SEMIRING_UINT32, // GxB_MIN_SECOND_UINT32 - GrB_MIN_SECOND_SEMIRING_UINT64, // GxB_MIN_SECOND_UINT64 - GrB_MIN_SECOND_SEMIRING_FP32, // GxB_MIN_SECOND_FP32 - GrB_MIN_SECOND_SEMIRING_FP64, // GxB_MIN_SECOND_FP64 +// reduce matrix to vector: +// GrB_Matrix_reduce_Monoid (w,mask,acc,mo,A,d) // w = acc (w,reduce(A)) +// GrB_Matrix_reduce_BinaryOp (w,mask,acc,op,A,d) // w = acc (w,reduce(A)) - // MIN_MAX semirings for all 10 real, non-boolean types: - GrB_MIN_MAX_SEMIRING_INT8, // GxB_MIN_MAX_INT8 - GrB_MIN_MAX_SEMIRING_INT16, // GxB_MIN_MAX_INT16 - GrB_MIN_MAX_SEMIRING_INT32, // GxB_MIN_MAX_INT32 - GrB_MIN_MAX_SEMIRING_INT64, // GxB_MIN_MAX_INT64 - GrB_MIN_MAX_SEMIRING_UINT8, // GxB_MIN_MAX_UINT8 - GrB_MIN_MAX_SEMIRING_UINT16, // GxB_MIN_MAX_UINT16 - GrB_MIN_MAX_SEMIRING_UINT32, // GxB_MIN_MAX_UINT32 - GrB_MIN_MAX_SEMIRING_UINT64, // GxB_MIN_MAX_UINT64 - GrB_MIN_MAX_SEMIRING_FP32, // GxB_MIN_MAX_FP32 - GrB_MIN_MAX_SEMIRING_FP64, // GxB_MIN_MAX_FP64 +// reduce matrix to scalar: +// GrB_Vector_reduce_[SCALAR] (c,acc,monoid,u,d) // c = acc (c,reduce(u)) +// GrB_Matrix_reduce_[SCALAR] (c,acc,monoid,A,d) // c = acc (c,reduce(A)) +// GrB_Vector_reduce_Monoid_Scalar (s,acc,monoid,u,d) // s = acc (s,reduce(u)) +// GrB_Matrix_reduce_Monoid_Scalar (s,acc,monoid,A,d) // s = acc (s,reduce(A)) +// GrB_Vector_reduce_BinaryOp_Scalar (s,acc,op,u,d) // s = acc (s,reduce(u)) +// GrB_Matrix_reduce_BinaryOp_Scalar (s,acc,op,A,d) // s = acc (s,reduce(A)) - //-------------------------------------------------------------------------- - // 50 semirings with MAX monoids - //-------------------------------------------------------------------------- +#if GxB_STDC_VERSION >= 201112L +#define GB_REDUCE_TO_SCALAR(kind,c,op) \ + _Generic \ + ( \ + (c), \ + GB_PCASES (GrB, GB_CONCAT ( kind, _reduce,, )), \ + default: \ + _Generic \ + ( \ + (op), \ + GrB_BinaryOp : \ + GB_CONCAT (GrB,_,kind,_reduce_BinaryOp_Scalar),\ + default: GB_CONCAT (GrB,_,kind,_reduce_Monoid_Scalar) \ + ) \ + ) - // MAX_PLUS semirings for all 10 real, non-boolean types - GrB_MAX_PLUS_SEMIRING_INT8, // GxB_MAX_PLUS_INT8 - GrB_MAX_PLUS_SEMIRING_INT16, // GxB_MAX_PLUS_INT16 - GrB_MAX_PLUS_SEMIRING_INT32, // GxB_MAX_PLUS_INT32 - GrB_MAX_PLUS_SEMIRING_INT64, // GxB_MAX_PLUS_INT64 - GrB_MAX_PLUS_SEMIRING_UINT8, // GxB_MAX_PLUS_UINT8 - GrB_MAX_PLUS_SEMIRING_UINT16, // GxB_MAX_PLUS_UINT16 - GrB_MAX_PLUS_SEMIRING_UINT32, // GxB_MAX_PLUS_UINT32 - GrB_MAX_PLUS_SEMIRING_UINT64, // GxB_MAX_PLUS_UINT64 - GrB_MAX_PLUS_SEMIRING_FP32, // GxB_MAX_PLUS_FP32 - GrB_MAX_PLUS_SEMIRING_FP64, // GxB_MAX_PLUS_FP64 +#define GrB_reduce(arg1,arg2,arg3,arg4,...) \ + _Generic \ + ( \ + (arg4), \ + GrB_Vector : GB_REDUCE_TO_SCALAR (Vector, arg1, arg3), \ + GrB_Matrix : GB_REDUCE_TO_SCALAR (Matrix, arg1, arg3), \ + GrB_Monoid : GrB_Matrix_reduce_Monoid , \ + GrB_BinaryOp : GrB_Matrix_reduce_BinaryOp \ + ) \ + (arg1, arg2, arg3, arg4, __VA_ARGS__) +#endif - // MAX_TIMES semirings for all 10 real, non-boolean types: - GrB_MAX_TIMES_SEMIRING_INT8, // GxB_MAX_TIMES_INT8 - GrB_MAX_TIMES_SEMIRING_INT16, // GxB_MAX_TIMES_INT16 - GrB_MAX_TIMES_SEMIRING_INT32, // GxB_MAX_TIMES_INT32 - GrB_MAX_TIMES_SEMIRING_INT64, // GxB_MAX_TIMES_INT64 - GrB_MAX_TIMES_SEMIRING_UINT8, // GxB_MAX_TIMES_UINT8 - GrB_MAX_TIMES_SEMIRING_UINT16, // GxB_MAX_TIMES_UINT16 - GrB_MAX_TIMES_SEMIRING_UINT32, // GxB_MAX_TIMES_UINT32 - GrB_MAX_TIMES_SEMIRING_UINT64, // GxB_MAX_TIMES_UINT64 - GrB_MAX_TIMES_SEMIRING_FP32, // GxB_MAX_TIMES_FP32 - GrB_MAX_TIMES_SEMIRING_FP64, // GxB_MAX_TIMES_FP64 +//============================================================================== +// GrB_transpose: matrix transpose +//============================================================================== - // MAX_FIRST semirings for all 10 real, non-boolean types: - GrB_MAX_FIRST_SEMIRING_INT8, // GxB_MAX_FIRST_INT8 - GrB_MAX_FIRST_SEMIRING_INT16, // GxB_MAX_FIRST_INT16 - GrB_MAX_FIRST_SEMIRING_INT32, // GxB_MAX_FIRST_INT32 - GrB_MAX_FIRST_SEMIRING_INT64, // GxB_MAX_FIRST_INT64 - GrB_MAX_FIRST_SEMIRING_UINT8, // GxB_MAX_FIRST_UINT8 - GrB_MAX_FIRST_SEMIRING_UINT16, // GxB_MAX_FIRST_UINT16 - GrB_MAX_FIRST_SEMIRING_UINT32, // GxB_MAX_FIRST_UINT32 - GrB_MAX_FIRST_SEMIRING_UINT64, // GxB_MAX_FIRST_UINT64 - GrB_MAX_FIRST_SEMIRING_FP32, // GxB_MAX_FIRST_FP32 - GrB_MAX_FIRST_SEMIRING_FP64, // GxB_MAX_FIRST_FP64 +GrB_Info GrB_transpose // C = accum (C, A') +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Matrix A, // first input: matrix A + const GrB_Descriptor desc // descriptor for C, Mask, and A +) ; - // MAX_SECOND semirings for all 10 real, non-boolean types: - GrB_MAX_SECOND_SEMIRING_INT8, // GxB_MAX_SECOND_INT8 - GrB_MAX_SECOND_SEMIRING_INT16, // GxB_MAX_SECOND_INT16 - GrB_MAX_SECOND_SEMIRING_INT32, // GxB_MAX_SECOND_INT32 - GrB_MAX_SECOND_SEMIRING_INT64, // GxB_MAX_SECOND_INT64 - GrB_MAX_SECOND_SEMIRING_UINT8, // GxB_MAX_SECOND_UINT8 - GrB_MAX_SECOND_SEMIRING_UINT16, // GxB_MAX_SECOND_UINT16 - GrB_MAX_SECOND_SEMIRING_UINT32, // GxB_MAX_SECOND_UINT32 - GrB_MAX_SECOND_SEMIRING_UINT64, // GxB_MAX_SECOND_UINT64 - GrB_MAX_SECOND_SEMIRING_FP32, // GxB_MAX_SECOND_FP32 - GrB_MAX_SECOND_SEMIRING_FP64, // GxB_MAX_SECOND_FP64 +//============================================================================== +// GrB_kronecker: Kronecker product +//============================================================================== - // MAX_MIN semirings for all 10 real, non-boolean types: - GrB_MAX_MIN_SEMIRING_INT8, // GxB_MAX_MIN_INT8 - GrB_MAX_MIN_SEMIRING_INT16, // GxB_MAX_MIN_INT16 - GrB_MAX_MIN_SEMIRING_INT32, // GxB_MAX_MIN_INT32 - GrB_MAX_MIN_SEMIRING_INT64, // GxB_MAX_MIN_INT64 - GrB_MAX_MIN_SEMIRING_UINT8, // GxB_MAX_MIN_UINT8 - GrB_MAX_MIN_SEMIRING_UINT16, // GxB_MAX_MIN_UINT16 - GrB_MAX_MIN_SEMIRING_UINT32, // GxB_MAX_MIN_UINT32 - GrB_MAX_MIN_SEMIRING_UINT64, // GxB_MAX_MIN_UINT64 - GrB_MAX_MIN_SEMIRING_FP32, // GxB_MAX_MIN_FP32 - GrB_MAX_MIN_SEMIRING_FP64, // GxB_MAX_MIN_FP64 +// GxB_kron is historical; use GrB_kronecker instead +GrB_Info GxB_kron // C = accum(C,kron(A,B)) (historical) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix Mask, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // defines '*' for T=kron(A,B) + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, Mask, A, and B +) ; - //-------------------------------------------------------------------------- - // 4 boolean semirings: - //-------------------------------------------------------------------------- +GrB_Info GrB_Matrix_kronecker_BinaryOp // C = accum (C, kron(A,B)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_BinaryOp op, // defines '*' for T=kron(A,B) + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, M, A, and B +) ; - GrB_LOR_LAND_SEMIRING_BOOL, // GxB_LOR_LAND_BOOL - GrB_LAND_LOR_SEMIRING_BOOL, // GxB_LAND_LOR_BOOL - GrB_LXOR_LAND_SEMIRING_BOOL, // GxB_LXOR_LAND_BOOL - GrB_LXNOR_LOR_SEMIRING_BOOL ; // GxB_EQ_LOR_BOOL (note EQ == LXNOR) +GrB_Info GrB_Matrix_kronecker_Monoid // C = accum (C, kron(A,B)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Monoid monoid, // defines '*' for T=kron(A,B) + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, M, A, and B +) ; + +GrB_Info GrB_Matrix_kronecker_Semiring // C = accum (C, kron(A,B)) +( + GrB_Matrix C, // input/output matrix for results + const GrB_Matrix M, // optional mask for C, unused if NULL + const GrB_BinaryOp accum, // optional accum for Z=accum(C,T) + const GrB_Semiring semiring, // defines '*' for T=kron(A,B) + const GrB_Matrix A, // first input: matrix A + const GrB_Matrix B, // second input: matrix B + const GrB_Descriptor desc // descriptor for C, M, A, and B +) ; + +#if GxB_STDC_VERSION >= 201112L +#define GrB_kronecker(C,Mask,accum,op,A,B,desc) \ + _Generic \ + ( \ + (op), \ + GrB_Semiring : GrB_Matrix_kronecker_Semiring , \ + GrB_Monoid : GrB_Matrix_kronecker_Monoid , \ + GrB_BinaryOp : GrB_Matrix_kronecker_BinaryOp \ + ) \ + (C, Mask, accum, op, A, B, desc) +#endif //============================================================================== // GrB_*_resize: change the size of a matrix or vector @@ -9095,17 +9218,6 @@ GrB_Info GxB_Vector_resize // change the size of a vector (historical) // resulting output via another program. The intent of these functions is to // produce a report of the object for visual inspection. -typedef enum -{ - GxB_SILENT = 0, // nothing is printed, just check the object - GxB_SUMMARY = 1, // print a terse summary - GxB_SHORT = 2, // short description, about 30 entries of a matrix - GxB_COMPLETE = 3, // print the entire contents of the object - GxB_SHORT_VERBOSE = 4, // GxB_SHORT but with "%.15g" for doubles - GxB_COMPLETE_VERBOSE = 5 // GxB_COMPLETE but with "%.15g" for doubles -} -GxB_Print_Level ; - GrB_Info GxB_Type_fprint // print and check a GrB_Type ( GrB_Type type, // object to print and check @@ -9197,11 +9309,6 @@ GrB_Info GxB_Context_fprint // print and check a GxB_Context FILE *f // file for output ) ; -// user code should not directly use GB_STR or GB_XSTR -// GB_STR: convert the content of x into a string "x" -#define GB_XSTR(x) GB_STR(x) -#define GB_STR(x) #x - #if GxB_STDC_VERSION >= 201112L #define GxB_fprint(object,pr,f) \ _Generic \ @@ -10263,16 +10370,6 @@ GrB_Info GxB_pack_HyperHash // move Y into A->Y // No typecasting of the values is done on import or export. -// The GrB C API specification supports 3 formats: - -typedef enum -{ - GrB_CSR_FORMAT = 0, // CSR format (equiv to GxB_SPARSE with GxB_BY_ROW) - GrB_CSC_FORMAT = 1, // CSC format (equiv to GxB_SPARSE with GxB_BY_COL) - GrB_COO_FORMAT = 2 // triplet format (like input to GrB*build) -} -GrB_Format ; - GrB_Info GrB_Matrix_import_BOOL // import a GrB_BOOL matrix ( GrB_Matrix *A, // handle of matrix to create @@ -10800,13 +10897,6 @@ GrB_Info GrB_Matrix_exportHint // suggest the best export format free (blob) ; */ -// Currently implemented: no compression, LZ4, LZ4HC, and ZSTD -#define GxB_COMPRESSION_NONE -1 // no compression -#define GxB_COMPRESSION_DEFAULT 0 // ZSTD (level 1) -#define GxB_COMPRESSION_LZ4 1000 // LZ4 -#define GxB_COMPRESSION_LZ4HC 2000 // LZ4HC, with default level 9 -#define GxB_COMPRESSION_ZSTD 3000 // ZSTD, with default level 1 - // Most of the above methods have a level parameter that controls the tradeoff // between run time and the amount of compression obtained. Higher levels // result in a more compact result, at the cost of higher run time: @@ -11796,7 +11886,7 @@ GrB_Info GxB_Vector_Iterator_seek (GxB_Iterator iterator, GrB_Index p) ; #define GB_Vector_Iterator_seek(iterator, q) \ ( \ - (q >= iterator->pmax) ? \ + (((int64_t) q) >= iterator->pmax) ? \ ( \ /* the iterator is exhausted */ \ iterator->p = iterator->pmax, \ @@ -11969,9 +12059,9 @@ void GxB_Iterator_get_UDT (GxB_Iterator iterator, (iterator)->type_size) \ ) +#endif // GB_CUDA_FOLDER #if defined ( __cplusplus ) } #endif - #endif diff --git a/GraphBLAS/JITpackage/CMakeLists.txt b/GraphBLAS/JITpackage/CMakeLists.txt index 3d3dab7563..f0ded1b552 100644 --- a/GraphBLAS/JITpackage/CMakeLists.txt +++ b/GraphBLAS/JITpackage/CMakeLists.txt @@ -76,17 +76,23 @@ if ( TARGET grb_jitpackage ) file ( GLOB GRB_SOURCE_FILES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "../Include/GraphBLAS.h" - "../Source/Template/*.[ch]" - "../Source/JitKernels/*.[ch]" - "../CUDA/Template/*" - "../CUDA/JitKernels/*" - "../Source/Shared/*.h" ) + "../CUDA/template/*" + "../CUDA/include/*" + "../Source/*/template/*" + "../Source/*/include/*" + "../Source/include/*" ) + + # write list of source files for generator to file + file ( WRITE ${PROJECT_BINARY_DIR}/grb_source_file_list "" ) + foreach ( src_file ${GRB_SOURCE_FILES} ) + file ( APPEND ${PROJECT_BINARY_DIR}/grb_source_file_list ${src_file}\n ) + endforeach ( ) add_custom_command ( OUTPUT ${CMAKE_CURRENT_SOURCE_DIR}/GB_JITpackage.c COMMAND $ - ARGS ${GRB_SOURCE_FILES} + ARGS @${PROJECT_BINARY_DIR}/grb_source_file_list WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - DEPENDS ${GRB_SOURCE_FILES} + DEPENDS ${GRB_SOURCE_FILES} ${PROJECT_BINARY_DIR}/grb_source_file_list COMMENT "Generating compressed sources for JIT compiler..." ) # target to make sure the file exists when building libgraphblas diff --git a/GraphBLAS/JITpackage/GB_JITpackage.h b/GraphBLAS/JITpackage/GB_JITpackage.h index 4441704fa4..79681de6d8 100644 --- a/GraphBLAS/JITpackage/GB_JITpackage.h +++ b/GraphBLAS/JITpackage/GB_JITpackage.h @@ -7,13 +7,7 @@ //------------------------------------------------------------------------------ -#include -#include -#include - -#ifdef GBMATLAB -#include "GB_rename.h" -#endif +#include "GraphBLAS.h" typedef struct { @@ -24,6 +18,6 @@ typedef struct } GB_JITpackage_index_struct ; -extern int GB_JITpackage_nfiles ; -extern GB_JITpackage_index_struct GB_JITpackage_index [ ] ; +int GB_JITpackage_nfiles_get (void) ; +void *GB_JITpackage_index_get (void) ; diff --git a/GraphBLAS/JITpackage/Source/grb_jitpackage.c b/GraphBLAS/JITpackage/Source/grb_jitpackage.c index 429c53f08f..82ea371c83 100644 --- a/GraphBLAS/JITpackage/Source/grb_jitpackage.c +++ b/GraphBLAS/JITpackage/Source/grb_jitpackage.c @@ -1,8 +1,8 @@ //------------------------------------------------------------------------------ -// grb_jitpackage: package GraphBLAS source code for the JIT +// grb_jitpackage: package GraphBLAS source code for the JIT //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -10,6 +10,13 @@ #include #include #include +#include +#include + +#if defined (__GNUC__) +// ignore strlen warning +#pragma GCC diagnostic ignored "-Wstringop-overflow" +#endif //------------------------------------------------------------------------------ // zstd.h include file @@ -20,7 +27,7 @@ #pragma GCC diagnostic ignored "-Wswitch-default" #endif -// disable ZSTD deprecation warnings and include all ZSTD definitions +// disable ZSTD deprecation warnings and include all ZSTD definitions // GraphBLAS does not use deprecated functions, but the warnings pop up anyway // when GraphBLAS is built, so silence them with this #define: @@ -72,30 +79,121 @@ #include "zstd_subset/decompress/zstd_decompress.c" */ +//------------------------------------------------------------------------------ +// match_prefix: return true if the input string matches the prefix +//------------------------------------------------------------------------------ + +bool match_prefix (char *string, char *prefix) ; + +bool match_prefix (char *string, char *prefix) +{ + char *s = string ; + char *p = prefix ; + while (*s && *p) + { + if (*s != *p) + { + // both the string and prefix character are present, but + // do not match + return (false) ; + } + s++ ; + p++ ; + if (*p == '\0') + { + // the prefix is exhausted, so it has been found as the first part + // of the string + return (true) ; + } + } + return (false) ; +} + //------------------------------------------------------------------------------ // grb_prepackage main program //------------------------------------------------------------------------------ -#define OK(x) if (!(x)) { printf ("Error line %d\n", __LINE__) ; abort ( ) ; } +#define OK(x) \ +{ \ + if (!(x)) \ + { \ + fprintf (stderr, "grb_jitpackage.c: error line %d\n", __LINE__) ; \ + abort ( ) ; \ + } \ +} int main (int argc, char **argv) { + //-------------------------------------------------------------------------- + // get list of files to be processed + //-------------------------------------------------------------------------- + + char **file_list = NULL; + size_t nfiles = 0; + fprintf (stderr, "grb_jitpackage: building JITpackge\n") ; + + if (argc == 2 && argv[1][0] == '@') + { + // input argument is a "response file" containing the file list + + // open file + FILE *fr = fopen (argv[1]+1, "r") ; + OK (fr != NULL) ; + + // get number of lines in file + char ch; + do + { + ch = fgetc (fr); + if (ch == '\n') + nfiles++; + } while (ch != EOF); + + // read file list from response file + rewind (fr); + file_list = malloc ( (nfiles+1) * sizeof (file_list) ); + OK (file_list != NULL) ; + // prepend empty element for compatibility with argv + file_list[0] = malloc (1); + OK (file_list [0] != NULL) ; + file_list[0][0] = '\0'; + // glibc defines MAX_PATH to 4096. + // Use this as a buffer size on all platforms. + #define BUF_LENGTH 4096 + char temp[BUF_LENGTH]; + size_t length; + for (size_t i = 1 ; i < nfiles+1 ; i++) + { + OK ( fgets (temp, BUF_LENGTH, fr) != NULL ); + length = strlen (temp); // this is safe; ignore -Wstringop-overflow + file_list[i] = malloc (length+1); + OK (file_list [i] != NULL) ; + strncpy (file_list[i], temp, length); + file_list[i][length-1] = '\0'; + } + } + else + { + // input argument list is the file list + nfiles = argc - 1 ; + file_list = argv; + } + //-------------------------------------------------------------------------- // start the GB_JITpackage.c file //-------------------------------------------------------------------------- FILE *fp = fopen ("GB_JITpackage.c", "wb") ; OK (fp != NULL) ; - int nfiles = argc - 1 ; - printf ("Processing %d input files ...\n", nfiles) ; + fprintf (stderr, "Processing %zu input files ...\n", nfiles) ; fprintf (fp, "//------------------------------------------------------------------------------\n" "// GB_JITpackage.c: packaged GraphBLAS source code for the JIT\n" "//------------------------------------------------------------------------------\n" "\n" - "// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved.\n" + "// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved.\n" "// SPDX-License-Identifier: Apache-2.0\n" "\n" "//------------------------------------------------------------------------------\n" @@ -104,11 +202,11 @@ int main (int argc, char **argv) "\n" "#ifdef NJIT\n" "// JIT is disabled at compile time\n" - "int GB_JITpackage_nfiles = 0 ;\n" - "GB_JITpackage_index_struct GB_JITpackage_index [1] " - "= {{0, 0, NULL, NULL}} ;\n" + "int GB_JITpackage_nfiles_get (void) { return (0) ; }\n" + "static GB_JITpackage_index_struct GB_JITpackage_index [1] =\n" + " {{0, 0, NULL, NULL}} ;\n" "#else\n" - "int GB_JITpackage_nfiles = %d ;\n\n", argc-1) ; + "int GB_JITpackage_nfiles_get (void) { return (%zu) ; }\n\n", nfiles) ; //-------------------------------------------------------------------------- // allocate the index @@ -125,14 +223,15 @@ int main (int argc, char **argv) // compress each file //-------------------------------------------------------------------------- - for (int k = 1 ; k < argc ; k++) + for (size_t k = 1 ; k < nfiles+1 ; k++) { //---------------------------------------------------------------------- // read the input file //---------------------------------------------------------------------- - FILE *ff = fopen (argv [k], "r") ; +// fprintf (stderr, "k: %zu file: %s\n", k, file_list [k]) ; + FILE *ff = fopen (file_list [k], "rb") ; // open as binary, for Windows OK (ff != NULL) ; fseek (ff, 0, SEEK_END) ; size_t inputsize = ftell (ff) ; @@ -141,8 +240,9 @@ int main (int argc, char **argv) char *input = malloc (inputsize+2) ; OK (input != NULL) ; size_t nread = fread (input, sizeof (char), inputsize, ff) ; +// fprintf (stderr, "inputsize %zu nread %zu\n", inputsize, nread) ; OK (nread == inputsize) ; - input [inputsize] = '\0' ; + input [inputsize] = '\0' ; fclose (ff) ; //---------------------------------------------------------------------- @@ -155,11 +255,11 @@ int main (int argc, char **argv) size_t dsize = ZSTD_compress (dst, dbound+2, input, inputsize, 19) ; //---------------------------------------------------------------------- - // append the bytes to the output file + // append the bytes to the output file //---------------------------------------------------------------------- - fprintf (fp, "// %s:\n", argv [k]) ; - fprintf (fp, "uint8_t GB_JITpackage_%d [%zu] = {\n", k-1, dsize) ; + fprintf (fp, "// %s:\n", file_list [k]) ; + fprintf (fp, "uint8_t GB_JITpackage_%zu [%zu] = {\n", k-1, dsize) ; for (int64_t k = 0 ; k < dsize ; k++) { fprintf (fp, "%3d,", dst [k]) ; @@ -183,31 +283,45 @@ int main (int argc, char **argv) // print the index //-------------------------------------------------------------------------- - printf ("Total uncompressed: %zu bytes\n", total_uncompressed_size) ; - printf ("Total compressed: %zu bytes\n", total_compressed_size) ; - printf ("Compression: %g\n", + fprintf (stderr, "Total uncompressed: %zu bytes\n", + total_uncompressed_size) ; + fprintf (stderr, "Total compressed: %zu bytes\n", total_compressed_size) ; + fprintf (stderr, "Compression: %g\n", (double) total_compressed_size / (double) total_uncompressed_size) ; - fprintf (fp, "\nGB_JITpackage_index_struct GB_JITpackage_index [%d] =\n{\n", - nfiles) ; - for (int k = 1 ; k < argc ; k++) + fprintf (fp, "\nstatic GB_JITpackage_index_struct " + "GB_JITpackage_index [%zu] =\n{\n", nfiles) ; + for (int k = 1 ; k < nfiles+1 ; k++) { - // get the filename (without the path) - char *name = argv [k] ; - for (char *p = argv [k] ; *p != '\0' ; p++) + // get the filename + char *fullname = file_list [k] ; + char *filename = fullname ; + int len = (int) strlen (fullname) ; + for (int i = 0 ; i < len ; i++) { - if (*p == '/') + if (fullname [i] == '/') { - name = p + 1 ; + filename = fullname + i + 1 ; + if (match_prefix (filename, "template") || + match_prefix (filename, "include")) + { + break ; + } } } // append this file to the index fprintf (fp, " { %8zu, %8zu, GB_JITpackage_%-3d, \"%s\" },\n", - Uncompressed_size [k], Compressed_size [k], k-1, name) ; + Uncompressed_size [k], Compressed_size [k], k-1, filename) ; } - fprintf (fp, "} ;\n#endif\n\n") ; + fprintf (fp, + "} ;\n#endif\n\n" + "void *GB_JITpackage_index_get (void)\n" + "{\n" + " return ((void *) GB_JITpackage_index) ;\n" + "}\n\n") ; fclose (fp) ; free (Uncompressed_size) ; free (Compressed_size) ; + return (0) ; } diff --git a/GraphBLAS/README.md b/GraphBLAS/README.md index b2ce94c06e..13aa3fe882 100644 --- a/GraphBLAS/README.md +++ b/GraphBLAS/README.md @@ -4,7 +4,7 @@ SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. SPDX-License-Identifier: Apache-2.0 -VERSION 9.1.0, Mar 22, 2024 +VERSION 9.3.0, Aug 2, 2024 SuiteSparse:GraphBLAS is a complete implementation of the GraphBLAS standard, which defines a set of sparse matrix operations on an extended algebra of diff --git a/GraphBLAS/Source/Contents.m b/GraphBLAS/Source/Contents.m deleted file mode 100644 index d32def020f..0000000000 --- a/GraphBLAS/Source/Contents.m +++ /dev/null @@ -1,33 +0,0 @@ -% SuiteSparse/GraphBLAS/Source -% -% These files are used to create the files in Source/*__* and -% Source/FactoryKernels, from the input files in Source/Generator. These -% functions do not need to be used by the user. -% -% codegen -% codegen_aop -% codegen_aop_method -% codegen_aop_template -% codegen_as -% codegen_as_template -% codegen_axb -% codegen_axb_method -% codegen_axb_compare_template -% codegen_axb_template -% codegen_ew -% codegen_ew_method -% codegen_ew_template -% codegen_red -% codegen_red_method -% codegen_sel -% codegen_sel_method -% codegen_unop -% codegen_unop_identity -% codegen_unop_method -% codegen_unop_template -% -% codegen_type -% codegen_contains - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 diff --git a/GraphBLAS/Source/Factories/GB_check_if_iso_template.c b/GraphBLAS/Source/Factories/GB_check_if_iso_template.c deleted file mode 100644 index d7a1960132..0000000000 --- a/GraphBLAS/Source/Factories/GB_check_if_iso_template.c +++ /dev/null @@ -1,52 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_check_if_iso_template: check if all entries in a matrix are identical -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -{ - - //-------------------------------------------------------------------------- - // get A - //-------------------------------------------------------------------------- - - const GB_A_TYPE *restrict Ax = (GB_A_TYPE *) A->x ; - - //-------------------------------------------------------------------------- - // check all entries to see if they are equal to the first entry - //-------------------------------------------------------------------------- - - int tid ; - #pragma omp parallel for num_threads(nthreads) schedule(dynamic,1) - for (tid = 0 ; tid < ntasks ; tid++) - { - int64_t pstart, pend ; - GB_PARTITION (pstart, pend, anz, tid, ntasks) ; - bool my_iso ; - GB_ATOMIC_READ - my_iso = iso ; - if (my_iso) - { - // GB_A_TYPE a = Ax [0] ; - GB_GET_FIRST_VALUE (GB_A_TYPE, a, Ax) ; - for (int64_t p = pstart ; my_iso && p < pend ; p++) - { - // my_iso = my_iso && (a == Ax [p]) - GB_COMPARE_WITH_FIRST_VALUE (my_iso, a, Ax, p) ; - } - if (!my_iso) - { - // tell the other tasks to exit early - GB_ATOMIC_WRITE - iso = false ; - } - } - } - done = true ; -} - -#undef GB_A_TYPE - diff --git a/GraphBLAS/Source/Factories/GB_ops_template.c b/GraphBLAS/Source/Factories/GB_ops_template.c deleted file mode 100644 index 3a0dc619e5..0000000000 --- a/GraphBLAS/Source/Factories/GB_ops_template.c +++ /dev/null @@ -1,321 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_ops_template.c: built-in unary and binary functions and operators -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// This file is #include'd many times in GB_ops.c to define the built-in unary -// and binary operators. In that file, GB_TYPE is a built-in C type (bool, -// int8_t, uint64_t, double, etc) for the inputs x and y, and GB_XTYPE is -// corresponding GraphBLAS type, without the prefix (BOOL, INT8, etc). - -//------------------------------------------------------------------------------ -// unary functions z=f(x) where z and x have the same type -//------------------------------------------------------------------------------ - -GXB_OP1 (ONE, "one") ; - -#if defined ( GB_COMPLEX ) - - // complex types - GXB_OP1 (IDENTITY , "identity" ) ; - GXB_OP1 (AINV , "ainv" ) ; - GXB_OP1 (MINV , "minv" ) ; - -#else - - // real types - GRB_OP1 (IDENTITY , "identity" ) ; - GRB_OP1 (AINV , "ainv" ) ; - GRB_OP1 (MINV , "minv" ) ; - - // z=abs(x), z and x have the same type - GRB_OP1 (ABS , "abs" ) ; - - // GxB_ABS_* is now GrB_ABS_*, and GxB_ABS_* is historical. - // The new name is preferred. The old name will be kept for historical - // compatibility. - GXB_OP1_RENAME (ABS) ; - - // LNOT is only defined for real types, not complex - GXB_OP1 (LNOT , "not" ) ; - -#endif - -#if defined ( GB_FLOATING_POINT ) - - GXB_OP1 (SQRT , "sqrt" ) ; - GXB_OP1 (LOG , "log" ) ; - GXB_OP1 (EXP , "exp" ) ; - - GXB_OP1 (SIN , "sin" ) ; - GXB_OP1 (COS , "cos" ) ; - GXB_OP1 (TAN , "tan" ) ; - - GXB_OP1 (ASIN , "asin" ) ; - GXB_OP1 (ACOS , "acos" ) ; - GXB_OP1 (ATAN , "atan" ) ; - - GXB_OP1 (SINH , "sinh" ) ; - GXB_OP1 (COSH , "cosh" ) ; - GXB_OP1 (TANH , "tanh" ) ; - - GXB_OP1 (ASINH , "asinh" ) ; - GXB_OP1 (ACOSH , "acosh" ) ; - GXB_OP1 (ATANH , "atanh" ) ; - - GXB_OP1 (SIGNUM , "signum" ) ; - GXB_OP1 (CEIL , "ceil" ) ; - GXB_OP1 (FLOOR , "floor" ) ; - GXB_OP1 (ROUND , "round" ) ; - GXB_OP1 (TRUNC , "trunc" ) ; - - GXB_OP1 (EXP2 , "exp2" ) ; - GXB_OP1 (EXPM1 , "expm1" ) ; - GXB_OP1 (LOG10 , "log10" ) ; - GXB_OP1 (LOG1P , "log1p" ) ; - GXB_OP1 (LOG2 , "log2" ) ; - - #if defined ( GB_COMPLEX ) - // complex only - GXB_OP1 (CONJ , "conj" ) ; - #else - // real only - GXB_OP1 (LGAMMA , "lgamma" ) ; - GXB_OP1 (TGAMMA , "tgamma" ) ; - GXB_OP1 (ERF , "erf" ) ; - GXB_OP1 (ERFC , "erfc" ) ; - GXB_OP1 (CBRT , "cbrt" ) ; - GXB_OP1 (FREXPX , "frexpx" ) ; - GXB_OP1 (FREXPE , "frexpe" ) ; - #endif - -#endif - -#if defined ( GB_SIGNED_INT ) || defined ( GB_UNSIGNED_INT ) - - // bitwise complement - GRB_OP1 (BNOT , "bnot" ) ; - -#endif - -//------------------------------------------------------------------------------ -// unary functions z=f(x) where z and x can have different types -//------------------------------------------------------------------------------ - -#if defined ( GB_FLOAT ) - - // z = f(x) where x is float, and z is bool - GXB_OP1z (ISINF , "isinf" , bool , BOOL ) ; - GXB_OP1z (ISNAN , "isnan" , bool , BOOL ) ; - GXB_OP1z (ISFINITE , "isfinite" , bool , BOOL ) ; - -#elif defined ( GB_DOUBLE ) - - // z = f(x) where x is double, and z is bool - GXB_OP1z (ISINF , "isinf" , bool , BOOL ) ; - GXB_OP1z (ISNAN , "isnan" , bool , BOOL ) ; - GXB_OP1z (ISFINITE , "isfinite" , bool , BOOL ) ; - -#elif defined ( GB_FLOAT_COMPLEX ) - - // z = f(x) where x is float complex, and the type of z is listed below: - GXB_OP1z (ABS , "abs" , float , FP32) ; - GXB_OP1z (ISINF , "isinf" , bool , BOOL) ; - GXB_OP1z (ISNAN , "isnan" , bool , BOOL) ; - GXB_OP1z (ISFINITE , "isfinite" , bool , BOOL ) ; - - GXB_OP1z (CREAL , "creal" , float , FP32) ; - GXB_OP1z (CIMAG , "cimag" , float , FP32) ; - GXB_OP1z (CARG , "carg" , float , FP32) ; - -#elif defined ( GB_DOUBLE_COMPLEX ) - - // z = f(x) where x is double complex, and the type of z is listed below: - GXB_OP1z (ABS , "abs" , double , FP64) ; - GXB_OP1z (ISINF , "isinf" , bool , BOOL) ; - GXB_OP1z (ISNAN , "isnan" , bool , BOOL) ; - GXB_OP1z (ISFINITE , "isfinite" , bool , BOOL ) ; - - GXB_OP1z (CREAL , "creal" , double , FP64) ; - GXB_OP1z (CIMAG , "cimag" , double , FP64) ; - GXB_OP1z (CARG , "carg" , double , FP64) ; - -#endif - -//------------------------------------------------------------------------------ -// binary functions z=f(x,y) where z, x, and y all have the same type -//------------------------------------------------------------------------------ - -GXB_OP2 (RMINUS , "rminus") ; -GXB_OP2 (RDIV , "rdiv" ) ; -GXB_OP2 (PAIR , "pair" ) ; -GXB_OP2 (ANY , "any" ) ; -GXB_OP2 (ISEQ , "iseq" ) ; -GXB_OP2 (ISNE , "isne" ) ; -GXB_OP2 (POW , "pow" ) ; - -#if defined ( GB_COMPLEX ) - - // complex types - GXB_OP2 (FIRST , "first" ) ; - GXB_OP2 (SECOND , "second") ; - GXB_OP2 (PLUS , "plus" ) ; - GXB_OP2 (MINUS , "minus" ) ; - GXB_OP2 (TIMES , "times" ) ; - GXB_OP2 (DIV , "div" ) ; - -#else - - // real types - GRB_OP2 (FIRST , "first" ) ; - GRB_OP2 (SECOND , "second") ; - GRB_OP2 (PLUS , "plus" ) ; - GRB_OP2 (MINUS , "minus" ) ; - GRB_OP2 (TIMES , "times" ) ; - GRB_OP2 (DIV , "div" ) ; - - GRB_OP2 (MIN , "min" ) ; - GRB_OP2 (MAX , "max" ) ; - - GXB_OP2 (LOR , "or" ) ; - GXB_OP2 (LAND , "and" ) ; - GXB_OP2 (LXOR , "xor" ) ; - - GXB_OP2 (ISGT , "isgt") ; - GXB_OP2 (ISLT , "islt") ; - GXB_OP2 (ISGE , "isge") ; - GXB_OP2 (ISLE , "isle") ; - -#endif - -#if defined (GB_FLOAT) || defined (GB_DOUBLE) - - // these operators are only defined for float and double - GXB_OP2 (ATAN2 , "atan2" ) ; - GXB_OP2 (HYPOT , "hypot" ) ; - GXB_OP2 (FMOD , "fmod" ) ; - GXB_OP2 (REMAINDER, "remainder") ; - GXB_OP2 (COPYSIGN , "copysign" ) ; - GXB_OP2 (LDEXP , "ldexp" ) ; - -#endif - -#if defined ( GB_SIGNED_INT ) || defined ( GB_UNSIGNED_INT ) - - // bitwise binary operators - GRB_OP2 (BOR , "bitor" ) ; - GRB_OP2 (BAND , "bitand" ) ; - GRB_OP2 (BXOR , "bitxor" ) ; - GRB_OP2 (BXNOR , "bitxnor" ) ; - - GXB_OP2 (BGET , "bitget" ) ; - GXB_OP2 (BSET , "bitset" ) ; - GXB_OP2 (BCLR , "bitclear" ) ; - - GXB_OP2shift (BSHIFT, "bitshift") ; - -#endif - -//------------------------------------------------------------------------------ -// binary functions z=f(x,y) where z, x, and y can have different types -//------------------------------------------------------------------------------ - -#if defined ( GB_FLOAT ) - - // z = cmplx(x,y) where z is float complex, x and y are float - GXB_OP2z (CMPLX, "cmplx", GxB_FC32_t, FC32) ; - -#endif - -#if defined ( GB_DOUBLE ) - - // z = cmplx(x,y) where z is double complex, x and y are double - GXB_OP2z (CMPLX, "cmplx", GxB_FC64_t, FC64) ; - -#endif - -#if defined ( GB_COMPLEX ) - - // complex types - GXB_OP2z (EQ, "eq", bool, BOOL) ; - GXB_OP2z (NE, "ne", bool, BOOL) ; - -#else - - // real types - GRB_OP2z (EQ, "eq", bool, BOOL) ; - GRB_OP2z (NE, "ne", bool, BOOL) ; - GRB_OP2z (GT, "gt", bool, BOOL) ; - GRB_OP2z (LT, "lt", bool, BOOL) ; - GRB_OP2z (LE, "le", bool, BOOL) ; - GRB_OP2z (GE, "ge", bool, BOOL) ; - -#endif - -//------------------------------------------------------------------------------ -// index_unary functions z=f(x,i,j,y) -//------------------------------------------------------------------------------ - -#if defined ( GB_SIGNED_INDEX ) - - // z = f (x, i, j, y) where z and y have type int32 or int64 - GRB_IDXOP_POSITIONAL (ROWINDEX, "rowindex" ) ; - GRB_IDXOP_POSITIONAL (COLINDEX, "colindex" ) ; - GRB_IDXOP_POSITIONAL (DIAGINDEX, "diagindex") ; - GXB_IDXOP_POSITIONAL (FLIPDIAGINDEX, "flipdiagindex") ; - -#endif - -#if defined ( GB_SIGNED_INDEX64 ) - - // z = f (x, i, j, y) where z is bool; y has type int64 only - GRB_IDXOP_POSITIONAL_BOOL (TRIL, "tril" ) ; - GRB_IDXOP_POSITIONAL_BOOL (TRIU, "triu" ) ; - GRB_IDXOP_POSITIONAL_BOOL (DIAG, "diag" ) ; - GRB_IDXOP_POSITIONAL_BOOL (OFFDIAG, "offdiag" ) ; - GRB_IDXOP_POSITIONAL_BOOL (COLLE, "colle" ) ; - GRB_IDXOP_POSITIONAL_BOOL (COLGT, "colgt" ) ; - GRB_IDXOP_POSITIONAL_BOOL (ROWLE, "rowle" ) ; - GRB_IDXOP_POSITIONAL_BOOL (ROWGT, "rowgt" ) ; - -#endif - -#if defined ( GB_COMPLEX ) - - // z = f (x, i, j, y) where z is bool; y is complex - GXB_IDXOP_VALUE (VALUEEQ, "valueeq") ; - GXB_IDXOP_VALUE (VALUENE, "valuene") ; - -#else - - // z = f (x, i, j, y) where z is bool; y is real - GRB_IDXOP_VALUE (VALUEEQ, "valueeq") ; - GRB_IDXOP_VALUE (VALUENE, "valuene") ; - GRB_IDXOP_VALUE (VALUELT, "valuelt") ; - GRB_IDXOP_VALUE (VALUELE, "valuele") ; - GRB_IDXOP_VALUE (VALUEGT, "valuegt") ; - GRB_IDXOP_VALUE (VALUEGE, "valuege") ; - -#endif - -//------------------------------------------------------------------------------ -// clear macros for next use of this file -//------------------------------------------------------------------------------ - -#undef GB_TYPE -#undef GB_XTYPE -#undef GB_FLOATING_POINT -#undef GB_COMPLEX -#undef GB_FLOAT -#undef GB_DOUBLE -#undef GB_FLOAT_COMPLEX -#undef GB_DOUBLE_COMPLEX -#undef GB_SIGNED_INT -#undef GB_UNSIGNED_INT -#undef GB_SIGNED_INDEX -#undef GB_SIGNED_INDEX64 - diff --git a/GraphBLAS/Source/Factories/GB_ops_template.h b/GraphBLAS/Source/Factories/GB_ops_template.h deleted file mode 100644 index e6ab7004b0..0000000000 --- a/GraphBLAS/Source/Factories/GB_ops_template.h +++ /dev/null @@ -1,1252 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_ops_template.h: define the unary and binary functions and operators -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// This file is #include'd many times in GB_ops.h to define the unary and -// binary functions. - -#define GB_UNOP_STRUCT(op,xtype) \ - GB_GLOBAL struct GB_UnaryOp_opaque GB_OPAQUE (GB_EVAL3 (op, _, xtype)) - -#define GB_BINOP_STRUCT(op,xtype) \ - GB_GLOBAL struct GB_BinaryOp_opaque GB_OPAQUE (GB_EVAL3 (op, _, xtype)) - -#define GB_IDXOP_STRUCT(op,xtype) \ - GB_GLOBAL struct GB_IndexUnaryOp_opaque \ - GB_OPAQUE (GB_EVAL3 (op, _, xtype)) - -//------------------------------------------------------------------------------ -// z = one (x) -//------------------------------------------------------------------------------ - -GB_UNOP_STRUCT (ONE,GB_XTYPE) ; -inline void GB_FUNC (ONE) (GB_TYPE *z, const GB_TYPE *x) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GxB_CMPLXF (1,0) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GxB_CMPLX (1,0) ; - #else - (*z) = ((GB_TYPE) 1) ; - #endif -} - -//------------------------------------------------------------------------------ -// z = identity (x) -//------------------------------------------------------------------------------ - -GB_UNOP_STRUCT (IDENTITY, GB_XTYPE) ; -inline void GB_FUNC (IDENTITY) (GB_TYPE *z, const GB_TYPE *x) -{ - (*z) = (*x) ; -} - -//------------------------------------------------------------------------------ -// z = ainv (x) -//------------------------------------------------------------------------------ - -GB_UNOP_STRUCT (AINV, GB_XTYPE) ; -inline void GB_FUNC (AINV) (GB_TYPE *z, const GB_TYPE *x) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_ainv (*x) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_ainv (*x) ; - #elif defined ( GB_BOOLEAN ) - (*z) = (*x) ; - #else - // integer (signed or unsigned). unsigned int remains unsigned. - (*z) = -(*x) ; - #endif -} - -//------------------------------------------------------------------------------ -// z = minv (x) -//------------------------------------------------------------------------------ - -GB_UNOP_STRUCT (MINV, GB_XTYPE) ; -inline void GB_FUNC (MINV) (GB_TYPE *z, const GB_TYPE *x) -{ - #if defined ( GB_BOOLEAN ) - (*z) = true ; - #elif defined ( GB_SIGNED_INT ) - #if ( GB_BITS == 8) - (*z) = GB_idiv_int8 (1, (*x)) ; - #elif ( GB_BITS == 16) - (*z) = GB_idiv_int16 (1, (*x)) ; - #elif ( GB_BITS == 32) - (*z) = GB_idiv_int32 (1, (*x)) ; - #elif ( GB_BITS == 64) - (*z) = GB_idiv_int64 (1, (*x)) ; - #endif - #elif defined ( GB_UNSIGNED_INT ) - #if ( GB_BITS == 8) - (*z) = GB_idiv_uint8 (1, (*x)) ; - #elif ( GB_BITS == 16) - (*z) = GB_idiv_uint16 (1, (*x)) ; - #elif ( GB_BITS == 32) - (*z) = GB_idiv_uint32 (1, (*x)) ; - #elif ( GB_BITS == 64) - (*z) = GB_idiv_uint64 (1, (*x)) ; - #endif - #elif defined ( GB_FLOAT ) - (*z) = 1 / (*x) ; - #elif defined ( GB_DOUBLE ) - (*z) = 1 / (*x) ; - #elif defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_div (GxB_CMPLXF (1,0), *x) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_div (GxB_CMPLX (1,0), *x) ; - #endif -} - -//------------------------------------------------------------------------------ -// z = abs (x) -//------------------------------------------------------------------------------ - -GB_UNOP_STRUCT (ABS, GB_XTYPE) ; - -#if defined ( GB_REAL ) - - // GrB_ABS_* for non-complex types - inline void GB_FUNC (ABS) (GB_TYPE *z, const GB_TYPE *x) - { - #if defined ( GB_BOOLEAN ) - (*z) = (*x) ; - #elif defined ( GB_SIGNED_INT ) - (*z) = GB_IABS ((*x)) ; - #elif defined ( GB_UNSIGNED_INT ) - (*z) = (*x) ; - #elif defined ( GB_FLOAT ) - (*z) = fabsf (*x) ; - #elif defined ( GB_DOUBLE ) - (*z) = fabs (*x) ; - #endif - } - -#else - - // GxB_ABS_FC* for complex types - #if defined ( GB_FLOAT_COMPLEX ) - inline void GB_FUNC (ABS) (float *z, const GB_TYPE *x) - { - (*z) = GB_cabsf (*x) ; - } - #else - inline void GB_FUNC (ABS) (double *z, const GB_TYPE *x) - { - (*z) = GB_cabs (*x) ; - } - #endif - -#endif - -//------------------------------------------------------------------------------ -// z = lnot (x), for real types only -//------------------------------------------------------------------------------ - -#if defined ( GB_REAL ) - - GB_UNOP_STRUCT (LNOT, GB_XTYPE) ; - inline void GB_FUNC (LNOT) (GB_TYPE *z, const GB_TYPE *x) - { - #if defined ( GB_BOOLEAN ) - (*z) = ! (*x) ; - #else - (*z) = ! ((*x) != 0) ; - #endif - } - -#endif - -//------------------------------------------------------------------------------ -// z = bnot (x), bitwise complement, for integer types only -//------------------------------------------------------------------------------ - -#if defined ( GB_SIGNED_INT ) || defined ( GB_UNSIGNED_INT ) - - GB_UNOP_STRUCT (BNOT, GB_XTYPE) ; - inline void GB_FUNC (BNOT) (GB_TYPE *z, const GB_TYPE *x) - { - (*z) = ~ (*x) ; - } - -#endif - -//------------------------------------------------------------------------------ -// z = frexpx (x) and z = frexpe (x) -//------------------------------------------------------------------------------ - -#if defined ( GB_FLOAT ) - - GB_UNOP_STRUCT (FREXPX, GB_XTYPE) ; - inline void GB_FUNC (FREXPX) (float *z, const float *x) - { - (*z) = GB_frexpxf (*x) ; - } - - GB_UNOP_STRUCT (FREXPE, GB_XTYPE) ; - inline void GB_FUNC (FREXPE) (float *z, const float *x) - { - (*z) = GB_frexpef (*x) ; - } - -#elif defined ( GB_DOUBLE ) - - GB_UNOP_STRUCT (FREXPX, GB_XTYPE) ; - inline void GB_FUNC (FREXPX) (double *z, const double *x) - { - (*z) = GB_frexpx (*x) ; - } - - GB_UNOP_STRUCT (FREXPE, GB_XTYPE) ; - inline void GB_FUNC (FREXPE) (double *z, const double *x) - { - (*z) = GB_frexpe (*x) ; - } - -#endif - -//------------------------------------------------------------------------------ -// unary operators for floating-point types -//------------------------------------------------------------------------------ - -// For these operators, the input and output types are the same. - -#undef GB_OP -#define GB_OP(op,func) \ - GB_UNOP_STRUCT (op, GB_XTYPE) ; \ - inline void GB_FUNC (op) (GB_TYPE *z, const GB_TYPE *x) \ - { \ - (*z) = func (*x) ; \ - } - -#if defined ( GB_FLOAT ) - - //-------------------------------------------------------------------------- - // float - //-------------------------------------------------------------------------- - - GB_OP (SQRT , sqrtf ) - GB_OP (LOG , logf ) - GB_OP (EXP , expf ) - - GB_OP (SIN , sinf ) - GB_OP (COS , cosf ) - GB_OP (TAN , tanf ) - - GB_OP (ASIN , asinf ) - GB_OP (ACOS , acosf ) - GB_OP (ATAN , atanf ) - - GB_OP (SINH , sinhf ) - GB_OP (COSH , coshf ) - GB_OP (TANH , tanhf ) - - GB_OP (ASINH , asinhf ) - GB_OP (ACOSH , acoshf ) - GB_OP (ATANH , atanhf ) - - GB_OP (SIGNUM, GB_signumf ) - GB_OP (CEIL , ceilf ) - GB_OP (FLOOR , floorf ) - GB_OP (ROUND , roundf ) - GB_OP (TRUNC , truncf ) - - GB_OP (EXP2 , exp2f ) - GB_OP (EXPM1 , expm1f ) - GB_OP (LOG10 , log10f ) - GB_OP (LOG1P , log1pf ) - GB_OP (LOG2 , log2f ) - - // real only - GB_OP (LGAMMA, lgammaf ) - GB_OP (TGAMMA, tgammaf ) - GB_OP (ERF , erff ) - GB_OP (ERFC , erfcf ) - GB_OP (CBRT , cbrtf ) - -#elif defined ( GB_DOUBLE ) - - //-------------------------------------------------------------------------- - // double - //-------------------------------------------------------------------------- - - GB_OP (SQRT , sqrt ) - GB_OP (LOG , log ) - GB_OP (EXP , exp ) - - GB_OP (SIN , sin ) - GB_OP (COS , cos ) - GB_OP (TAN , tan ) - - GB_OP (ASIN , asin ) - GB_OP (ACOS , acos ) - GB_OP (ATAN , atan ) - - GB_OP (SINH , sinh ) - GB_OP (COSH , cosh ) - GB_OP (TANH , tanh ) - - GB_OP (ASINH , asinh ) - GB_OP (ACOSH , acosh ) - GB_OP (ATANH , atanh ) - - GB_OP (SIGNUM, GB_signum ) - GB_OP (CEIL , ceil ) - GB_OP (FLOOR , floor ) - GB_OP (ROUND , round ) - GB_OP (TRUNC , trunc ) - - GB_OP (EXP2 , exp2 ) - GB_OP (EXPM1 , expm1 ) - GB_OP (LOG10 , log10 ) - GB_OP (LOG1P , log1p ) - GB_OP (LOG2 , log2 ) - - // real only - GB_OP (LGAMMA, lgamma ) - GB_OP (TGAMMA, tgamma ) - GB_OP (ERF , erf ) - GB_OP (ERFC , erfc ) - GB_OP (CBRT , cbrt ) - -#elif defined ( GB_FLOAT_COMPLEX ) - - //-------------------------------------------------------------------------- - // float complex - //-------------------------------------------------------------------------- - - GB_OP (SQRT , GB_csqrtf ) - GB_OP (LOG , GB_clogf ) - GB_OP (EXP , GB_cexpf ) - - GB_OP (SIN , GB_csinf ) - GB_OP (COS , GB_ccosf ) - GB_OP (TAN , GB_ctanf ) - - GB_OP (ASIN , GB_casinf ) - GB_OP (ACOS , GB_cacosf ) - GB_OP (ATAN , GB_catanf ) - - GB_OP (SINH , GB_csinhf ) - GB_OP (COSH , GB_ccoshf ) - GB_OP (TANH , GB_ctanhf ) - - GB_OP (ASINH , GB_casinhf ) - GB_OP (ACOSH , GB_cacoshf ) - GB_OP (ATANH , GB_catanhf ) - - GB_OP (SIGNUM, GB_csignumf ) - GB_OP (CEIL , GB_cceilf ) - GB_OP (FLOOR , GB_cfloorf ) - GB_OP (ROUND , GB_croundf ) - GB_OP (TRUNC , GB_ctruncf ) - - GB_OP (EXP2 , GB_cexp2f ) - GB_OP (EXPM1 , GB_cexpm1f ) - GB_OP (LOG10 , GB_clog10f ) - GB_OP (LOG1P , GB_clog1pf ) - GB_OP (LOG2 , GB_clog2f ) - - GB_OP (CONJ , GB_conjf ) - -#elif defined ( GB_DOUBLE_COMPLEX ) - - //-------------------------------------------------------------------------- - // double complex - //-------------------------------------------------------------------------- - - GB_OP (SQRT , GB_csqrt ) - GB_OP (LOG , GB_clog ) - GB_OP (EXP , GB_cexp ) - - GB_OP (SIN , GB_csin ) - GB_OP (COS , GB_ccos ) - GB_OP (TAN , GB_ctan ) - - GB_OP (ASIN , GB_casin ) - GB_OP (ACOS , GB_cacos ) - GB_OP (ATAN , GB_catan ) - - GB_OP (SINH , GB_csinh ) - GB_OP (COSH , GB_ccosh ) - GB_OP (TANH , GB_ctanh ) - - GB_OP (ASINH , GB_casinh ) - GB_OP (ACOSH , GB_cacosh ) - GB_OP (ATANH , GB_catanh ) - - GB_OP (SIGNUM, GB_csignum ) - GB_OP (CEIL , GB_cceil ) - GB_OP (FLOOR , GB_cfloor ) - GB_OP (ROUND , GB_cround ) - GB_OP (TRUNC , GB_ctrunc ) - - GB_OP (EXP2 , GB_cexp2 ) - GB_OP (EXPM1 , GB_cexpm1 ) - GB_OP (LOG10 , GB_clog10 ) - GB_OP (LOG1P , GB_clog1p ) - GB_OP (LOG2 , GB_clog2 ) - - GB_OP (CONJ , GB_conj ) - -#endif - -//------------------------------------------------------------------------------ -// unary operators z=f(x) where z and x have different types -//------------------------------------------------------------------------------ - -// x is float, double, float complex, or double complex - -#undef GB_OP -#define GB_OP(op,expression,z_t,x_t) \ - GB_UNOP_STRUCT(op, GB_XTYPE) ; \ - inline void GB_FUNC (op) (z_t *z, const x_t *x) \ - { \ - (*z) = expression ; \ - } - -#if defined ( GB_FLOAT ) - - GB_OP (ISINF , (isinf (*x)) , bool, float) - GB_OP (ISNAN , (isnan (*x)) , bool, float) - GB_OP (ISFINITE , (isfinite (*x)) , bool, float) - -#elif defined ( GB_DOUBLE ) - - GB_OP (ISINF , (isinf (*x)) , bool, double) - GB_OP (ISNAN , (isnan (*x)) , bool, double) - GB_OP (ISFINITE , (isfinite (*x)) , bool, double) - -#elif defined ( GB_FLOAT_COMPLEX ) - - GB_OP (ISINF , GB_cisinff (*x) , bool, GxB_FC32_t) - GB_OP (ISNAN , GB_cisnanf (*x) , bool, GxB_FC32_t) - GB_OP (ISFINITE , GB_cisfinitef (*x), bool, GxB_FC32_t) - - // complex only - GB_OP (CREAL , GB_crealf (*x), float, GxB_FC32_t) - GB_OP (CIMAG , GB_cimagf (*x), float, GxB_FC32_t) - GB_OP (CARG , GB_cargf (*x), float, GxB_FC32_t) - -#elif defined ( GB_DOUBLE_COMPLEX ) - - GB_OP (ISINF , GB_cisinf (*x) , bool, GxB_FC64_t) - GB_OP (ISNAN , GB_cisnan (*x) , bool, GxB_FC64_t) - GB_OP (ISFINITE , GB_cisfinite (*x) , bool, GxB_FC64_t) - - // complex only - GB_OP (CREAL , GB_creal (*x), double, GxB_FC64_t) - GB_OP (CIMAG , GB_cimag (*x), double, GxB_FC64_t) - GB_OP (CARG , GB_carg (*x), double, GxB_FC64_t) - -#endif - -//------------------------------------------------------------------------------ -// binary functions z=f(x,y) where x,y,z have the same type, for all types -//------------------------------------------------------------------------------ - -// first, second, pair, any, plus, minus, rminus, times, div, rdiv, pow - -#define GB_Z_X_Y_ARGS GB_TYPE *z, const GB_TYPE *x, const GB_TYPE *y - -GB_BINOP_STRUCT (FIRST, GB_XTYPE) ; -inline void GB_FUNC (FIRST) (GB_Z_X_Y_ARGS) -{ - (*z) = (*x) ; -} - -GB_BINOP_STRUCT (SECOND, GB_XTYPE) ; -inline void GB_FUNC (SECOND) (GB_Z_X_Y_ARGS) -{ - (*z) = (*y) ; -} - -GB_BINOP_STRUCT (PAIR, GB_XTYPE) ; -inline void GB_FUNC (PAIR) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GxB_CMPLXF (1, 0) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GxB_CMPLX (1, 0) ; - #else - (*z) = 1 ; - #endif -} - -GB_BINOP_STRUCT (ANY, GB_XTYPE) ; -inline void GB_FUNC (ANY) (GB_Z_X_Y_ARGS) // same as SECOND -{ - (*z) = (*y) ; -} - -GB_BINOP_STRUCT (PLUS, GB_XTYPE) ; -inline void GB_FUNC (PLUS) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_add (*x,*y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_add (*x,*y) ; - #else - (*z) = (*x) + (*y) ; - #endif -} - -GB_BINOP_STRUCT (MINUS, GB_XTYPE) ; -inline void GB_FUNC (MINUS) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_minus (*x,*y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_minus (*x,*y) ; - #else - (*z) = (*x) - (*y) ; - #endif -} - -GB_BINOP_STRUCT (RMINUS, GB_XTYPE) ; -inline void GB_FUNC (RMINUS) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_minus (*y,*x) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_minus (*y,*x) ; - #else - (*z) = (*y) - (*x) ; - #endif -} - -GB_BINOP_STRUCT (TIMES, GB_XTYPE) ; -inline void GB_FUNC (TIMES) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_mul (*x,*y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_mul (*x,*y) ; - #else - (*z) = (*x) * (*y) ; - #endif -} - -GB_BINOP_STRUCT (DIV, GB_XTYPE) ; -inline void GB_FUNC (DIV) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_BOOLEAN ) - // boolean div (== first) - (*z) = (*x) ; - #elif defined ( GB_SIGNED_INT ) - #if ( GB_BITS == 8) - (*z) = GB_idiv_int8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_idiv_int16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_idiv_int32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_idiv_int64 ((*x), (*y)) ; - #endif - #elif defined ( GB_UNSIGNED_INT ) - #if ( GB_BITS == 8) - (*z) = GB_idiv_uint8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_idiv_uint16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_idiv_uint32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_idiv_uint64 ((*x), (*y)) ; - #endif - #elif defined ( GB_FLOAT ) || defined ( GB_DOUBLE ) - (*z) = (*x) / (*y) ; - #elif defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_div (*x, *y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_div (*x, *y) ; - #endif -} - -GB_BINOP_STRUCT (RDIV, GB_XTYPE) ; -inline void GB_FUNC (RDIV) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_BOOLEAN ) - // boolean rdiv (== second) - (*z) = (*y) ; - #elif defined ( GB_SIGNED_INT ) - #if ( GB_BITS == 8) - (*z) = GB_idiv_int8 ((*y), (*x)) ; - #elif ( GB_BITS == 16) - (*z) = GB_idiv_int16 ((*y), (*x)) ; - #elif ( GB_BITS == 32) - (*z) = GB_idiv_int32 ((*y), (*x)) ; - #elif ( GB_BITS == 64) - (*z) = GB_idiv_int64 ((*y), (*x)) ; - #endif - #elif defined ( GB_UNSIGNED_INT ) - #if ( GB_BITS == 8) - (*z) = GB_idiv_uint8 ((*y), (*x)) ; - #elif ( GB_BITS == 16) - (*z) = GB_idiv_uint16 ((*y), (*x)) ; - #elif ( GB_BITS == 32) - (*z) = GB_idiv_uint32 ((*y), (*x)) ; - #elif ( GB_BITS == 64) - (*z) = GB_idiv_uint64 ((*y), (*x)) ; - #endif - #elif defined ( GB_FLOAT ) || defined ( GB_DOUBLE ) - (*z) = (*y) / (*x) ; - #elif defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_div (*y, *x) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_div (*y, *x) ; - #endif -} - -// z = pow (x,y) -GB_BINOP_STRUCT (POW, GB_XTYPE) ; -inline void GB_FUNC (POW) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_BOOLEAN ) - (*z) = (*x) || (!(*y)) ; - #elif defined ( GB_SIGNED_INT ) - #if ( GB_BITS == 8) - (*z) = GB_pow_int8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_pow_int16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_pow_int32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_pow_int64 ((*x), (*y)) ; - #endif - #elif defined ( GB_UNSIGNED_INT ) - #if ( GB_BITS == 8) - (*z) = GB_pow_uint8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_pow_uint16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_pow_uint32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_pow_uint64 ((*x), (*y)) ; - #endif - #elif defined ( GB_FLOAT ) - (*z) = GB_powf ((*x), (*y)) ; - #elif defined ( GB_DOUBLE ) - (*z) = GB_pow ((*x), (*y)) ; - #elif defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_pow ((*x), (*y)) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_pow ((*x), (*y)) ; - #endif -} - -//------------------------------------------------------------------------------ -// binary operators for real types only -//------------------------------------------------------------------------------ - -// min and max: real only, not complex -#if defined ( GB_REAL ) - - GB_BINOP_STRUCT (MIN, GB_XTYPE) ; - inline void GB_FUNC (MIN) (GB_Z_X_Y_ARGS) - { - #if defined ( GB_FLOAT ) - (*z) = fminf ((*x), (*y)) ; - #elif defined ( GB_DOUBLE ) - (*z) = fmin ((*x), (*y)) ; - #else - (*z) = GB_IMIN ((*x), (*y)) ; - #endif - } - - GB_BINOP_STRUCT (MAX, GB_XTYPE) ; - inline void GB_FUNC (MAX) (GB_Z_X_Y_ARGS) - { - #if defined ( GB_FLOAT ) - (*z) = fmaxf ((*x), (*y)) ; - #elif defined ( GB_DOUBLE ) - (*z) = fmax ((*x), (*y)) ; - #else - (*z) = GB_IMAX ((*x), (*y)) ; - #endif - } - -#endif - -//------------------------------------------------------------------------------ -// binary operators for integer types only -//------------------------------------------------------------------------------ - -#if defined ( GB_SIGNED_INT ) || defined ( GB_UNSIGNED_INT ) - - GB_BINOP_STRUCT (BOR, GB_XTYPE) ; - inline void GB_FUNC (BOR ) (GB_Z_X_Y_ARGS) { (*z) = (*x) | (*y) ; } - - GB_BINOP_STRUCT (BAND, GB_XTYPE) ; - inline void GB_FUNC (BAND ) (GB_Z_X_Y_ARGS) { (*z) = (*x) & (*y) ; } - - GB_BINOP_STRUCT (BXOR, GB_XTYPE) ; - inline void GB_FUNC (BXOR ) (GB_Z_X_Y_ARGS) { (*z) = (*x) ^ (*y) ; } - - GB_BINOP_STRUCT (BXNOR, GB_XTYPE) ; - inline void GB_FUNC (BXNOR) (GB_Z_X_Y_ARGS) { (*z) = ~((*x) ^ (*y)) ; } - - GB_BINOP_STRUCT (BGET, GB_XTYPE) ; - inline void GB_FUNC (BGET) (GB_Z_X_Y_ARGS) - { - // bitget (x,y) returns a single bit from x, as 0 or 1, whose position - // is given by y. y = 1 is the least significant bit, and y = GB_BITS - // (64 for uint64) is the most significant bit. If y is outside this - // range, the result is zero. - - #if defined ( GB_SIGNED_INT ) - - #if ( GB_BITS == 8) - (*z) = GB_bitget_int8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_bitget_int16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_bitget_int32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_bitget_int64 ((*x), (*y)) ; - #endif - - #elif defined ( GB_UNSIGNED_INT ) - - #if ( GB_BITS == 8) - (*z) = GB_bitget_uint8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_bitget_uint16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_bitget_uint32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_bitget_uint64 ((*x), (*y)) ; - #endif - - #endif - } - - GB_BINOP_STRUCT (BSET, GB_XTYPE) ; - inline void GB_FUNC (BSET) (GB_Z_X_Y_ARGS) - { - // bitset (x,y) returns x modified by setting a bit from x to 1, whose - // position is given by y. If y is in the range 1 to GB_BITS, then y - // gives the position of the bit to set. If y is outside the range 1 - // to GB_BITS, then z = x is returned, unmodified. - - #if defined ( GB_SIGNED_INT ) - - #if ( GB_BITS == 8) - (*z) = GB_bitset_int8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_bitset_int16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_bitset_int32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_bitset_int64 ((*x), (*y)) ; - #endif - - #elif defined ( GB_UNSIGNED_INT ) - - #if ( GB_BITS == 8) - (*z) = GB_bitset_uint8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_bitset_uint16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_bitset_uint32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_bitset_uint64 ((*x), (*y)) ; - #endif - - #endif - } - - GB_BINOP_STRUCT (BCLR, GB_XTYPE) ; - inline void GB_FUNC (BCLR) (GB_Z_X_Y_ARGS) - { - // bitclr (x,y) returns x modified by setting a bit from x to 0, whose - // position is given by y. If y is in the range 1 to GB_BITS, then y - // gives the position of the bit to clear. If y is outside the range 1 - // to GB_BITS, then z = x is returned, unmodified. - - #if defined ( GB_SIGNED_INT ) - - #if ( GB_BITS == 8) - (*z) = GB_bitclr_int8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_bitclr_int16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_bitclr_int32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_bitclr_int64 ((*x), (*y)) ; - #endif - - #elif defined ( GB_UNSIGNED_INT ) - - #if ( GB_BITS == 8) - (*z) = GB_bitclr_uint8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_bitclr_uint16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_bitclr_uint32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_bitclr_uint64 ((*x), (*y)) ; - #endif - - #endif - } - - - // z = bitshift (x,y) - GB_BINOP_STRUCT (BSHIFT, GB_XTYPE) ; - inline void GB_FUNC (BSHIFT) (GB_TYPE *z, const GB_TYPE *x, const int8_t *y) - { - // bitshift (x,k) shifts x to the left by k bits if k > 0, and the - // right by -k bits if k < 0. - - #if defined ( GB_SIGNED_INT ) - - #if ( GB_BITS == 8) - (*z) = GB_bitshift_int8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_bitshift_int16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_bitshift_int32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_bitshift_int64 ((*x), (*y)) ; - #endif - - #elif defined ( GB_UNSIGNED_INT ) - - #if ( GB_BITS == 8) - (*z) = GB_bitshift_uint8 ((*x), (*y)) ; - #elif ( GB_BITS == 16) - (*z) = GB_bitshift_uint16 ((*x), (*y)) ; - #elif ( GB_BITS == 32) - (*z) = GB_bitshift_uint32 ((*x), (*y)) ; - #elif ( GB_BITS == 64) - (*z) = GB_bitshift_uint64 ((*x), (*y)) ; - #endif - - #endif - } - -#endif - -//------------------------------------------------------------------------------ -// binary operators for real floating-point inputs only -//------------------------------------------------------------------------------ - -#if defined ( GB_FLOAT ) - - inline void GB_FUNC (ATAN2) (GB_Z_X_Y_ARGS) { (*z) = atan2f ((*x),(*y)) ; } - inline void GB_FUNC (HYPOT) (GB_Z_X_Y_ARGS) { (*z) = hypotf ((*x),(*y)) ; } - inline void GB_FUNC (FMOD) (GB_Z_X_Y_ARGS) { (*z) = fmodf ((*x),(*y)) ; } - - inline void GB_FUNC (REMAINDER) (GB_Z_X_Y_ARGS) - { - (*z) = remainderf ((*x),(*y)) ; - } - inline void GB_FUNC (COPYSIGN) (GB_Z_X_Y_ARGS) - { - (*z) = copysignf ((*x),(*y)) ; - } - inline void GB_FUNC (LDEXP) (GB_Z_X_Y_ARGS) - { - (*z) = ldexpf ((*x), (int) truncf (*y)) ; - } - inline void GB_FUNC (CMPLX) (GxB_FC32_t *z, const float *x, const float *y) - { - #if defined ( __cplusplus ) || defined (GxB_HAVE_COMPLEX_MSVC) || defined (CMPLX) - (*z) = GxB_CMPLXF ((*x),(*y)) ; - #else - ((float *) z) [0] = (*x) ; - ((float *) z) [1] = (*y) ; - #endif - } - -#elif defined ( GB_DOUBLE ) - - inline void GB_FUNC (ATAN2) (GB_Z_X_Y_ARGS) { (*z) = atan2 ((*x),(*y)) ; } - inline void GB_FUNC (HYPOT) (GB_Z_X_Y_ARGS) { (*z) = hypot ((*x),(*y)) ; } - inline void GB_FUNC (FMOD) (GB_Z_X_Y_ARGS) { (*z) = fmod ((*x),(*y)) ; } - - inline void GB_FUNC (REMAINDER) (GB_Z_X_Y_ARGS) - { - (*z) = remainder ((*x),(*y)) ; - } - inline void GB_FUNC (COPYSIGN) (GB_Z_X_Y_ARGS) - { - (*z) = copysign ((*x),(*y)) ; - } - inline void GB_FUNC (LDEXP) (GB_Z_X_Y_ARGS) - { - (*z) = ldexp ((*x), (int) trunc (*y)) ; - } - inline void GB_FUNC (CMPLX) (GxB_FC64_t *z, - const double *x, const double *y) - { - #if defined ( __cplusplus ) || defined (GxB_HAVE_COMPLEX_MSVC) || defined (CMPLX) - (*z) = GxB_CMPLX ((*x),(*y)) ; - #else - ((double *) z) [0] = (*x) ; - ((double *) z) [1] = (*y) ; - #endif - } - -#endif - -#if defined (GB_FLOAT) || defined (GB_DOUBLE) - - GB_BINOP_STRUCT (ATAN2, GB_XTYPE) ; - GB_BINOP_STRUCT (HYPOT, GB_XTYPE) ; - GB_BINOP_STRUCT (FMOD, GB_XTYPE) ; - GB_BINOP_STRUCT (REMAINDER, GB_XTYPE) ; - GB_BINOP_STRUCT (COPYSIGN, GB_XTYPE) ; - GB_BINOP_STRUCT (LDEXP, GB_XTYPE) ; - GB_BINOP_STRUCT (CMPLX, GB_XTYPE) ; - -#endif - -//------------------------------------------------------------------------------ -// 6 binary comparators z=f(x,y), where x,y,z have the same type -//------------------------------------------------------------------------------ - -// iseq and isne: all 13 types, including complex types. -// isgt, islt, isge, isle: 11 real types only. - -GB_BINOP_STRUCT (ISEQ, GB_XTYPE) ; -inline void GB_FUNC (ISEQ) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_iseq (*x, *y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_iseq (*x, *y) ; - #else - (*z) = (GB_TYPE) ((*x) == (*y)) ; - #endif -} - -GB_BINOP_STRUCT (ISNE, GB_XTYPE) ; -inline void GB_FUNC (ISNE) (GB_Z_X_Y_ARGS) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_isne (*x, *y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_isne (*x, *y) ; - #else - (*z) = (GB_TYPE) ((*x) != (*y)) ; - #endif -} - -#if defined ( GB_REAL ) - - GB_BINOP_STRUCT (ISGT, GB_XTYPE) ; - inline void GB_FUNC (ISGT) (GB_Z_X_Y_ARGS) - { - (*z) = (GB_TYPE) ((*x) > (*y)) ; - } - - GB_BINOP_STRUCT (ISLT, GB_XTYPE) ; - inline void GB_FUNC (ISLT) (GB_Z_X_Y_ARGS) - { - (*z) = (GB_TYPE) ((*x) < (*y)) ; - } - - GB_BINOP_STRUCT (ISGE, GB_XTYPE) ; - inline void GB_FUNC (ISGE) (GB_Z_X_Y_ARGS) - { - (*z) = (GB_TYPE) ((*x) >= (*y)) ; - } - - GB_BINOP_STRUCT (ISLE, GB_XTYPE) ; - inline void GB_FUNC (ISLE) (GB_Z_X_Y_ARGS) - { - (*z) = (GB_TYPE) ((*x) <= (*y)) ; - } - -#endif - -//------------------------------------------------------------------------------ -// 3 boolean binary functions z=f(x,y), all x,y,z the same type, real types only -//------------------------------------------------------------------------------ - -#if defined ( GB_REAL ) - - #if defined ( GB_BOOLEAN ) - - inline void GB_FUNC (LOR) (GB_Z_X_Y_ARGS) { (*z) = ((*x) || (*y)) ; } - inline void GB_FUNC (LAND) (GB_Z_X_Y_ARGS) { (*z) = ((*x) && (*y)) ; } - inline void GB_FUNC (LXOR) (GB_Z_X_Y_ARGS) { (*z) = ((*x) != (*y)) ; } - - #else - - // The inputs are of type T but are then implicitly converted to boolean - // The output z is of type T, either 1 or 0 in that type. - inline void GB_FUNC (LOR) (GB_Z_X_Y_ARGS) - { - (*z) = (GB_TYPE) (((*x) != 0) || ((*y) != 0)) ; - } - - inline void GB_FUNC (LAND) (GB_Z_X_Y_ARGS) - { - (*z) = (GB_TYPE) (((*x) != 0) && ((*y) != 0)) ; - } - - inline void GB_FUNC (LXOR) (GB_Z_X_Y_ARGS) - { - (*z) = (GB_TYPE) (((*x) != 0) != ((*y) != 0)) ; - } - - #endif - - GB_BINOP_STRUCT (LOR, GB_XTYPE) ; - GB_BINOP_STRUCT (LAND, GB_XTYPE) ; - GB_BINOP_STRUCT (LXOR, GB_XTYPE) ; - -#endif - -#undef GB_Z_X_Y_ARGS - -//------------------------------------------------------------------------------ -// 6 binary functions z=f(x,y), returning bool -//------------------------------------------------------------------------------ - -// eq, ne: for all 13 types -// gt, lt, ge, le: for 11 real types, not complex - -#define GB_Zbool_X_Y_ARGS bool *z, const GB_TYPE *x, const GB_TYPE *y - -GB_BINOP_STRUCT (EQ, GB_XTYPE) ; -inline void GB_FUNC (EQ) (GB_Zbool_X_Y_ARGS) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_eq (*x, *y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_eq (*x, *y) ; - #else - (*z) = ((*x) == (*y)) ; - #endif -} - -GB_BINOP_STRUCT (NE, GB_XTYPE) ; -inline void GB_FUNC (NE) (GB_Zbool_X_Y_ARGS) -{ - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_ne (*x, *y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_ne (*x, *y) ; - #else - (*z) = ((*x) != (*y)) ; - #endif -} - -#if !defined ( GB_COMPLEX ) - - GB_BINOP_STRUCT (GT, GB_XTYPE) ; - inline void GB_FUNC (GT) (GB_Zbool_X_Y_ARGS) { (*z) = ((*x) > (*y)) ; } - - GB_BINOP_STRUCT (LT, GB_XTYPE) ; - inline void GB_FUNC (LT) (GB_Zbool_X_Y_ARGS) { (*z) = ((*x) < (*y)) ; } - - GB_BINOP_STRUCT (GE, GB_XTYPE) ; - inline void GB_FUNC (GE) (GB_Zbool_X_Y_ARGS) { (*z) = ((*x) >= (*y)) ; } - - GB_BINOP_STRUCT (LE, GB_XTYPE) ; - inline void GB_FUNC (LE) (GB_Zbool_X_Y_ARGS) { (*z) = ((*x) <= (*y)) ; } - -#endif - -#undef GB_Zbool_X_Y_ARGS - -//------------------------------------------------------------------------------ -// index_unary functions -//------------------------------------------------------------------------------ - -#if defined ( GB_SIGNED_INDEX ) - - //-------------------------------------------------------------------------- - // z = f (x, i, j, y) where z and y are both int32 or int64 - //-------------------------------------------------------------------------- - - GB_IDXOP_STRUCT (ROWINDEX, GB_XTYPE) ; - inline void GB_FUNC (ROWINDEX) (GB_TYPE *z, const void *unused, - GrB_Index i, GrB_Index j_unused, const GB_TYPE *y) - { - (*z) = (GB_TYPE) (((int64_t) i) + (*y)) ; - } - GB_IDXOP_STRUCT (COLINDEX, GB_XTYPE) ; - inline void GB_FUNC (COLINDEX) (GB_TYPE *z, const void *unused, - GrB_Index i_unused, GrB_Index j, const GB_TYPE *y) - { - (*z) = (GB_TYPE) (((int64_t) j) + (*y)) ; - } - GB_IDXOP_STRUCT (DIAGINDEX, GB_XTYPE) ; - inline void GB_FUNC (DIAGINDEX) (GB_TYPE *z, const void *unused, - GrB_Index i, GrB_Index j, const GB_TYPE *y) - { - (*z) = (GB_TYPE) (((int64_t) j) - (((int64_t) i) + (*y))) ; - } - GB_IDXOP_STRUCT (FLIPDIAGINDEX, GB_XTYPE) ; - inline void GB_FUNC (FLIPDIAGINDEX) (GB_TYPE *z, const void *unused, - GrB_Index i, GrB_Index j, const GB_TYPE *y) - { - (*z) = (GB_TYPE) (((int64_t) i) - (((int64_t) j) + (*y))) ; - } - -#endif - -#if defined ( GB_SIGNED_INDEX64 ) - - //-------------------------------------------------------------------------- - // z = f (x, i, j, y) where z is bool, y is type int64 - //-------------------------------------------------------------------------- - - GB_IDXOP_STRUCT (TRIL, GB_XTYPE) ; - inline void GB_FUNC (TRIL) (bool *z, const void *unused, - GrB_Index i, GrB_Index j, const GB_TYPE *y) - { - (*z) = (((int64_t) j) <= (((int64_t) i) + (*y))) ; - } - - GB_IDXOP_STRUCT (TRIU, GB_XTYPE) ; - inline void GB_FUNC (TRIU) (bool *z, const void *unused, - GrB_Index i, GrB_Index j, const GB_TYPE *y) - { - (*z) = (((int64_t) j) >= (((int64_t) i) + (*y))) ; - } - - GB_IDXOP_STRUCT (DIAG, GB_XTYPE) ; - inline void GB_FUNC (DIAG) (bool *z, const void *unused, - GrB_Index i, GrB_Index j, const GB_TYPE *y) - { - (*z) = (((int64_t) j) == (((int64_t) i) + (*y))) ; - } - - GB_IDXOP_STRUCT (OFFDIAG, GB_XTYPE) ; - inline void GB_FUNC (OFFDIAG) (bool *z, const void *unused, - GrB_Index i, GrB_Index j, const GB_TYPE *y) - { - (*z) = (((int64_t) j) != (((int64_t) i) + (*y))) ; - } - - GB_IDXOP_STRUCT (COLLE, GB_XTYPE) ; - inline void GB_FUNC (COLLE) (bool *z, const void *unused, - GrB_Index i_unused, GrB_Index j, const GB_TYPE *y) - { - (*z) = (((int64_t) j) <= (*y)) ; - } - - GB_IDXOP_STRUCT (COLGT, GB_XTYPE) ; - inline void GB_FUNC (COLGT) (bool *z, const void *unused, - GrB_Index i_unused, GrB_Index j, const GB_TYPE *y) - { - (*z) = (((int64_t) j) > (*y)) ; - } - - GB_IDXOP_STRUCT (ROWLE, GB_XTYPE) ; - inline void GB_FUNC (ROWLE) (bool *z, const void *unused, - GrB_Index i, GrB_Index j_unused, const GB_TYPE *y) - { - (*z) = (((int64_t) i) <= (*y)) ; - } - - GB_IDXOP_STRUCT (ROWGT, GB_XTYPE) ; - inline void GB_FUNC (ROWGT) (bool *z, const void *unused, - GrB_Index i, GrB_Index j_unused, const GB_TYPE *y) - { - (*z) = (((int64_t) i) > (*y)) ; - } - -#endif - - //-------------------------------------------------------------------------- - // z = f (x, i, j, y) where z is bool, y is any built-in type - //-------------------------------------------------------------------------- - - GB_IDXOP_STRUCT (VALUEEQ, GB_XTYPE) ; - inline void GB_FUNC (VALUEEQ) (bool *z, const GB_TYPE *x, - GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) - { - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_eq (*x, *y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_eq (*x, *y) ; - #else - (*z) = ((*x) == (*y)) ; - #endif - } - - GB_IDXOP_STRUCT (VALUENE, GB_XTYPE) ; - inline void GB_FUNC (VALUENE) (bool *z, const GB_TYPE *x, - GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) - { - #if defined ( GB_FLOAT_COMPLEX ) - (*z) = GB_FC32_ne (*x, *y) ; - #elif defined ( GB_DOUBLE_COMPLEX ) - (*z) = GB_FC64_ne (*x, *y) ; - #else - (*z) = ((*x) != (*y)) ; - #endif - } - -#if defined ( GB_REAL ) - - //-------------------------------------------------------------------------- - // z = f (x, i, j, y) where z is bool, y is any real built-in type - //-------------------------------------------------------------------------- - - GB_IDXOP_STRUCT (VALUELT, GB_XTYPE) ; - inline void GB_FUNC (VALUELT) (bool *z, const GB_TYPE *x, - GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) - { - (*z) = ((*x) < (*y)) ; - } - - GB_IDXOP_STRUCT (VALUELE, GB_XTYPE) ; - inline void GB_FUNC (VALUELE) (bool *z, const GB_TYPE *x, - GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) - { - (*z) = ((*x) <= (*y)) ; - } - - GB_IDXOP_STRUCT (VALUEGT, GB_XTYPE) ; - inline void GB_FUNC (VALUEGT) (bool *z, const GB_TYPE *x, - GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) - { - (*z) = ((*x) > (*y)) ; - } - - GB_IDXOP_STRUCT (VALUEGE, GB_XTYPE) ; - inline void GB_FUNC (VALUEGE) (bool *z, const GB_TYPE *x, - GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) - { - (*z) = ((*x) >= (*y)) ; - } - -#endif - -//------------------------------------------------------------------------------ -// clear macros for next use of this file -//------------------------------------------------------------------------------ - -#undef GB_TYPE -#undef GB_XTYPE -#undef GB_OP -#undef GB_BOOLEAN -#undef GB_FLOATING_POINT -#undef GB_UNSIGNED_INT -#undef GB_SIGNED_INT -#undef GB_SIGNED_INDEX -#undef GB_SIGNED_INDEX64 -#undef GB_BITS -#undef GB_REAL -#undef GB_DOUBLE -#undef GB_FLOAT -#undef GB_DOUBLE_COMPLEX -#undef GB_FLOAT_COMPLEX -#undef GB_COMPLEX -#undef GB_UNOP_STRUCT -#undef GB_BINOP_STRUCT - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__cmplx_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__cmplx_fp32.c deleted file mode 100644 index d7f2c9f34f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__cmplx_fp32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = GJ_CMPLX32 (x, y) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE float -#define GB_Y_TYPE float -#define GB_DECLAREY(ywork) float ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE float -#define GB_C_TYPE GxB_FC32_t -#define GB_DECLAREC(cwork) GxB_FC32_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = (GJ_CMPLX32 (Ax [A_iso ? 0 : (pA)], 0)) -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : (GJ_CMPLX32 (Ax [pA], 0)) -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CMPLX) || defined(GxB_NO_FP32) || defined(GxB_NO_CMPLX_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__cmplx_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__cmplx_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__cmplx_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__cmplx_fp64.c deleted file mode 100644 index 201a13b0ed..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__cmplx_fp64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = GJ_CMPLX64 (x, y) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE double -#define GB_Y_TYPE double -#define GB_DECLAREY(ywork) double ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE double -#define GB_C_TYPE GxB_FC64_t -#define GB_DECLAREC(cwork) GxB_FC64_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = (GJ_CMPLX64 (Ax [A_iso ? 0 : (pA)], 0)) -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : (GJ_CMPLX64 (Ax [pA], 0)) -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CMPLX) || defined(GxB_NO_FP64) || defined(GxB_NO_CMPLX_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__cmplx_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__cmplx_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fc32.c deleted file mode 100644 index 6526159e9f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fc32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = GB_FC32_eq (x, y) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC32_t -#define GB_Y_TYPE GxB_FC32_t -#define GB_DECLAREY(ywork) GxB_FC32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE GxB_FC32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = ((GB_crealf (Ax [A_iso ? 0 : (pA)]) != 0) || (GB_cimagf (Ax [A_iso ? 0 : (pA)]) != 0)) -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : ((GB_crealf (Ax [pA]) != 0) || (GB_cimagf (Ax [pA]) != 0)) -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) GB_MCAST (Ax, pA, sizeof (GxB_FC32_t)) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_FC32) || defined(GxB_NO_EQ_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_fc32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fc64.c deleted file mode 100644 index 82e25f6cdd..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fc64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = GB_FC64_eq (x, y) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC64_t -#define GB_Y_TYPE GxB_FC64_t -#define GB_DECLAREY(ywork) GxB_FC64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE GxB_FC64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = ((GB_creal (Ax [A_iso ? 0 : (pA)]) != 0) || (GB_cimag (Ax [A_iso ? 0 : (pA)]) != 0)) -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : ((GB_creal (Ax [pA]) != 0) || (GB_cimag (Ax [pA]) != 0)) -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) GB_MCAST (Ax, pA, sizeof (GxB_FC64_t)) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_FC64) || defined(GxB_NO_EQ_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_fc64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fp32.c deleted file mode 100644 index 2c8f99dda8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fp32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE float -#define GB_Y_TYPE float -#define GB_DECLAREY(ywork) float ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE float -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_FP32) || defined(GxB_NO_EQ_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fp64.c deleted file mode 100644 index fd69ed43a9..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_fp64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE double -#define GB_Y_TYPE double -#define GB_DECLAREY(ywork) double ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE double -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_FP64) || defined(GxB_NO_EQ_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int16.c deleted file mode 100644 index ff70da0d38..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int16_t -#define GB_Y_TYPE int16_t -#define GB_DECLAREY(ywork) int16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_INT16) || defined(GxB_NO_EQ_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int32.c deleted file mode 100644 index 46cc788ee8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int32_t -#define GB_Y_TYPE int32_t -#define GB_DECLAREY(ywork) int32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_INT32) || defined(GxB_NO_EQ_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int64.c deleted file mode 100644 index 0ec4de66be..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int64_t -#define GB_Y_TYPE int64_t -#define GB_DECLAREY(ywork) int64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_INT64) || defined(GxB_NO_EQ_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int8.c deleted file mode 100644 index c3747e03e3..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_int8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int8_t -#define GB_Y_TYPE int8_t -#define GB_DECLAREY(ywork) int8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_INT8) || defined(GxB_NO_EQ_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint16.c deleted file mode 100644 index cf5541cdce..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint16_t -#define GB_Y_TYPE uint16_t -#define GB_DECLAREY(ywork) uint16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_UINT16) || defined(GxB_NO_EQ_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint32.c deleted file mode 100644 index 108eb6215a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint32_t -#define GB_Y_TYPE uint32_t -#define GB_DECLAREY(ywork) uint32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_UINT32) || defined(GxB_NO_EQ_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint64.c deleted file mode 100644 index 0235ce41fc..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint64_t -#define GB_Y_TYPE uint64_t -#define GB_DECLAREY(ywork) uint64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_UINT64) || defined(GxB_NO_EQ_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint8.c deleted file mode 100644 index 2210829f72..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__eq_uint8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) == (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint8_t -#define GB_Y_TYPE uint8_t -#define GB_DECLAREY(ywork) uint8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EQ) || defined(GxB_NO_UINT8) || defined(GxB_NO_EQ_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__eq_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__eq_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_bool.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_bool.c deleted file mode 100644 index 921e644036..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_bool.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE bool -#define GB_X_TYPE bool -#define GB_Y_TYPE bool -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE bool -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_BOOL) || defined(GxB_NO_FIRST_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_bool) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_fc32.c deleted file mode 100644 index 06031959d4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_fc32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t -#define GB_Y_TYPE GxB_FC32_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE GxB_FC32_t -#define GB_C_TYPE GxB_FC32_t -#define GB_DECLAREC(cwork) GxB_FC32_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) GB_MCAST (Ax, pA, sizeof (GxB_FC32_t)) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_FC32) || defined(GxB_NO_FIRST_FC32) || GB_COMPILER_MSC_2019_OR_NEWER) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_fc32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_fc64.c deleted file mode 100644 index d6868776ed..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_fc64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t -#define GB_Y_TYPE GxB_FC64_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE GxB_FC64_t -#define GB_C_TYPE GxB_FC64_t -#define GB_DECLAREC(cwork) GxB_FC64_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) GB_MCAST (Ax, pA, sizeof (GxB_FC64_t)) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_FC64) || defined(GxB_NO_FIRST_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_fc64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_fp32.c deleted file mode 100644 index bd5c012351..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_fp32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE float -#define GB_X_TYPE float -#define GB_Y_TYPE float -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE float -#define GB_C_TYPE float -#define GB_DECLAREC(cwork) float cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_FP32) || defined(GxB_NO_FIRST_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_fp64.c deleted file mode 100644 index 33a91f8245..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_fp64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE double -#define GB_X_TYPE double -#define GB_Y_TYPE double -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE double -#define GB_C_TYPE double -#define GB_DECLAREC(cwork) double cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_FP64) || defined(GxB_NO_FIRST_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_int16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_int16.c deleted file mode 100644 index 9dfaa417d1..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_int16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int16_t -#define GB_Y_TYPE int16_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE int16_t -#define GB_C_TYPE int16_t -#define GB_DECLAREC(cwork) int16_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_INT16) || defined(GxB_NO_FIRST_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_int32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_int32.c deleted file mode 100644 index d78d328d2a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_int32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int32_t -#define GB_Y_TYPE int32_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE int32_t -#define GB_C_TYPE int32_t -#define GB_DECLAREC(cwork) int32_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_INT32) || defined(GxB_NO_FIRST_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_int64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_int64.c deleted file mode 100644 index fae2b3cd7a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_int64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int64_t -#define GB_Y_TYPE int64_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE int64_t -#define GB_C_TYPE int64_t -#define GB_DECLAREC(cwork) int64_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_INT64) || defined(GxB_NO_FIRST_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_int8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_int8.c deleted file mode 100644 index 6d8f8f0b7c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_int8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int8_t -#define GB_Y_TYPE int8_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE int8_t -#define GB_C_TYPE int8_t -#define GB_DECLAREC(cwork) int8_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_INT8) || defined(GxB_NO_FIRST_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint16.c deleted file mode 100644 index 5c2ba79923..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint16_t -#define GB_Y_TYPE uint16_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE uint16_t -#define GB_C_TYPE uint16_t -#define GB_DECLAREC(cwork) uint16_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_UINT16) || defined(GxB_NO_FIRST_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint32.c deleted file mode 100644 index e9ef30dfb2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint32_t -#define GB_Y_TYPE uint32_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE uint32_t -#define GB_C_TYPE uint32_t -#define GB_DECLAREC(cwork) uint32_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_UINT32) || defined(GxB_NO_FIRST_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint64.c deleted file mode 100644 index 78f2589d04..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint64_t -#define GB_Y_TYPE uint64_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE uint64_t -#define GB_C_TYPE uint64_t -#define GB_DECLAREC(cwork) uint64_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_UINT64) || defined(GxB_NO_FIRST_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint8.c deleted file mode 100644 index c7c31df41e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__first_uint8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint8_t -#define GB_Y_TYPE uint8_t -#define GB_DECLAREY(ywork) -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) - -// A and C matrices -#define GB_A_TYPE uint8_t -#define GB_C_TYPE uint8_t -#define GB_DECLAREC(cwork) uint8_t cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FIRST) || defined(GxB_NO_UINT8) || defined(GxB_NO_FIRST_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__first_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__first_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_fp32.c deleted file mode 100644 index dd5f2302ad..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_fp32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE float -#define GB_Y_TYPE float -#define GB_DECLAREY(ywork) float ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE float -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_FP32) || defined(GxB_NO_GE_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_fp64.c deleted file mode 100644 index 5f819e7e39..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_fp64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE double -#define GB_Y_TYPE double -#define GB_DECLAREY(ywork) double ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE double -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_FP64) || defined(GxB_NO_GE_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int16.c deleted file mode 100644 index 3198e9eec4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int16_t -#define GB_Y_TYPE int16_t -#define GB_DECLAREY(ywork) int16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_INT16) || defined(GxB_NO_GE_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int32.c deleted file mode 100644 index 96e7ceb237..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int32_t -#define GB_Y_TYPE int32_t -#define GB_DECLAREY(ywork) int32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_INT32) || defined(GxB_NO_GE_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int64.c deleted file mode 100644 index 7cd6855e6d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int64_t -#define GB_Y_TYPE int64_t -#define GB_DECLAREY(ywork) int64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_INT64) || defined(GxB_NO_GE_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int8.c deleted file mode 100644 index c2f68743c0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_int8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int8_t -#define GB_Y_TYPE int8_t -#define GB_DECLAREY(ywork) int8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_INT8) || defined(GxB_NO_GE_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint16.c deleted file mode 100644 index caae3d152c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint16_t -#define GB_Y_TYPE uint16_t -#define GB_DECLAREY(ywork) uint16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_UINT16) || defined(GxB_NO_GE_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint32.c deleted file mode 100644 index 072b434116..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint32_t -#define GB_Y_TYPE uint32_t -#define GB_DECLAREY(ywork) uint32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_UINT32) || defined(GxB_NO_GE_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint64.c deleted file mode 100644 index 045cbe62f4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint64_t -#define GB_Y_TYPE uint64_t -#define GB_DECLAREY(ywork) uint64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_UINT64) || defined(GxB_NO_GE_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint8.c deleted file mode 100644 index d42597953d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ge_uint8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) >= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint8_t -#define GB_Y_TYPE uint8_t -#define GB_DECLAREY(ywork) uint8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GE) || defined(GxB_NO_UINT8) || defined(GxB_NO_GE_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ge_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ge_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_fp32.c deleted file mode 100644 index 7a073cb562..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_fp32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE float -#define GB_Y_TYPE float -#define GB_DECLAREY(ywork) float ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE float -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_FP32) || defined(GxB_NO_GT_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_fp64.c deleted file mode 100644 index a43ef44aec..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_fp64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE double -#define GB_Y_TYPE double -#define GB_DECLAREY(ywork) double ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE double -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_FP64) || defined(GxB_NO_GT_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int16.c deleted file mode 100644 index 69ee259575..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int16_t -#define GB_Y_TYPE int16_t -#define GB_DECLAREY(ywork) int16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_INT16) || defined(GxB_NO_GT_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int32.c deleted file mode 100644 index 86e672f8e2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int32_t -#define GB_Y_TYPE int32_t -#define GB_DECLAREY(ywork) int32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_INT32) || defined(GxB_NO_GT_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int64.c deleted file mode 100644 index 86e579ee6a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int64_t -#define GB_Y_TYPE int64_t -#define GB_DECLAREY(ywork) int64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_INT64) || defined(GxB_NO_GT_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int8.c deleted file mode 100644 index 77b9a0014c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_int8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int8_t -#define GB_Y_TYPE int8_t -#define GB_DECLAREY(ywork) int8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_INT8) || defined(GxB_NO_GT_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint16.c deleted file mode 100644 index 5857c99e36..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint16_t -#define GB_Y_TYPE uint16_t -#define GB_DECLAREY(ywork) uint16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_UINT16) || defined(GxB_NO_GT_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint32.c deleted file mode 100644 index c7063ac600..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint32_t -#define GB_Y_TYPE uint32_t -#define GB_DECLAREY(ywork) uint32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_UINT32) || defined(GxB_NO_GT_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint64.c deleted file mode 100644 index fc89cead95..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint64_t -#define GB_Y_TYPE uint64_t -#define GB_DECLAREY(ywork) uint64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_UINT64) || defined(GxB_NO_GT_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint8.c deleted file mode 100644 index 9fc516bcea..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__gt_uint8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) > (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint8_t -#define GB_Y_TYPE uint8_t -#define GB_DECLAREY(ywork) uint8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_GT) || defined(GxB_NO_UINT8) || defined(GxB_NO_GT_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__gt_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__gt_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_fp32.c deleted file mode 100644 index 6a29ecc692..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_fp32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE float -#define GB_Y_TYPE float -#define GB_DECLAREY(ywork) float ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE float -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_FP32) || defined(GxB_NO_LE_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_fp64.c deleted file mode 100644 index c50fd11446..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_fp64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE double -#define GB_Y_TYPE double -#define GB_DECLAREY(ywork) double ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE double -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_FP64) || defined(GxB_NO_LE_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_int16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_int16.c deleted file mode 100644 index dd6eb8cbcd..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_int16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int16_t -#define GB_Y_TYPE int16_t -#define GB_DECLAREY(ywork) int16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_INT16) || defined(GxB_NO_LE_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_int32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_int32.c deleted file mode 100644 index 15651055d7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_int32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int32_t -#define GB_Y_TYPE int32_t -#define GB_DECLAREY(ywork) int32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_INT32) || defined(GxB_NO_LE_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_int64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_int64.c deleted file mode 100644 index a8975fd73e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_int64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int64_t -#define GB_Y_TYPE int64_t -#define GB_DECLAREY(ywork) int64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_INT64) || defined(GxB_NO_LE_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_int8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_int8.c deleted file mode 100644 index c6f275d84e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_int8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int8_t -#define GB_Y_TYPE int8_t -#define GB_DECLAREY(ywork) int8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_INT8) || defined(GxB_NO_LE_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint16.c deleted file mode 100644 index 83dccf0143..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint16_t -#define GB_Y_TYPE uint16_t -#define GB_DECLAREY(ywork) uint16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_UINT16) || defined(GxB_NO_LE_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint32.c deleted file mode 100644 index 940cfd4557..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint32_t -#define GB_Y_TYPE uint32_t -#define GB_DECLAREY(ywork) uint32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_UINT32) || defined(GxB_NO_LE_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint64.c deleted file mode 100644 index affc9ddc35..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint64_t -#define GB_Y_TYPE uint64_t -#define GB_DECLAREY(ywork) uint64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_UINT64) || defined(GxB_NO_LE_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint8.c deleted file mode 100644 index 36b86afbc0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__le_uint8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) <= (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint8_t -#define GB_Y_TYPE uint8_t -#define GB_DECLAREY(ywork) uint8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LE) || defined(GxB_NO_UINT8) || defined(GxB_NO_LE_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__le_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__le_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_fp32.c deleted file mode 100644 index f748cd722d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_fp32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE float -#define GB_Y_TYPE float -#define GB_DECLAREY(ywork) float ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE float -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_FP32) || defined(GxB_NO_LT_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_fp64.c deleted file mode 100644 index a010de85b5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_fp64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE double -#define GB_Y_TYPE double -#define GB_DECLAREY(ywork) double ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE double -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_FP64) || defined(GxB_NO_LT_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int16.c deleted file mode 100644 index b605c026fe..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int16_t -#define GB_Y_TYPE int16_t -#define GB_DECLAREY(ywork) int16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_INT16) || defined(GxB_NO_LT_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int32.c deleted file mode 100644 index 399dca2a6b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int32_t -#define GB_Y_TYPE int32_t -#define GB_DECLAREY(ywork) int32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_INT32) || defined(GxB_NO_LT_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int64.c deleted file mode 100644 index 2afca7dd78..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int64_t -#define GB_Y_TYPE int64_t -#define GB_DECLAREY(ywork) int64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_INT64) || defined(GxB_NO_LT_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int8.c deleted file mode 100644 index fb94847460..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_int8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int8_t -#define GB_Y_TYPE int8_t -#define GB_DECLAREY(ywork) int8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_INT8) || defined(GxB_NO_LT_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint16.c deleted file mode 100644 index 51c14735e4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint16_t -#define GB_Y_TYPE uint16_t -#define GB_DECLAREY(ywork) uint16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_UINT16) || defined(GxB_NO_LT_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint32.c deleted file mode 100644 index cbbf1203f8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint32_t -#define GB_Y_TYPE uint32_t -#define GB_DECLAREY(ywork) uint32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_UINT32) || defined(GxB_NO_LT_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint64.c deleted file mode 100644 index 55e6488146..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint64_t -#define GB_Y_TYPE uint64_t -#define GB_DECLAREY(ywork) uint64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_UINT64) || defined(GxB_NO_LT_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint8.c deleted file mode 100644 index a43c410f19..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__lt_uint8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) < (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint8_t -#define GB_Y_TYPE uint8_t -#define GB_DECLAREY(ywork) uint8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LT) || defined(GxB_NO_UINT8) || defined(GxB_NO_LT_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__lt_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__lt_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fc32.c deleted file mode 100644 index bd213f2508..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fc32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = GB_FC32_ne (x, y) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC32_t -#define GB_Y_TYPE GxB_FC32_t -#define GB_DECLAREY(ywork) GxB_FC32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE GxB_FC32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = ((GB_crealf (Ax [A_iso ? 0 : (pA)]) != 0) || (GB_cimagf (Ax [A_iso ? 0 : (pA)]) != 0)) -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : ((GB_crealf (Ax [pA]) != 0) || (GB_cimagf (Ax [pA]) != 0)) -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) GB_MCAST (Ax, pA, sizeof (GxB_FC32_t)) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_FC32) || defined(GxB_NO_NE_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_fc32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fc64.c deleted file mode 100644 index 20d4304d7f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fc64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = GB_FC64_ne (x, y) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC64_t -#define GB_Y_TYPE GxB_FC64_t -#define GB_DECLAREY(ywork) GxB_FC64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE GxB_FC64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = ((GB_creal (Ax [A_iso ? 0 : (pA)]) != 0) || (GB_cimag (Ax [A_iso ? 0 : (pA)]) != 0)) -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : ((GB_creal (Ax [pA]) != 0) || (GB_cimag (Ax [pA]) != 0)) -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) GB_MCAST (Ax, pA, sizeof (GxB_FC64_t)) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_FC64) || defined(GxB_NO_NE_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_fc64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fp32.c deleted file mode 100644 index 40be4cdd27..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fp32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE float -#define GB_Y_TYPE float -#define GB_DECLAREY(ywork) float ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE float -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_FP32) || defined(GxB_NO_NE_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_fp32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fp64.c deleted file mode 100644 index dff659582a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_fp64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE double -#define GB_Y_TYPE double -#define GB_DECLAREY(ywork) double ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE double -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_FP64) || defined(GxB_NO_NE_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_fp64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int16.c deleted file mode 100644 index 27a55f54f9..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int16_t -#define GB_Y_TYPE int16_t -#define GB_DECLAREY(ywork) int16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_INT16) || defined(GxB_NO_NE_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_int16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int32.c deleted file mode 100644 index 45b95c4f5d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int32_t -#define GB_Y_TYPE int32_t -#define GB_DECLAREY(ywork) int32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_INT32) || defined(GxB_NO_NE_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_int32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int64.c deleted file mode 100644 index e26873b8ef..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int64_t -#define GB_Y_TYPE int64_t -#define GB_DECLAREY(ywork) int64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_INT64) || defined(GxB_NO_NE_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_int64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int8.c deleted file mode 100644 index 4754a30a16..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_int8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE int8_t -#define GB_Y_TYPE int8_t -#define GB_DECLAREY(ywork) int8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE int8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_INT8) || defined(GxB_NO_NE_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_int8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint16.c deleted file mode 100644 index c01d5a6d33..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint16.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint16_t -#define GB_Y_TYPE uint16_t -#define GB_DECLAREY(ywork) uint16_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint16_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_UINT16) || defined(GxB_NO_NE_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_uint16) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint32.c deleted file mode 100644 index 1675e3fe0f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint32.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint32_t -#define GB_Y_TYPE uint32_t -#define GB_DECLAREY(ywork) uint32_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint32_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_UINT32) || defined(GxB_NO_NE_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_uint32) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint64.c deleted file mode 100644 index f52d4a84eb..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint64.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint64_t -#define GB_Y_TYPE uint64_t -#define GB_DECLAREY(ywork) uint64_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint64_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_UINT64) || defined(GxB_NO_NE_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_uint64) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint8.c deleted file mode 100644 index f6bdaf6898..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_aop__ne_uint8.c +++ /dev/null @@ -1,97 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_aop: assign/subassign kernels with accum -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// C(I,J) += A - -#include "GB.h" -#include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" - -// accum operator -#define GB_ACCUM_OP(z,x,y) z = ((x) != (y)) -#define GB_Z_TYPE bool -#define GB_X_TYPE uint8_t -#define GB_Y_TYPE uint8_t -#define GB_DECLAREY(ywork) uint8_t ywork -#define GB_COPY_aij_to_ywork(ywork,Ax,pA,A_iso) ywork = Ax [(A_iso) ? 0 : (pA)] - -// A and C matrices -#define GB_A_TYPE uint8_t -#define GB_C_TYPE bool -#define GB_DECLAREC(cwork) bool cwork -#define GB_COPY_aij_to_cwork(cwork,Ax,pA,A_iso) cwork = Ax [A_iso ? 0 : (pA)] -#define GB_COPY_aij_to_C(Cx,pC,Ax,pA,A_iso,cwork) Cx [pC] = (A_iso) ? cwork : Ax [pA] -#define GB_COPY_scalar_to_C(Cx,pC,cwork) Cx [pC] = cwork -#define GB_AX_MASK(Ax,pA,asize) (Ax [pA] != 0) - -// C(i,j) += ywork -#define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ - GB_ACCUM_OP (Cx [pC], Cx [pC], ywork) - -// C(i,j) += (ytype) A(i,j) -#define GB_ACCUMULATE_aij(Cx,pC,Ax,pA,A_iso,ywork) \ -{ \ - if (A_iso) \ - { \ - GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ - } \ - else \ - { \ - /* A and Y have the same type here */ \ - GB_ACCUMULATE_scalar (Cx, pC, Ax [pA]) ; \ - } \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_NE) || defined(GxB_NO_UINT8) || defined(GxB_NO_NE_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_assign_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C += A, accumulate a sparse matrix into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_23__ne_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - GB_Werk Werk -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C += y, accumulate a scalar into a dense matrix -//------------------------------------------------------------------------------ - -GrB_Info GB (_subassign_22__ne_uint8) -( - GrB_Matrix C, - const GB_void *ywork_handle -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_bool_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_bool_bool.c deleted file mode 100644 index ef2882f8b2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_bool_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE bool -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_bool_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp32_fc32.c deleted file mode 100644 index 6a9859c432..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cabsf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_fp32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp32_fp32.c deleted file mode 100644 index 6f2778e65d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = fabsf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp64_fc64.c deleted file mode 100644 index 3743fd4d08..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cabs (x) -#define GB_Z_TYPE double -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_fp64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp64_fp64.c deleted file mode 100644 index 2afca0ecc2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = fabs (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int16_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int16_int16.c deleted file mode 100644 index 25d98da1a2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int16_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_IABS (x) -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_int16_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int32_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int32_int32.c deleted file mode 100644 index 7ac44893c8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int32_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_IABS (x) -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_int32_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int64_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int64_int64.c deleted file mode 100644 index 59c39d848d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int64_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_IABS (x) -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_int64_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int8_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int8_int8.c deleted file mode 100644 index de06be0db2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_int8_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_IABS (x) -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_int8_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint16_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint16_uint16.c deleted file mode 100644 index 8e562f15c2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint16_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_uint16_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint32_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint32_uint32.c deleted file mode 100644 index 320710abf7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint32_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_uint32_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint64_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint64_uint64.c deleted file mode 100644 index 676b538763..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint64_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_uint64_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint8_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint8_uint8.c deleted file mode 100644 index 5f7ab5f3fa..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__abs_uint8_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ABS) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__abs_uint8_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__abs_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fc32_fc32.c deleted file mode 100644 index 6ee6b8a5ec..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cacosf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ACOS) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__acos_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__acos_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fc64_fc64.c deleted file mode 100644 index 663ec6e020..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cacos (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ACOS) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__acos_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__acos_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fp32_fp32.c deleted file mode 100644 index 9e9b2b1be5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = acosf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ACOS) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__acos_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__acos_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fp64_fp64.c deleted file mode 100644 index 576f0a0446..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__acos_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = acos (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ACOS) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__acos_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__acos_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fc32_fc32.c deleted file mode 100644 index 5d1dab8468..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cacoshf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ACOSH) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__acosh_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__acosh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fc64_fc64.c deleted file mode 100644 index 66f81d4bdf..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cacosh (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ACOSH) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__acosh_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__acosh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fp32_fp32.c deleted file mode 100644 index 7e20a421e9..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = acoshf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ACOSH) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__acosh_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__acosh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fp64_fp64.c deleted file mode 100644 index 23a3d019af..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__acosh_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = acosh (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ACOSH) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__acosh_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__acosh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_bool_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_bool_bool.c deleted file mode 100644 index 63c6a824cc..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_bool_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE bool -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_bool_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fc32_fc32.c deleted file mode 100644 index 882c8c59f9..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_FC32_ainv (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fc64_fc64.c deleted file mode 100644 index 5ac87e1a5d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_FC64_ainv (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fp32_fp32.c deleted file mode 100644 index 7e9c7254a3..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fp64_fp64.c deleted file mode 100644 index a0ca9c1587..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int16_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int16_int16.c deleted file mode 100644 index 5d0578d721..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int16_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_int16_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int32_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int32_int32.c deleted file mode 100644 index abd5e8cb46..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int32_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_int32_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int64_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int64_int64.c deleted file mode 100644 index 6dcb67c1b5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int64_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_int64_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int8_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int8_int8.c deleted file mode 100644 index b747093650..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_int8_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_int8_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint16_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint16_uint16.c deleted file mode 100644 index 25f7476314..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint16_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_uint16_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint32_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint32_uint32.c deleted file mode 100644 index 6150c38a41..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint32_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_uint32_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint64_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint64_uint64.c deleted file mode 100644 index c3ee6df25a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint64_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_uint64_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint8_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint8_uint8.c deleted file mode 100644 index cf42cb0be4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ainv_uint8_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = -x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_AINV) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ainv_uint8_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ainv_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fc32_fc32.c deleted file mode 100644 index 8ddc6844c5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_casinf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ASIN) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__asin_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__asin_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fc64_fc64.c deleted file mode 100644 index 36785991aa..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_casin (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ASIN) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__asin_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__asin_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fp32_fp32.c deleted file mode 100644 index ccd31c2bc4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = asinf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ASIN) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__asin_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__asin_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fp64_fp64.c deleted file mode 100644 index 4b7c6d727f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__asin_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = asin (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ASIN) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__asin_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__asin_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fc32_fc32.c deleted file mode 100644 index 81ead14399..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_casinhf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ASINH) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__asinh_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__asinh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fc64_fc64.c deleted file mode 100644 index 44208d9573..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_casinh (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ASINH) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__asinh_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__asinh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fp32_fp32.c deleted file mode 100644 index 61b99f48d8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = asinhf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ASINH) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__asinh_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__asinh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fp64_fp64.c deleted file mode 100644 index eae038d2af..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__asinh_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = asinh (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ASINH) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__asinh_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__asinh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fc32_fc32.c deleted file mode 100644 index ef72512901..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_catanf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ATAN) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__atan_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__atan_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fc64_fc64.c deleted file mode 100644 index 1c33e0065e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_catan (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ATAN) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__atan_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__atan_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fp32_fp32.c deleted file mode 100644 index 274240b1c2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = atanf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ATAN) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__atan_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__atan_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fp64_fp64.c deleted file mode 100644 index 57cf2db08c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__atan_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = atan (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ATAN) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__atan_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__atan_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fc32_fc32.c deleted file mode 100644 index addd62e292..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_catanhf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ATANH) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__atanh_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__atanh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fc64_fc64.c deleted file mode 100644 index 244b3ee1de..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_catanh (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ATANH) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__atanh_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__atanh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fp32_fp32.c deleted file mode 100644 index a615cc6f5b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = atanhf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ATANH) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__atanh_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__atanh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fp64_fp64.c deleted file mode 100644 index de2c1dc654..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__atanh_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = atanh (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ATANH) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__atanh_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__atanh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int16_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int16_int16.c deleted file mode 100644 index d8c034da39..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int16_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ~(x) -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_BNOT) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__bnot_int16_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__bnot_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int32_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int32_int32.c deleted file mode 100644 index a64bbd2214..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int32_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ~(x) -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_BNOT) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__bnot_int32_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__bnot_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int64_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int64_int64.c deleted file mode 100644 index e40035e59e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int64_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ~(x) -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_BNOT) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__bnot_int64_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__bnot_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int8_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int8_int8.c deleted file mode 100644 index 22abbfa6df..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_int8_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ~(x) -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_BNOT) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__bnot_int8_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__bnot_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint16_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint16_uint16.c deleted file mode 100644 index 152087b94e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint16_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ~(x) -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_BNOT) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__bnot_uint16_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__bnot_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint32_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint32_uint32.c deleted file mode 100644 index 28413a4796..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint32_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ~(x) -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_BNOT) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__bnot_uint32_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__bnot_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint64_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint64_uint64.c deleted file mode 100644 index 1e6fdebe40..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint64_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ~(x) -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_BNOT) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__bnot_uint64_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__bnot_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint8_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint8_uint8.c deleted file mode 100644 index caf6431590..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__bnot_uint8_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ~(x) -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_BNOT) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__bnot_uint8_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__bnot_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__carg_fp32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__carg_fp32_fc32.c deleted file mode 100644 index ad988812ac..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__carg_fp32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cargf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CARG) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__carg_fp32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__carg_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__carg_fp64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__carg_fp64_fc64.c deleted file mode 100644 index 7ae3ae805b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__carg_fp64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_carg (x) -#define GB_Z_TYPE double -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CARG) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__carg_fp64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__carg_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cbrt_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cbrt_fp32_fp32.c deleted file mode 100644 index b0e3cdffa9..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cbrt_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = cbrtf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CBRT) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cbrt_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cbrt_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cbrt_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cbrt_fp64_fp64.c deleted file mode 100644 index 6251199629..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cbrt_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = cbrt (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CBRT) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cbrt_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cbrt_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fc32_fc32.c deleted file mode 100644 index 2b5266f875..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cceilf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CEIL) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ceil_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ceil_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fc64_fc64.c deleted file mode 100644 index 44896875fe..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cceil (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CEIL) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ceil_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ceil_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fp32_fp32.c deleted file mode 100644 index f6d0466db1..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ceilf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CEIL) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ceil_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ceil_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fp64_fp64.c deleted file mode 100644 index b6357bb5f0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__ceil_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = ceil (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CEIL) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__ceil_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__ceil_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cimag_fp32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cimag_fp32_fc32.c deleted file mode 100644 index f272fe021f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cimag_fp32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cimagf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CIMAG) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cimag_fp32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cimag_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cimag_fp64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cimag_fp64_fc64.c deleted file mode 100644 index 66672a1b39..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cimag_fp64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cimag (x) -#define GB_Z_TYPE double -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CIMAG) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cimag_fp64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cimag_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__conj_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__conj_fc32_fc32.c deleted file mode 100644 index c0e57fd47e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__conj_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_conjf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CONJ) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__conj_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__conj_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__conj_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__conj_fc64_fc64.c deleted file mode 100644 index ad7a59920c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__conj_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_conj (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CONJ) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__conj_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__conj_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fc32_fc32.c deleted file mode 100644 index eaa6799786..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ccosf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_COS) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cos_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cos_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fc64_fc64.c deleted file mode 100644 index 74e907ebd4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ccos (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_COS) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cos_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cos_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fp32_fp32.c deleted file mode 100644 index 4bf511b2ac..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = cosf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_COS) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cos_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cos_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fp64_fp64.c deleted file mode 100644 index 2d8d710b5b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cos_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = cos (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_COS) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cos_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cos_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fc32_fc32.c deleted file mode 100644 index 5a8385e3dd..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ccoshf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_COSH) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cosh_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cosh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fc64_fc64.c deleted file mode 100644 index 7a53e177f2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ccosh (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_COSH) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cosh_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cosh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fp32_fp32.c deleted file mode 100644 index b8538df9ec..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = coshf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_COSH) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cosh_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cosh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fp64_fp64.c deleted file mode 100644 index c90d0ac990..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__cosh_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = cosh (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_COSH) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__cosh_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__cosh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__creal_fp32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__creal_fp32_fc32.c deleted file mode 100644 index a67160178c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__creal_fp32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_crealf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CREAL) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__creal_fp32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__creal_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__creal_fp64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__creal_fp64_fc64.c deleted file mode 100644 index e83f8d9aa2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__creal_fp64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_creal (x) -#define GB_Z_TYPE double -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_CREAL) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__creal_fp64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__creal_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__erf_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__erf_fp32_fp32.c deleted file mode 100644 index 9fde826c16..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__erf_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = erff (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ERF) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__erf_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__erf_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__erf_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__erf_fp64_fp64.c deleted file mode 100644 index 5e0ff913a4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__erf_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = erf (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ERF) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__erf_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__erf_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__erfc_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__erfc_fp32_fp32.c deleted file mode 100644 index 4df21ee9d2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__erfc_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = erfcf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ERFC) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__erfc_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__erfc_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__erfc_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__erfc_fp64_fp64.c deleted file mode 100644 index 02a9609fac..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__erfc_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = erfc (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ERFC) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__erfc_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__erfc_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fc32_fc32.c deleted file mode 100644 index 596895bbc7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cexp2f (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXP2) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__exp2_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__exp2_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fc64_fc64.c deleted file mode 100644 index b676467941..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cexp2 (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXP2) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__exp2_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__exp2_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fp32_fp32.c deleted file mode 100644 index 4d0b5c059e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = exp2f (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXP2) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__exp2_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__exp2_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fp64_fp64.c deleted file mode 100644 index 06cccb0713..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__exp2_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = exp2 (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXP2) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__exp2_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__exp2_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fc32_fc32.c deleted file mode 100644 index 6cddfdfba1..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cexpf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXP) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__exp_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__exp_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fc64_fc64.c deleted file mode 100644 index a1d31cd3f5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cexp (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXP) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__exp_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__exp_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fp32_fp32.c deleted file mode 100644 index 8d3c82fea5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = expf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXP) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__exp_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__exp_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fp64_fp64.c deleted file mode 100644 index d6118339af..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__exp_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = exp (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXP) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__exp_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__exp_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fc32_fc32.c deleted file mode 100644 index aea7106ee5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cexpm1f (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXPM1) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__expm1_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__expm1_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fc64_fc64.c deleted file mode 100644 index 12b1cbeb37..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cexpm1 (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXPM1) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__expm1_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__expm1_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fp32_fp32.c deleted file mode 100644 index 601ffd5656..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = expm1f (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXPM1) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__expm1_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__expm1_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fp64_fp64.c deleted file mode 100644 index 7f1448b721..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__expm1_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = expm1 (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_EXPM1) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__expm1_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__expm1_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fc32_fc32.c deleted file mode 100644 index e5201014a0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cfloorf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FLOOR) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__floor_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__floor_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fc64_fc64.c deleted file mode 100644 index fe7d230b73..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cfloor (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FLOOR) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__floor_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__floor_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fp32_fp32.c deleted file mode 100644 index 665dab203f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = floorf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FLOOR) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__floor_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__floor_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fp64_fp64.c deleted file mode 100644 index bbe0f4eb30..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__floor_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = floor (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FLOOR) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__floor_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__floor_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__frexpe_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__frexpe_fp32_fp32.c deleted file mode 100644 index 521cee07f0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__frexpe_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_frexpef (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FREXPE) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__frexpe_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__frexpe_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__frexpe_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__frexpe_fp64_fp64.c deleted file mode 100644 index 34cf61e689..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__frexpe_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_frexpe (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FREXPE) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__frexpe_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__frexpe_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__frexpx_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__frexpx_fp32_fp32.c deleted file mode 100644 index 53552e90bd..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__frexpx_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_frexpxf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FREXPX) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__frexpx_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__frexpx_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__frexpx_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__frexpx_fp64_fp64.c deleted file mode 100644 index 9a9c30fdb7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__frexpx_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_frexpx (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_FREXPX) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__frexpx_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__frexpx_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_bool.c deleted file mode 100644 index e01d3373af..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_bool.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE bool -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fc32.c deleted file mode 100644 index 1cf380e94b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (GB_crealf (x) != 0) || (GB_cimagf (x) != 0) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fc64.c deleted file mode 100644 index 3b5e2c1080..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (GB_creal (x) != 0) || (GB_cimag (x) != 0) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fp32.c deleted file mode 100644 index 1b4f920449..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (x != 0) -#define GB_Z_TYPE bool -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fp64.c deleted file mode 100644 index 56133a7e61..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (x != 0) -#define GB_Z_TYPE bool -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int16.c deleted file mode 100644 index 8686acc2b8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (bool) x -#define GB_Z_TYPE bool -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int32.c deleted file mode 100644 index 11831d50ac..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (bool) x -#define GB_Z_TYPE bool -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int64.c deleted file mode 100644 index 916c54fba6..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (bool) x -#define GB_Z_TYPE bool -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int8.c deleted file mode 100644 index 9125c017cf..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (bool) x -#define GB_Z_TYPE bool -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint16.c deleted file mode 100644 index b0b9adade8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (bool) x -#define GB_Z_TYPE bool -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint32.c deleted file mode 100644 index 38ea40da90..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (bool) x -#define GB_Z_TYPE bool -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint64.c deleted file mode 100644 index 7f9b5b18ea..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (bool) x -#define GB_Z_TYPE bool -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint8.c deleted file mode 100644 index 9d2b81ada6..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_bool_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (bool) x -#define GB_Z_TYPE bool -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_BOOL) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_bool_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_bool_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_bool.c deleted file mode 100644 index 267d529bb7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fc32.c deleted file mode 100644 index 83bb88e8bb..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fc32.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fc64.c deleted file mode 100644 index 4ad1544657..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) GB_creal (x), (float) GB_cimag (x)) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fp32.c deleted file mode 100644 index ea1f68ad7a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fp64.c deleted file mode 100644 index 32e82abcab..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int16.c deleted file mode 100644 index 90a408e81d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int32.c deleted file mode 100644 index 161f498aa4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int64.c deleted file mode 100644 index 0a87b32c92..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int8.c deleted file mode 100644 index 807f0364a2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint16.c deleted file mode 100644 index be63e2ed4d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint32.c deleted file mode 100644 index 5a7fc17e8d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint64.c deleted file mode 100644 index 2b38acf61b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint8.c deleted file mode 100644 index 2631ca3225..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc32_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX32 ((float) (x), 0) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC32) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc32_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc32_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_bool.c deleted file mode 100644 index b8597fb008..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fc32.c deleted file mode 100644 index bc60792c76..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) GB_crealf (x), (double) GB_cimagf (x)) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fc64.c deleted file mode 100644 index e130f640b6..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fc64.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fp32.c deleted file mode 100644 index 1022d67f31..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fp64.c deleted file mode 100644 index 0283c49218..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int16.c deleted file mode 100644 index eb9d1d4162..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int32.c deleted file mode 100644 index e134b133d0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int64.c deleted file mode 100644 index a215fa268d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int8.c deleted file mode 100644 index 8e0cf0d223..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint16.c deleted file mode 100644 index e808c95086..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint32.c deleted file mode 100644 index 696e3fb89a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint64.c deleted file mode 100644 index 637de732be..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint8.c deleted file mode 100644 index fe849142f0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fc64_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GJ_CMPLX64 ((double) (x), 0) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FC64) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fc64_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fc64_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_bool.c deleted file mode 100644 index cebf609a8e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) x -#define GB_Z_TYPE float -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fc32.c deleted file mode 100644 index 77cfd85174..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) GB_crealf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fc64.c deleted file mode 100644 index 8dfca92dbf..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) GB_creal (x) -#define GB_Z_TYPE float -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fp32.c deleted file mode 100644 index 13acd0327e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fp32.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fp64.c deleted file mode 100644 index 3496aaf022..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE float -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int16.c deleted file mode 100644 index 729e308d73..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) x -#define GB_Z_TYPE float -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int32.c deleted file mode 100644 index b81cba0f16..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) x -#define GB_Z_TYPE float -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int64.c deleted file mode 100644 index bdc4bc1368..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) x -#define GB_Z_TYPE float -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int8.c deleted file mode 100644 index 23399cfb79..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) x -#define GB_Z_TYPE float -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint16.c deleted file mode 100644 index a56bb9f823..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) x -#define GB_Z_TYPE float -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint32.c deleted file mode 100644 index 0ef1442f27..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) x -#define GB_Z_TYPE float -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint64.c deleted file mode 100644 index f2009b64e5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) x -#define GB_Z_TYPE float -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint8.c deleted file mode 100644 index b259946e85..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp32_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (float) x -#define GB_Z_TYPE float -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP32) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp32_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp32_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_bool.c deleted file mode 100644 index 4f46bce52a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fc32.c deleted file mode 100644 index 47c9f8f656..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) GB_crealf (x) -#define GB_Z_TYPE double -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fc64.c deleted file mode 100644 index d46cc70abd..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) GB_creal (x) -#define GB_Z_TYPE double -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fp32.c deleted file mode 100644 index 123254f9ef..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fp64.c deleted file mode 100644 index f4c6d34019..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_fp64.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int16.c deleted file mode 100644 index da81532aef..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int32.c deleted file mode 100644 index 355fb0cd3a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int64.c deleted file mode 100644 index 61f80e9000..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int8.c deleted file mode 100644 index 8c2369dcbf..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint16.c deleted file mode 100644 index 098c6df060..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint32.c deleted file mode 100644 index ff4d6aa33d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint64.c deleted file mode 100644 index cf63524874..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint8.c deleted file mode 100644 index 1d0c55433f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_fp64_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (double) x -#define GB_Z_TYPE double -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_FP64) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_fp64_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_fp64_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_bool.c deleted file mode 100644 index d445c4b3e8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int16_t) x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fc32.c deleted file mode 100644 index 7132c73473..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int16_t ((double) GB_crealf (x)) -#define GB_Z_TYPE int16_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fc64.c deleted file mode 100644 index bf24d504ae..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int16_t (GB_creal (x)) -#define GB_Z_TYPE int16_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fp32.c deleted file mode 100644 index 3335a45d61..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int16_t ((double) (x)) -#define GB_Z_TYPE int16_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fp64.c deleted file mode 100644 index f7a0f8bcc2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int16_t ((double) (x)) -#define GB_Z_TYPE int16_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int16.c deleted file mode 100644 index b8f05f077e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int16.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int32.c deleted file mode 100644 index fd42a48f51..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int16_t) x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int64.c deleted file mode 100644 index 291bc052a5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int16_t) x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int8.c deleted file mode 100644 index 8f32fc93bb..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int16_t) x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint16.c deleted file mode 100644 index 08bc282f4b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int16_t) x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint32.c deleted file mode 100644 index f775722760..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int16_t) x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint64.c deleted file mode 100644 index 02282deae8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int16_t) x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint8.c deleted file mode 100644 index 91e339e4cd..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int16_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int16_t) x -#define GB_Z_TYPE int16_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT16) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int16_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int16_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_bool.c deleted file mode 100644 index 3d115576b1..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int32_t) x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fc32.c deleted file mode 100644 index 90e313fe3d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int32_t ((double) GB_crealf (x)) -#define GB_Z_TYPE int32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fc64.c deleted file mode 100644 index 57313e3cdb..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int32_t (GB_creal (x)) -#define GB_Z_TYPE int32_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fp32.c deleted file mode 100644 index dd7b066419..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int32_t ((double) (x)) -#define GB_Z_TYPE int32_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fp64.c deleted file mode 100644 index fb3e7c69f1..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int32_t ((double) (x)) -#define GB_Z_TYPE int32_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int16.c deleted file mode 100644 index 60a29123ea..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int32_t) x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int32.c deleted file mode 100644 index 6753417ab2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int32.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int64.c deleted file mode 100644 index fe3066638b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int32_t) x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int8.c deleted file mode 100644 index 13d3243cfb..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int32_t) x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint16.c deleted file mode 100644 index c171d98b8a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int32_t) x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint32.c deleted file mode 100644 index f26847f5bd..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int32_t) x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint64.c deleted file mode 100644 index 782342dc50..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int32_t) x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint8.c deleted file mode 100644 index 2fe277205f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int32_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int32_t) x -#define GB_Z_TYPE int32_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT32) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int32_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int32_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_bool.c deleted file mode 100644 index 86df81b0bf..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int64_t) x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fc32.c deleted file mode 100644 index 808337c532..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int64_t ((double) GB_crealf (x)) -#define GB_Z_TYPE int64_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fc64.c deleted file mode 100644 index cac1e1dea6..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int64_t (GB_creal (x)) -#define GB_Z_TYPE int64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fp32.c deleted file mode 100644 index f038b7f0e6..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int64_t ((double) (x)) -#define GB_Z_TYPE int64_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fp64.c deleted file mode 100644 index 82ce509109..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int64_t ((double) (x)) -#define GB_Z_TYPE int64_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int16.c deleted file mode 100644 index 004db36c1e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int64_t) x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int32.c deleted file mode 100644 index 7273c45ebf..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int64_t) x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int64.c deleted file mode 100644 index 94d74d0b78..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int64.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int8.c deleted file mode 100644 index d8480c9f44..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int64_t) x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint16.c deleted file mode 100644 index 2a37c1293e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int64_t) x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint32.c deleted file mode 100644 index 28f04ab382..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int64_t) x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint64.c deleted file mode 100644 index 2790d3fc8a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int64_t) x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint8.c deleted file mode 100644 index 2cc472120d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int64_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int64_t) x -#define GB_Z_TYPE int64_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT64) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int64_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int64_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_bool.c deleted file mode 100644 index f79fdd2374..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int8_t) x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fc32.c deleted file mode 100644 index b4fdcdd723..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int8_t ((double) GB_crealf (x)) -#define GB_Z_TYPE int8_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fc64.c deleted file mode 100644 index 6bfb5e7089..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int8_t (GB_creal (x)) -#define GB_Z_TYPE int8_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fp32.c deleted file mode 100644 index 7446b8df18..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int8_t ((double) (x)) -#define GB_Z_TYPE int8_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fp64.c deleted file mode 100644 index e8521ff08a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_int8_t ((double) (x)) -#define GB_Z_TYPE int8_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int16.c deleted file mode 100644 index ee010096fb..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int8_t) x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int32.c deleted file mode 100644 index 7611d9428b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int8_t) x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int64.c deleted file mode 100644 index e6190da775..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int8_t) x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int8.c deleted file mode 100644 index 1a4d4d95e7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_int8.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint16.c deleted file mode 100644 index ef6b4eb054..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int8_t) x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint32.c deleted file mode 100644 index 69745d903a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int8_t) x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint64.c deleted file mode 100644 index 9daef850d8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int8_t) x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint8.c deleted file mode 100644 index b1b0f830c6..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_int8_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (int8_t) x -#define GB_Z_TYPE int8_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_INT8) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_int8_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_int8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_bool.c deleted file mode 100644 index 933bd0ca56..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint16_t) x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fc32.c deleted file mode 100644 index 948a567fd5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint16_t ((double) GB_crealf (x)) -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fc64.c deleted file mode 100644 index d71d8e37f0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint16_t (GB_creal (x)) -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fp32.c deleted file mode 100644 index 1f29ec4bb2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint16_t ((double) (x)) -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fp64.c deleted file mode 100644 index f33e9e1a83..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint16_t ((double) (x)) -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int16.c deleted file mode 100644 index 0219a235ae..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint16_t) x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int32.c deleted file mode 100644 index ee1f32cc1f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint16_t) x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int64.c deleted file mode 100644 index 512e9d8d33..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint16_t) x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int8.c deleted file mode 100644 index 320774dce6..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint16_t) x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint16.c deleted file mode 100644 index 13e4e37b64..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint16.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint32.c deleted file mode 100644 index 4467b8f130..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint16_t) x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint64.c deleted file mode 100644 index 15ce5a325b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint16_t) x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint8.c deleted file mode 100644 index 03f5e4f865..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint16_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint16_t) x -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT16) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint16_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint16_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_bool.c deleted file mode 100644 index 7d5b7e6aaf..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint32_t) x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fc32.c deleted file mode 100644 index 55e24b3513..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint32_t ((double) GB_crealf (x)) -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fc64.c deleted file mode 100644 index 7794722ea2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint32_t (GB_creal (x)) -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fp32.c deleted file mode 100644 index ea88cc1233..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint32_t ((double) (x)) -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fp64.c deleted file mode 100644 index 9679e52819..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint32_t ((double) (x)) -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int16.c deleted file mode 100644 index f87e933e51..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint32_t) x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int32.c deleted file mode 100644 index 5e447217ea..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint32_t) x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int64.c deleted file mode 100644 index 3287174603..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint32_t) x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int8.c deleted file mode 100644 index 9d27730616..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint32_t) x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint16.c deleted file mode 100644 index 1ab1b1c825..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint32_t) x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint32.c deleted file mode 100644 index fbc9395d6f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint32.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint64.c deleted file mode 100644 index d2813ef577..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint32_t) x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint8.c deleted file mode 100644 index cde28422d5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint32_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint32_t) x -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT32) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint32_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint32_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_bool.c deleted file mode 100644 index 2fd0bf902b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint64_t) x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fc32.c deleted file mode 100644 index 5117994de3..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint64_t ((double) GB_crealf (x)) -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fc64.c deleted file mode 100644 index 6217b6afbb..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint64_t (GB_creal (x)) -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fp32.c deleted file mode 100644 index 4f6bd090fd..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint64_t ((double) (x)) -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fp64.c deleted file mode 100644 index be21b30f31..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint64_t ((double) (x)) -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int16.c deleted file mode 100644 index 3149aef7d7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint64_t) x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int32.c deleted file mode 100644 index dd4c262693..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint64_t) x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int64.c deleted file mode 100644 index 4928348790..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint64_t) x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int8.c deleted file mode 100644 index bc51f54ed7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint64_t) x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint16.c deleted file mode 100644 index d8868d9fbe..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint64_t) x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint32.c deleted file mode 100644 index 3d6f8bfbd5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint64_t) x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint64.c deleted file mode 100644 index cb8f5d2b0b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint64.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint8.c deleted file mode 100644 index 86221d367a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint64_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint64_t) x -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT64) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint64_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint64_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_bool.c deleted file mode 100644 index ec7e7bc37b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint8_t) x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fc32.c deleted file mode 100644 index f34bb308a9..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint8_t ((double) GB_crealf (x)) -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fc64.c deleted file mode 100644 index 9cd055b7ba..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint8_t (GB_creal (x)) -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fp32.c deleted file mode 100644 index 609bf28e37..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint8_t ((double) (x)) -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fp64.c deleted file mode 100644 index e5bd6eab62..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cast_to_uint8_t ((double) (x)) -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int16.c deleted file mode 100644 index a8d040b372..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint8_t) x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int32.c deleted file mode 100644 index f822d67c1b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint8_t) x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int64.c deleted file mode 100644 index 2ed3ef5adb..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint8_t) x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int8.c deleted file mode 100644 index 7a8a8bbed7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint8_t) x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint16.c deleted file mode 100644 index 122d20bc87..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint8_t) x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint32.c deleted file mode 100644 index 32f05416ea..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint8_t) x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint64.c deleted file mode 100644 index 1f39b9e1bd..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (uint8_t) x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__identity_uint8_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint8.c deleted file mode 100644 index 4b3dc07bc4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__identity_uint8_uint8.c +++ /dev/null @@ -1,67 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = x -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_IDENTITY) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__identity_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__include.h b/GraphBLAS/Source/FactoryKernels/GB_unop__include.h deleted file mode 100644 index cef8329258..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__include.h +++ /dev/null @@ -1,7113 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop__include.h: definitions for GB_unop__*.c -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -// This file has been automatically generated from Generator/GB_unop.h -#include "GB_math.h" - - -GrB_Info GB (_unop_tran__identity_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_bool_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_bool_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int8_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int8_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int16_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int16_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int32_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int32_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_int64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_int64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint8_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint8_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint16_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint16_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint32_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint32_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_uint64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_uint64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp32_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp32_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fp64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc32_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc32_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__identity_fc64_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__identity_fc64_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_tran__identity_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_bool_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_int8_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_int16_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_int32_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_int64_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_uint8_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_uint16_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_uint32_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_uint64_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ainv_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ainv_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_bool_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_int8_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_int16_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_int32_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_int64_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_uint8_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_uint16_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_uint32_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_uint64_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_bool_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_int8_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_int16_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_int32_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_int64_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_uint8_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_uint16_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_uint32_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_uint64_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__minv_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__minv_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_bool_bool) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_int8_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_int16_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_int32_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_int64_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_uint8_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_uint16_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_uint32_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_uint64_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lnot_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lnot_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__bnot_int8_int8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__bnot_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__bnot_int16_int16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__bnot_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__bnot_int32_int32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__bnot_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__bnot_int64_int64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__bnot_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__bnot_uint8_uint8) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__bnot_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__bnot_uint16_uint16) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__bnot_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__bnot_uint32_uint32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__bnot_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__bnot_uint64_uint64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__bnot_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sqrt_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sqrt_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sqrt_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sqrt_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sqrt_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sqrt_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sqrt_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sqrt_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__exp_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__exp_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__exp_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__exp_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__exp_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__exp_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__exp_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__exp_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sin_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sin_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sin_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sin_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sin_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sin_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sin_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sin_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cos_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cos_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cos_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cos_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cos_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cos_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cos_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cos_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tan_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tan_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tan_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tan_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tan_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tan_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tan_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tan_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__asin_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__asin_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__asin_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__asin_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__asin_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__asin_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__asin_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__asin_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__acos_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__acos_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__acos_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__acos_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__acos_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__acos_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__acos_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__acos_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__atan_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__atan_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__atan_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__atan_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__atan_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__atan_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__atan_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__atan_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sinh_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sinh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sinh_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sinh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sinh_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sinh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__sinh_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__sinh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cosh_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cosh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cosh_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cosh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cosh_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cosh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cosh_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cosh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tanh_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tanh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tanh_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tanh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tanh_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tanh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tanh_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tanh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__asinh_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__asinh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__asinh_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__asinh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__asinh_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__asinh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__asinh_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__asinh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__acosh_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__acosh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__acosh_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__acosh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__acosh_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__acosh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__acosh_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__acosh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__atanh_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__atanh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__atanh_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__atanh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__atanh_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__atanh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__atanh_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__atanh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__signum_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__signum_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__signum_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__signum_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__signum_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__signum_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__signum_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__signum_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ceil_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ceil_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ceil_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ceil_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ceil_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ceil_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__ceil_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__ceil_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__floor_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__floor_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__floor_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__floor_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__floor_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__floor_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__floor_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__floor_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__round_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__round_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__round_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__round_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__round_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__round_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__round_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__round_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__trunc_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__trunc_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__trunc_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__trunc_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__trunc_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__trunc_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__trunc_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__trunc_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__exp2_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__exp2_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__exp2_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__exp2_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__exp2_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__exp2_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__exp2_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__exp2_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__expm1_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__expm1_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__expm1_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__expm1_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__expm1_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__expm1_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__expm1_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__expm1_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log10_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log10_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log10_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log10_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log10_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log10_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log10_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log10_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log1p_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log1p_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log1p_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log1p_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log1p_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log1p_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log1p_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log1p_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log2_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log2_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log2_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log2_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log2_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log2_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__log2_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__log2_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__frexpx_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__frexpx_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__frexpx_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__frexpx_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__frexpe_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__frexpe_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__frexpe_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__frexpe_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lgamma_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lgamma_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__lgamma_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__lgamma_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tgamma_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tgamma_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__tgamma_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__tgamma_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__erf_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__erf_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__erf_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__erf_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__erfc_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__erfc_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__erfc_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__erfc_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cbrt_fp32_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cbrt_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cbrt_fp64_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cbrt_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__conj_fc32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__conj_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__conj_fc64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__conj_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_fp32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__abs_fp64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__abs_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__creal_fp32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__creal_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__creal_fp64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__creal_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cimag_fp32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cimag_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__cimag_fp64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__cimag_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__carg_fp32_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__carg_fp32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__carg_fp64_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__carg_fp64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isinf_bool_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isinf_bool_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isinf_bool_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isinf_bool_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isinf_bool_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isinf_bool_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isinf_bool_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isinf_bool_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isnan_bool_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isnan_bool_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isnan_bool_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isnan_bool_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isnan_bool_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isnan_bool_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isnan_bool_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isnan_bool_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isfinite_bool_fp32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isfinite_bool_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isfinite_bool_fp64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isfinite_bool_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isfinite_bool_fc32) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isfinite_bool_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - - -GrB_Info GB (_unop_apply__isfinite_bool_fc64) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; - -GrB_Info GB (_unop_tran__isfinite_bool_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fc32.c deleted file mode 100644 index 34aa5e7a0c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cisfinitef (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISFINITE) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isfinite_bool_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isfinite_bool_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fc64.c deleted file mode 100644 index af0572d37b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cisfinite (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISFINITE) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isfinite_bool_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isfinite_bool_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fp32.c deleted file mode 100644 index 313b0d3439..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = isfinite (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISFINITE) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isfinite_bool_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isfinite_bool_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fp64.c deleted file mode 100644 index 228391a970..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isfinite_bool_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = isfinite (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISFINITE) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isfinite_bool_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isfinite_bool_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fc32.c deleted file mode 100644 index 7bd210dec5..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cisinff (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISINF) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isinf_bool_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isinf_bool_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fc64.c deleted file mode 100644 index 3d6bc8c8e7..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cisinf (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISINF) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isinf_bool_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isinf_bool_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fp32.c deleted file mode 100644 index ea6ad99af9..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = isinf (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISINF) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isinf_bool_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isinf_bool_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fp64.c deleted file mode 100644 index 5c4cb5392c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isinf_bool_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = isinf (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISINF) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isinf_bool_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isinf_bool_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fc32.c deleted file mode 100644 index 87e78d95b3..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cisnanf (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISNAN) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isnan_bool_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isnan_bool_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fc64.c deleted file mode 100644 index b8784291b0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cisnan (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISNAN) || defined(GxB_NO_BOOL) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isnan_bool_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isnan_bool_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fp32.c deleted file mode 100644 index 3070e1bf3e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = isnan (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISNAN) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isnan_bool_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isnan_bool_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fp64.c deleted file mode 100644 index 65f0fd0c94..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__isnan_bool_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = isnan (x) -#define GB_Z_TYPE bool -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ISNAN) || defined(GxB_NO_BOOL) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__isnan_bool_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__isnan_bool_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lgamma_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lgamma_fp32_fp32.c deleted file mode 100644 index 440ce2e62b..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lgamma_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = lgammaf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LGAMMA) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lgamma_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lgamma_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lgamma_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lgamma_fp64_fp64.c deleted file mode 100644 index 7383197588..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lgamma_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = lgamma (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LGAMMA) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lgamma_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lgamma_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_bool_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_bool_bool.c deleted file mode 100644 index f61965b3ed..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_bool_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !x -#define GB_Z_TYPE bool -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) bool aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_bool_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_fp32_fp32.c deleted file mode 100644 index 1165b6cf72..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_fp64_fp64.c deleted file mode 100644 index 5dd63bdc45..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int16_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int16_int16.c deleted file mode 100644 index f1f0476238..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int16_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_int16_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int32_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int32_int32.c deleted file mode 100644 index ef48b86150..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int32_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_int32_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int64_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int64_int64.c deleted file mode 100644 index 82df8497ef..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int64_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_int64_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int8_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int8_int8.c deleted file mode 100644 index fb4f6e41ea..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_int8_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_int8_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint16_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint16_uint16.c deleted file mode 100644 index 04b894b813..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint16_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_uint16_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint32_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint32_uint32.c deleted file mode 100644 index 1f6c2f0e6c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint32_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_uint32_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint64_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint64_uint64.c deleted file mode 100644 index 526e636b41..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint64_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_uint64_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint8_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint8_uint8.c deleted file mode 100644 index 8b3e96a56f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__lnot_uint8_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = !(x != 0) -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LNOT) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__lnot_uint8_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__lnot_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fc32_fc32.c deleted file mode 100644 index 5b81dd7296..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_clog10f (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG10) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log10_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log10_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fc64_fc64.c deleted file mode 100644 index 433a99fb5f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_clog10 (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG10) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log10_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log10_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fp32_fp32.c deleted file mode 100644 index 5ccc77e3a0..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = log10f (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG10) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log10_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log10_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fp64_fp64.c deleted file mode 100644 index ff35026a59..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log10_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = log10 (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG10) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log10_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log10_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fc32_fc32.c deleted file mode 100644 index 871e848f76..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_clog1pf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG1P) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log1p_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log1p_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fc64_fc64.c deleted file mode 100644 index bc866c4f37..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_clog1p (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG1P) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log1p_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log1p_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fp32_fp32.c deleted file mode 100644 index 58830b5c2d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = log1pf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG1P) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log1p_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log1p_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fp64_fp64.c deleted file mode 100644 index 25b6b97bec..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log1p_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = log1p (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG1P) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log1p_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log1p_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fc32_fc32.c deleted file mode 100644 index 80e356ca81..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_clog2f (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG2) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log2_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log2_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fc64_fc64.c deleted file mode 100644 index f3ca2a23ab..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_clog2 (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG2) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log2_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log2_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fp32_fp32.c deleted file mode 100644 index 1b04f1149f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = log2f (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG2) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log2_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log2_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fp64_fp64.c deleted file mode 100644 index 6eea8d3d07..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log2_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = log2 (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG2) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log2_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log2_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log_fc32_fc32.c deleted file mode 100644 index 7aac8299d4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_clogf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log_fc64_fc64.c deleted file mode 100644 index 5dde8c764d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_clog (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log_fp32_fp32.c deleted file mode 100644 index 5aa4f800e3..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = logf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__log_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__log_fp64_fp64.c deleted file mode 100644 index 09d145bb42..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__log_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = log (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_LOG) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__log_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__log_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_bool_bool.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_bool_bool.c deleted file mode 100644 index a9c4a90081..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_bool_bool.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = true -#define GB_Z_TYPE bool -#define GB_X_TYPE bool - -// A matrix -#define GB_A_TYPE bool -#define GB_DECLAREA(aij) -#define GB_GETA(aij,Ax,pA,A_iso) - -// C matrix -#define GB_C_TYPE bool - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_BOOL)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_bool_bool) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_bool_bool) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fc32_fc32.c deleted file mode 100644 index ca693ca2bc..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_FC32_div (GxB_CMPLXF (1,0), x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fc64_fc64.c deleted file mode 100644 index c8fc54b9c3..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_FC64_div (GxB_CMPLX (1,0), x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fp32_fp32.c deleted file mode 100644 index 9e336cdc16..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = (1.0F)/x -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fp64_fp64.c deleted file mode 100644 index 53302b9375..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = 1./x -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int16_int16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int16_int16.c deleted file mode 100644 index 52aa5f632e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int16_int16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_idiv_int16 (1, x) -#define GB_Z_TYPE int16_t -#define GB_X_TYPE int16_t - -// A matrix -#define GB_A_TYPE int16_t -#define GB_DECLAREA(aij) int16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_INT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_int16_int16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_int16_int16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int32_int32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int32_int32.c deleted file mode 100644 index 6b2dcb3c79..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int32_int32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_idiv_int32 (1, x) -#define GB_Z_TYPE int32_t -#define GB_X_TYPE int32_t - -// A matrix -#define GB_A_TYPE int32_t -#define GB_DECLAREA(aij) int32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_INT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_int32_int32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_int32_int32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int64_int64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int64_int64.c deleted file mode 100644 index da98039d43..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int64_int64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_idiv_int64 (1, x) -#define GB_Z_TYPE int64_t -#define GB_X_TYPE int64_t - -// A matrix -#define GB_A_TYPE int64_t -#define GB_DECLAREA(aij) int64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_INT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_int64_int64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_int64_int64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int8_int8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int8_int8.c deleted file mode 100644 index 27e2bcb738..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_int8_int8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_idiv_int8 (1, x) -#define GB_Z_TYPE int8_t -#define GB_X_TYPE int8_t - -// A matrix -#define GB_A_TYPE int8_t -#define GB_DECLAREA(aij) int8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE int8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_INT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_int8_int8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_int8_int8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint16_uint16.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint16_uint16.c deleted file mode 100644 index 3158079a89..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint16_uint16.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_idiv_uint16 (1, x) -#define GB_Z_TYPE uint16_t -#define GB_X_TYPE uint16_t - -// A matrix -#define GB_A_TYPE uint16_t -#define GB_DECLAREA(aij) uint16_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint16_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_UINT16)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_uint16_uint16) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_uint16_uint16) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint32_uint32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint32_uint32.c deleted file mode 100644 index 0551a7b932..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint32_uint32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_idiv_uint32 (1, x) -#define GB_Z_TYPE uint32_t -#define GB_X_TYPE uint32_t - -// A matrix -#define GB_A_TYPE uint32_t -#define GB_DECLAREA(aij) uint32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_UINT32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_uint32_uint32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_uint32_uint32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint64_uint64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint64_uint64.c deleted file mode 100644 index 5b02f77e73..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint64_uint64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_idiv_uint64 (1, x) -#define GB_Z_TYPE uint64_t -#define GB_X_TYPE uint64_t - -// A matrix -#define GB_A_TYPE uint64_t -#define GB_DECLAREA(aij) uint64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_UINT64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_uint64_uint64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_uint64_uint64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint8_uint8.c b/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint8_uint8.c deleted file mode 100644 index ca6b1aa812..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__minv_uint8_uint8.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_idiv_uint8 (1, x) -#define GB_Z_TYPE uint8_t -#define GB_X_TYPE uint8_t - -// A matrix -#define GB_A_TYPE uint8_t -#define GB_DECLAREA(aij) uint8_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE uint8_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_MINV) || defined(GxB_NO_UINT8)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__minv_uint8_uint8) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__minv_uint8_uint8) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__round_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__round_fc32_fc32.c deleted file mode 100644 index 2f3b830b15..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__round_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_croundf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ROUND) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__round_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__round_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__round_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__round_fc64_fc64.c deleted file mode 100644 index f465b17fee..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__round_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_cround (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ROUND) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__round_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__round_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__round_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__round_fp32_fp32.c deleted file mode 100644 index 2a8370713d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__round_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = roundf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ROUND) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__round_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__round_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__round_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__round_fp64_fp64.c deleted file mode 100644 index 9eb763fbe8..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__round_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = round (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_ROUND) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__round_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__round_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fc32_fc32.c deleted file mode 100644 index 058a1dbf5e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_csignumf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SIGNUM) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__signum_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__signum_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fc64_fc64.c deleted file mode 100644 index a64a910972..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_csignum (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SIGNUM) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__signum_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__signum_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fp32_fp32.c deleted file mode 100644 index a1fd84d344..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_signumf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SIGNUM) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__signum_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__signum_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fp64_fp64.c deleted file mode 100644 index 8f625c4288..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__signum_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_signum (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SIGNUM) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__signum_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__signum_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fc32_fc32.c deleted file mode 100644 index 06ed030e17..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_csinf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SIN) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sin_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sin_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fc64_fc64.c deleted file mode 100644 index 59fcd934b6..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_csin (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SIN) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sin_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sin_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fp32_fp32.c deleted file mode 100644 index d9c6d9446f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = sinf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SIN) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sin_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sin_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fp64_fp64.c deleted file mode 100644 index 9accf567b4..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sin_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = sin (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SIN) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sin_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sin_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fc32_fc32.c deleted file mode 100644 index 59d0fd895d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_csinhf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SINH) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sinh_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sinh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fc64_fc64.c deleted file mode 100644 index 0b88910959..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_csinh (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SINH) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sinh_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sinh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fp32_fp32.c deleted file mode 100644 index 257f9e11c2..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = sinhf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SINH) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sinh_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sinh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fp64_fp64.c deleted file mode 100644 index 6c97ce8f3c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sinh_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = sinh (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SINH) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sinh_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sinh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fc32_fc32.c deleted file mode 100644 index 0583c3898a..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_csqrtf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SQRT) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sqrt_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sqrt_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fc64_fc64.c deleted file mode 100644 index c8570d2b0c..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_csqrt (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SQRT) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sqrt_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sqrt_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fp32_fp32.c deleted file mode 100644 index 14d5fd69be..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = sqrtf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SQRT) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sqrt_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sqrt_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fp64_fp64.c deleted file mode 100644 index f24a7f3686..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__sqrt_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = sqrt (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_SQRT) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__sqrt_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__sqrt_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fc32_fc32.c deleted file mode 100644 index 4e6167e939..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ctanf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TAN) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tan_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tan_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fc64_fc64.c deleted file mode 100644 index cf5c3076be..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ctan (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TAN) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tan_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tan_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fp32_fp32.c deleted file mode 100644 index 89bd2d5fbc..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = tanf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TAN) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tan_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tan_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fp64_fp64.c deleted file mode 100644 index 89367ede82..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tan_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = tan (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TAN) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tan_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tan_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fc32_fc32.c deleted file mode 100644 index 13cdaea646..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ctanhf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TANH) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tanh_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tanh_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fc64_fc64.c deleted file mode 100644 index 8ee548b7ab..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ctanh (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TANH) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tanh_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tanh_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fp32_fp32.c deleted file mode 100644 index ef27d9624d..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = tanhf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TANH) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tanh_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tanh_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fp64_fp64.c deleted file mode 100644 index 9d5b78117f..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tanh_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = tanh (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TANH) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tanh_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tanh_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tgamma_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tgamma_fp32_fp32.c deleted file mode 100644 index 0c67abd250..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tgamma_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = tgammaf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TGAMMA) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tgamma_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tgamma_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__tgamma_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__tgamma_fp64_fp64.c deleted file mode 100644 index 0eb4e78d85..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__tgamma_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = tgamma (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TGAMMA) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__tgamma_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__tgamma_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fc32_fc32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fc32_fc32.c deleted file mode 100644 index 7c5e53f44e..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fc32_fc32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ctruncf (x) -#define GB_Z_TYPE GxB_FC32_t -#define GB_X_TYPE GxB_FC32_t - -// A matrix -#define GB_A_TYPE GxB_FC32_t -#define GB_DECLAREA(aij) GxB_FC32_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC32_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TRUNC) || defined(GxB_NO_FC32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__trunc_fc32_fc32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__trunc_fc32_fc32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fc64_fc64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fc64_fc64.c deleted file mode 100644 index 2ab93cedaa..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fc64_fc64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = GB_ctrunc (x) -#define GB_Z_TYPE GxB_FC64_t -#define GB_X_TYPE GxB_FC64_t - -// A matrix -#define GB_A_TYPE GxB_FC64_t -#define GB_DECLAREA(aij) GxB_FC64_t aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE GxB_FC64_t - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TRUNC) || defined(GxB_NO_FC64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__trunc_fc64_fc64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__trunc_fc64_fc64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fp32_fp32.c b/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fp32_fp32.c deleted file mode 100644 index dabb947cce..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fp32_fp32.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = truncf (x) -#define GB_Z_TYPE float -#define GB_X_TYPE float - -// A matrix -#define GB_A_TYPE float -#define GB_DECLAREA(aij) float aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE float - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TRUNC) || defined(GxB_NO_FP32)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__trunc_fp32_fp32) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__trunc_fp32_fp32) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fp64_fp64.c b/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fp64_fp64.c deleted file mode 100644 index bddfcec338..0000000000 --- a/GraphBLAS/Source/FactoryKernels/GB_unop__trunc_fp64_fp64.c +++ /dev/null @@ -1,88 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -#define GB_UNARYOP(z,x) z = trunc (x) -#define GB_Z_TYPE double -#define GB_X_TYPE double - -// A matrix -#define GB_A_TYPE double -#define GB_DECLAREA(aij) double aij -#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA] - -// C matrix -#define GB_C_TYPE double - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -#if (defined(GxB_NO_TRUNC) || defined(GxB_NO_FP64)) -#define GB_DISABLE 1 -#else -#define GB_DISABLE 0 -#endif - -#include "GB_apply_shared_definitions.h" - -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply__trunc_fp64_fp64) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran__trunc_fp64_fp64) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/GB.h b/GraphBLAS/Source/GB.h index 1ee458b44f..1cfe63524a 100644 --- a/GraphBLAS/Source/GB.h +++ b/GraphBLAS/Source/GB.h @@ -10,52 +10,49 @@ #ifndef GB_H #define GB_H -#include "GB_Template.h" -#include "GB_Global.h" -#include "GB_printf.h" -#include "GB_assert.h" +#include "include/GB_include.h" +#include "global/GB_Global.h" +#include "print/GB_printf.h" +#include "ok/GB_assert.h" #if defined ( GRAPHBLAS_HAS_CUDA ) #include "rmm_wrap.h" #endif -#include "GB_static_header.h" -#include "GB_positional.h" -#include "GB_bitwise.h" -#include "GB_check.h" -#include "GB_nnz.h" -#include "GB_omp.h" -#include "GB_memory.h" -#include "GB_iso.h" -#include "GB_Pending_n.h" -#include "GB_nvals.h" -#include "GB_aliased.h" -#include "GB_new.h" -#include "GB_clear.h" -#include "GB_resize.h" -#include "GB_dup.h" -#include "GB_code_compatible.h" -#include "GB_compatible.h" -#include "GB_task_methods.h" -#include "GB_transplant.h" -#include "GB_type.h" -#include "GB_slice.h" -#include "GB_uint64_multiply.h" -#include "GB_int64_multiply.h" -#include "GB_size_t_multiply.h" -#include "GB_extractTuples.h" -#include "GB_cumsum.h" -#include "GB_Descriptor_get.h" -#include "GB_Element.h" -#include "GB_op.h" -#include "GB_hyper.h" -#include "GB_ok.h" -#include "GB_cast.h" -#include "GB_wait.h" -#include "GB_convert.h" -#include "GB_where.h" -#include "GB_Context.h" -#include "GB_cuda_gateway.h" -#include "GB_saxpy3task_struct.h" -#include "GB_callbacks.h" -#include "GB_factory.h" +#include "matrix/GB_static_header.h" +#include "positional/GB_positional.h" +#include "math/GB_bitwise.h" +#include "print/GB_check.h" +#include "nvals/GB_nnz.h" +#include "omp/GB_omp.h" +#include "memory/GB_memory.h" +#include "iso/GB_iso.h" +#include "pending/GB_Pending_n.h" +#include "nvals/GB_nvals.h" +#include "aliased/GB_aliased.h" +#include "matrix/GB_new.h" +#include "clear/GB_clear.h" +#include "dup/GB_dup.h" +#include "compatible/GB_code_compatible.h" +#include "compatible/GB_compatible.h" +#include "slice/GB_task_methods.h" +#include "transplant/GB_transplant.h" +#include "type/GB_type.h" +#include "slice/GB_slice.h" +#include "math/GB_uint64_multiply.h" +#include "math/GB_int64_multiply.h" +#include "math/GB_size_t_multiply.h" +#include "cumsum/GB_cumsum.h" +#include "get_set/GB_Descriptor_get.h" +#include "element/GB_Element.h" +#include "op/GB_op.h" +#include "hyper/GB_hyper.h" +#include "ok/GB_ok.h" +#include "cast/GB_cast.h" +#include "wait/GB_wait.h" +#include "convert/GB_convert.h" +#include "werk/GB_where.h" +#include "context/GB_Context.h" +#include "gateway/GB_cuda_gateway.h" +#include "callback/GB_callbacks.h" +#include "helper/GB_factory.h" #endif diff --git a/GraphBLAS/Source/GB_AxB_kernels.h b/GraphBLAS/Source/GB_AxB_kernels.h deleted file mode 100644 index eb898dbe35..0000000000 --- a/GraphBLAS/Source/GB_AxB_kernels.h +++ /dev/null @@ -1,14 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_AxB_kernels.h: include files for FactoryKernels -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_sort.h" -#include "GB_AxB_saxpy.h" -#include "GB_unused.h" -#include "GB_bitmap_assign_methods.h" - diff --git a/GraphBLAS/Source/GB_apply_op.c b/GraphBLAS/Source/GB_apply_op.c deleted file mode 100644 index 0af3cb9b8a..0000000000 --- a/GraphBLAS/Source/GB_apply_op.c +++ /dev/null @@ -1,710 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_apply_op: typecast and apply a unary/binary/idxunop operator to an array -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// JIT: done, but could extend for positional ops. - -// Cx = op (A) - -// Cx and A->x may be aliased. - -// This function is CSR/CSC agnostic. For positional ops, A is treated as if -// it is in CSC format. The caller has already modified the op if A is in CSR -// format. - -#include "GB_apply.h" -#include "GB_binop.h" -#include "GB_ek_slice.h" -#include "GB_unused.h" -#include "GB_stringify.h" -#ifndef GBCOMPACT -#include "GB_unop__include.h" -#include "GB_ew__include.h" -#endif - -#define GB_FREE_ALL \ -{ \ - GB_WERK_POP (A_ek_slicing, int64_t) ; \ -} - -GrB_Info GB_apply_op // apply a unary op, idxunop, or binop, Cx = op (A) -( - GB_void *Cx, // output array - const GrB_Type ctype, // type of C - const GB_iso_code C_code_iso, // C non-iso, or code to compute C iso value - const GB_Operator op, // unary/index-unary/binop to apply - const GrB_Scalar scalar, // scalar to bind to binary operator - bool binop_bind1st, // if true, C=binop(s,A), else C=binop(A,s) - bool flipij, // if true, flip i,j for user idxunop - const GrB_Matrix A, // input matrix - GB_Werk Werk -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GrB_Info info ; - ASSERT (Cx != NULL) ; - ASSERT_MATRIX_OK (A, "A input for GB_apply_op", GB0) ; - ASSERT (GB_JUMBLED_OK (A)) ; // A can be jumbled - GB_WERK_DECLARE (A_ek_slicing, int64_t) ; - ASSERT (GB_IMPLIES (op != NULL, ctype == op->ztype)) ; - ASSERT_SCALAR_OK_OR_NULL (scalar, "scalar for GB_apply_op", GB0) ; - - //-------------------------------------------------------------------------- - // get A - //-------------------------------------------------------------------------- - - // A->x is not const since the operator might be applied in-place, if - // C is aliased to C. - - GB_void *Ax = (GB_void *) A->x ; // A->x has type A->type - const int8_t *Ab = A->b ; // only if A is bitmap - const GrB_Type Atype = A->type ; // type of A->x - const int64_t anz = GB_nnz_held (A) ; // size of A->x and Cx - - //-------------------------------------------------------------------------- - // determine the maximum number of threads to use - //-------------------------------------------------------------------------- - - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - - //-------------------------------------------------------------------------- - // get the operator - //-------------------------------------------------------------------------- - - GB_Opcode opcode ; - bool op_is_unop = false ; - bool op_is_binop = false ; - if (op != NULL) - { - opcode = op->opcode ; - op_is_unop = GB_IS_UNARYOP_CODE (opcode) ; - op_is_binop = GB_IS_BINARYOP_CODE (opcode) ; - } - else - { - // C is iso, with no operator to apply; just call GB_unop_iso below. - ASSERT (C_code_iso == GB_ISO_1 || // C iso value is 1 - C_code_iso == GB_ISO_S || // C iso value is the scalar - C_code_iso == GB_ISO_A) ; // C iso value is the iso value of A - opcode = GB_NOP_code ; - } - - //-------------------------------------------------------------------------- - // determine number of threads to use and slice the A matrix if needed - //-------------------------------------------------------------------------- - - int64_t anvec = A->nvec ; - int A_ntasks = 0 ; - int A_nthreads = GB_nthreads (anz, chunk, nthreads_max) ; - - info = GrB_NO_VALUE ; - bool depends_on_j = (opcode == GB_USER_idxunop_code) ; - int64_t thunk = 0 ; - - if (GB_OPCODE_IS_POSITIONAL (opcode)) - { - thunk = GB_positional_offset (opcode, scalar, &depends_on_j) ; - } - - if (depends_on_j) - { - // slice the entries for each task - GB_SLICE_MATRIX (A, 32) ; - } - - //-------------------------------------------------------------------------- - // apply the operator - //-------------------------------------------------------------------------- - - if (GB_OPCODE_IS_POSITIONAL (opcode)) - { - - //---------------------------------------------------------------------- - // via the positional kernel - //---------------------------------------------------------------------- - - bool is64 = (op->ztype == GrB_INT64) ; - bool is32 = (op->ztype == GrB_INT32) ; - ASSERT_OP_OK (op, "positional unop/idxunop/binop: GB_apply_op", GB0) ; - - // get A and C - const int64_t *restrict Ah = A->h ; - const int64_t *restrict Ap = A->p ; - const int64_t *restrict Ai = A->i ; - int64_t avlen = A->vlen ; - - //---------------------------------------------------------------------- - // Cx = positional_op (A) - //---------------------------------------------------------------------- - - if (is64) - { - - //------------------------------------------------------------------ - // int64 Cx = positional_op (A) - //------------------------------------------------------------------ - - int64_t *restrict Cz = (int64_t *) Cx ; - switch (opcode) - { - - case GB_POSITIONI_unop_code : // z = position_i(A(i,j)) == i - case GB_POSITIONI1_unop_code : // z = position_i1(A(i,j)) == i+1 - case GB_FIRSTI_binop_code : // z = first_i(A(i,j),y) == i - case GB_FIRSTI1_binop_code : // z = first_i1(A(i,j),y) == i+1 - case GB_SECONDI_binop_code : // z = second_i(x,A(i,j)) == i - case GB_SECONDI1_binop_code : // z = second_i1(x,A(i,j)) == i+1 - case GB_ROWINDEX_idxunop_code : // z = i+thunk - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (i + thunk) ; - #include "GB_apply_unop_ip.c" - break ; - - case GB_POSITIONJ_unop_code : // z = position_j(A(i,j)) == j - case GB_POSITIONJ1_unop_code : // z = position_j1(A(i,j)) == j+1 - case GB_FIRSTJ_binop_code : // z = first_j(A(i,j),y) == j - case GB_FIRSTJ1_binop_code : // z = first_j1(A(i,j),y) == j+1 - case GB_SECONDJ_binop_code : // z = second_j(x,A(i,j)) == j - case GB_SECONDJ1_binop_code : // z = second_j1(x,A(i,j)) == j+1 - case GB_COLINDEX_idxunop_code : // z = j+thunk - #define GB_APPLY_OP(p) \ - Cz [p] = (j + thunk) ; - #include "GB_apply_unop_ijp.c" - break ; - - case GB_DIAGINDEX_idxunop_code : // z = (j-(i+thunk) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (j - (i+thunk)) ; - #include "GB_apply_unop_ijp.c" - break ; - - case GB_FLIPDIAGINDEX_idxunop_code : // z = (i-(j+thunk) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (i - (j+thunk)) ; - #include "GB_apply_unop_ijp.c" - break ; - - default: ; - } - - } - else if (is32) - { - - //------------------------------------------------------------------ - // int32 Cx = positional_op (A) - //------------------------------------------------------------------ - - int32_t *restrict Cz = (int32_t *) Cx ; - switch (opcode) - { - - case GB_POSITIONI_unop_code : // z = position_i(A(i,j)) == i - case GB_POSITIONI1_unop_code : // z = position_i1(A(i,j)) == i+1 - case GB_FIRSTI_binop_code : // z = first_i(A(i,j),y) == i - case GB_FIRSTI1_binop_code : // z = first_i1(A(i,j),y) == i+1 - case GB_SECONDI_binop_code : // z = second_i(x,A(i,j)) == i - case GB_SECONDI1_binop_code : // z = second_i1(x,A(i,j)) == i+1 - case GB_ROWINDEX_idxunop_code : // z = i+thunk - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (int32_t) (i + thunk) ; - #include "GB_apply_unop_ip.c" - break ; - - case GB_POSITIONJ_unop_code : // z = position_j(A(i,j)) == j - case GB_POSITIONJ1_unop_code : // z = position_j1(A(i,j)) == j+1 - case GB_FIRSTJ_binop_code : // z = first_j(A(i,j),y) == j - case GB_FIRSTJ1_binop_code : // z = first_j1(A(i,j),y) == j+1 - case GB_SECONDJ_binop_code : // z = second_j(x,A(i,j)) == j - case GB_SECONDJ1_binop_code : // z = second_j1(x,A(i,j)) == j+1 - case GB_COLINDEX_idxunop_code : // z = j+thunk - #define GB_APPLY_OP(p) \ - Cz [p] = (int32_t) (j + thunk) ; - #include "GB_apply_unop_ijp.c" - break ; - - case GB_DIAGINDEX_idxunop_code : // z = (j-(i+thunk) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (int32_t) (j - (i+thunk)) ; - #include "GB_apply_unop_ijp.c" - break ; - - case GB_FLIPDIAGINDEX_idxunop_code : // z = (i-(j+thunk) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (int32_t) (i - (j+thunk)) ; - #include "GB_apply_unop_ijp.c" - break ; - - default: ; - } - - } - else - { - - //------------------------------------------------------------------ - // bool Cx = positional_op (A) - //------------------------------------------------------------------ - - ASSERT (op->ztype == GrB_BOOL) ; - bool *restrict Cz = (bool *) Cx ; - switch (opcode) - { - - case GB_TRIL_idxunop_code : // z = (j <= (i+thunk)) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (j <= (i + thunk)) ; - #include "GB_apply_unop_ijp.c" - break ; ; - - case GB_TRIU_idxunop_code : // z = (j >= (i+thunk)) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (j >= (i + thunk)) ; - #include "GB_apply_unop_ijp.c" - break ; ; - - case GB_DIAG_idxunop_code : // z = (j == (i+thunk)) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (j == (i + thunk)) ; - #include "GB_apply_unop_ijp.c" - break ; ; - - case GB_OFFDIAG_idxunop_code : // z = (j != (i+thunk)) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (j != (i + thunk)) ; - #include "GB_apply_unop_ijp.c" - break ; ; - - case GB_COLLE_idxunop_code : // z = (j <= thunk) - #define GB_APPLY_OP(p) \ - Cz [p] = (j <= thunk) ; - #include "GB_apply_unop_ijp.c" - break ; ; - - case GB_COLGT_idxunop_code : // z = (j > thunk) - #define GB_APPLY_OP(p) \ - Cz [p] = (j > thunk) ; - #include "GB_apply_unop_ijp.c" - break ; ; - - case GB_ROWLE_idxunop_code : // z = (i <= thunk) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (i <= thunk) ; - #include "GB_apply_unop_ip.c" - break ; ; - - case GB_ROWGT_idxunop_code : // z = (i > thunk) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - Cz [p] = (i > thunk) ; - #include "GB_apply_unop_ip.c" - break ; ; - - default: ; - } - } - - info = GrB_SUCCESS ; - - } - else if (C_code_iso != GB_NON_ISO) - { - - //---------------------------------------------------------------------- - // via the iso kernel - //---------------------------------------------------------------------- - - // if C is iso, this function takes O(1) time - GBURBLE ("(iso apply) ") ; - ASSERT_MATRIX_OK (A, "A passing to GB_unop_iso", GB0) ; - if (anz > 0) - { - // Cx [0] = unop (A), binop (scalar,A), or binop (A,scalar) - GB_unop_iso (Cx, ctype, C_code_iso, op, A, scalar) ; - } - - info = GrB_SUCCESS ; - - } - else if (op_is_unop) - { - - //---------------------------------------------------------------------- - // unop via the factory kernel - //---------------------------------------------------------------------- - - ASSERT_OP_OK (op, "unop for GB_apply_op", GB0) ; - ASSERT (!A->iso) ; - - // determine number of threads to use - #ifndef GBCOMPACT - GB_IF_FACTORY_KERNELS_ENABLED - { - if (Atype == op->xtype || opcode == GB_IDENTITY_unop_code) - { - - // The switch factory is used if the op is IDENTITY, or if no - // typecasting. IDENTITY operator can do arbitrary typecasting - // (it is not used if no typecasting is done). - - //--------------------------------------------------------------- - // define the worker for the switch factory - //--------------------------------------------------------------- - - #define GB_unop_apply(unop,zname,aname) \ - GB (_unop_apply_ ## unop ## zname ## aname) - - #define GB_WORKER(unop,zname,ztype,aname,atype) \ - { \ - info = GB_unop_apply (unop,zname,aname) (Cx, Ax, Ab, \ - anz, A_nthreads) ; \ - } \ - break ; - - //--------------------------------------------------------------- - // launch the switch factory - //--------------------------------------------------------------- - - #include "GB_unop_factory.c" - } - } - #endif - - //---------------------------------------------------------------------- - // via the JIT or PreJIT kernel - //---------------------------------------------------------------------- - - if (info == GrB_NO_VALUE) - { - info = GB_apply_unop_jit (Cx, ctype, op, flipij, A, - NULL, NULL, 0, A_nthreads) ; - } - - //---------------------------------------------------------------------- - // via the generic kernel - //---------------------------------------------------------------------- - - if (info == GrB_NO_VALUE) - { - GB_BURBLE_N (anz, "(generic unop apply: %s) ", op->name) ; - - size_t asize = Atype->size ; - size_t zsize = op->ztype->size ; - size_t xsize = op->xtype->size ; - GB_Type_code acode = Atype->code ; - GB_Type_code xcode = op->xtype->code ; - GB_cast_function cast_A_to_X = GB_cast_factory (xcode, acode) ; - GxB_unary_function fop = op->unop_function ; - - #define GB_APPLY_OP(p) \ - /* xwork = (xtype) Ax [p] */ \ - GB_void xwork [GB_VLA(xsize)] ; \ - cast_A_to_X (xwork, Ax +(p)*asize, asize) ; \ - /* Cx [p] = fop (xwork) */ \ - fop (Cx +(p*zsize), xwork) ; - - #include "GB_apply_unop_ip.c" - - info = GrB_SUCCESS ; - } - - } - else if (op_is_binop) - { - - //---------------------------------------------------------------------- - // apply a binary operator (bound to a scalar) - //---------------------------------------------------------------------- - - ASSERT_OP_OK (op, "standard binop for GB_apply_op", GB0) ; - ASSERT_SCALAR_OK (scalar, "scalar for GB_apply_op", GB0) ; - - GB_Type_code xcode, ycode, zcode ; - ASSERT (opcode != GB_FIRST_binop_code) ; - ASSERT (opcode != GB_SECOND_binop_code) ; - ASSERT (opcode != GB_PAIR_binop_code) ; - ASSERT (opcode != GB_ANY_binop_code) ; - - size_t asize = Atype->size ; - size_t ssize = scalar->type->size ; - size_t zsize = op->ztype->size ; - size_t xsize = op->xtype->size ; - size_t ysize = op->ytype->size ; - - GB_Type_code scode = scalar->type->code ; - xcode = op->xtype->code ; - ycode = op->ytype->code ; - - // typecast the scalar to the operator input - size_t ssize_cast ; - GB_Type_code scode_cast ; - if (binop_bind1st) - { - ssize_cast = xsize ; - scode_cast = xcode ; - } - else - { - ssize_cast = ysize ; - scode_cast = ycode ; - } - GB_void swork [GB_VLA(ssize_cast)] ; - GB_void *scalarx = (GB_void *) scalar->x ; - if (scode_cast != scode) - { - // typecast the scalar to the operator input, in swork - GB_cast_function cast_s = GB_cast_factory (scode_cast, scode) ; - cast_s (swork, scalar->x, ssize) ; - scalarx = swork ; - } - - //---------------------------------------------------------------------- - // via the factory kernel - //---------------------------------------------------------------------- - - if (binop_bind1st) - { - - //------------------------------------------------------------------ - // z = binop (scalar,Ax) - //------------------------------------------------------------------ - - #ifndef GBCOMPACT - GB_IF_FACTORY_KERNELS_ENABLED - { - if (GB_binop_builtin (op->xtype, false, Atype, false, - (GrB_BinaryOp) op, false, &opcode, &xcode, &ycode, &zcode)) - { - - //---------------------------------------------------------- - // define the worker for the switch factory - //---------------------------------------------------------- - - #define GB_bind1st(binop,xname) \ - GB (_bind1st_ ## binop ## xname) - #define GB_BINOP_WORKER(binop,xname) \ - { \ - info = GB_bind1st (binop, xname) (Cx, scalarx, Ax, \ - Ab, anz, A_nthreads) ; \ - } \ - break ; - - //---------------------------------------------------------- - // launch the switch factory - //---------------------------------------------------------- - - #define GB_NO_FIRST - #define GB_NO_SECOND - #define GB_NO_PAIR - #include "GB_binop_factory.c" - } - } - #endif - - //------------------------------------------------------------------ - // via the JIT or PreJIT kernel - //------------------------------------------------------------------ - - if (info == GrB_NO_VALUE) - { - info = GB_apply_bind1st_jit (Cx, ctype, - (GrB_BinaryOp) op, scalarx, A, A_nthreads) ; - } - - } - else - { - - //------------------------------------------------------------------ - // z = binop (Ax,scalar) - //------------------------------------------------------------------ - - #ifndef GBCOMPACT - GB_IF_FACTORY_KERNELS_ENABLED - { - if (GB_binop_builtin (Atype, false, op->ytype, false, - (GrB_BinaryOp) op, false, &opcode, &xcode, &ycode, &zcode)) - { - - //---------------------------------------------------------- - // define the worker for the switch factory - //---------------------------------------------------------- - - #define GB_bind2nd(binop,xname) \ - GB (_bind2nd_ ## binop ## xname) - #undef GB_BINOP_WORKER - #define GB_BINOP_WORKER(binop,xname) \ - { \ - info = GB_bind2nd (binop, xname) (Cx, Ax, scalarx, \ - Ab, anz, A_nthreads) ; \ - } \ - break ; - - //---------------------------------------------------------- - // launch the switch factory - //---------------------------------------------------------- - - #define GB_NO_FIRST - #define GB_NO_SECOND - #define GB_NO_PAIR - #include "GB_binop_factory.c" - } - } - #endif - - //------------------------------------------------------------------ - // via the JIT or PreJIT kernel - //------------------------------------------------------------------ - - if (info == GrB_NO_VALUE) - { - info = GB_apply_bind2nd_jit (Cx, ctype, - (GrB_BinaryOp) op, A, scalarx, A_nthreads) ; - } - } - - //---------------------------------------------------------------------- - // via the generic kernel - //---------------------------------------------------------------------- - - if (info == GrB_NO_VALUE) - { - - GB_BURBLE_N (anz, "(generic binop apply: %s) ", op->name) ; - - GB_Type_code acode = Atype->code ; - GxB_binary_function fop = op->binop_function ; - ASSERT (!A->iso) ; - - if (binop_bind1st) - { - // Cx = binop (scalar,Ax) with bind1st - GB_cast_function cast_A_to_Y = GB_cast_factory (ycode, acode) ; - #define GB_APPLY_OP(p) \ - /* ywork = (ytype) Ax [p] */ \ - GB_void ywork [GB_VLA(ysize)] ; \ - cast_A_to_Y (ywork, Ax +(p)*asize, asize) ; \ - /* Cx [p] = fop (scalarx, ywork) */ \ - fop (Cx +((p)*zsize), scalarx, ywork) ; - #include "GB_apply_unop_ip.c" - } - else - { - // Cx = binop (Ax,scalar) with bind2nd - GB_cast_function cast_A_to_X = GB_cast_factory (xcode, acode) ; - #define GB_APPLY_OP(p) \ - /* xwork = (xtype) Ax [p] */ \ - GB_void xwork [GB_VLA(xsize)] ; \ - cast_A_to_X (xwork, Ax +(p)*asize, asize) ; \ - /* Cx [p] = fop (xwork, scalarx) */ \ - fop (Cx +(p*zsize), xwork, scalarx) ; - #include "GB_apply_unop_ip.c" - } - info = GrB_SUCCESS ; - } - - } - else - { - - //---------------------------------------------------------------------- - // apply a user-defined index_unary op - //---------------------------------------------------------------------- - - // All valued GrB_IndexUnaryOps (GrB_VALUE*) have already been - // renamed to their corresponding binary op (GrB_VALUEEQ_FP32 - // became GrB_EQ_FP32, for example). The only remaining index - // unary ops are positional, and user-defined. Positional ops have - // been handled above, so only user-defined index unary ops are - // left. - - ASSERT (opcode == GB_USER_idxunop_code) ; - size_t ssize = scalar->type->size ; - size_t ysize = op->ytype->size ; - - GB_Type_code scode = scalar->type->code ; - GB_Type_code ycode = op->ytype->code ; - - GB_void ywork [GB_VLA(ysize)] ; - GB_void *ythunk = (GB_void *) scalar->x ; - if (ycode != scode) - { - // typecast the scalar to the operator input, in ywork - GB_cast_function cast_s = GB_cast_factory (ycode, scode) ; - cast_s (ywork, scalar->x, ssize) ; - ythunk = ywork ; - } - - //---------------------------------------------------------------------- - // via the JIT or PreJIT kernel - //---------------------------------------------------------------------- - - if (info == GrB_NO_VALUE) - { - info = GB_apply_unop_jit (Cx, ctype, op, flipij, A, - ythunk, A_ek_slicing, A_ntasks, A_nthreads) ; - } - - //---------------------------------------------------------------------- - // via the generic kernel - //---------------------------------------------------------------------- - - if (info == GrB_NO_VALUE) - { - GB_BURBLE_N (anz, "(generic apply: user-defined idxunop) ") ; - - // get A and C - const int64_t *restrict Ah = A->h ; - const int64_t *restrict Ap = A->p ; - const int64_t *restrict Ai = A->i ; - int64_t avlen = A->vlen ; - GB_Type_code acode = Atype->code ; - - GxB_index_unary_function fop = op->idxunop_function ; - size_t asize = Atype->size ; - size_t zsize = op->ztype->size ; - size_t xsize = op->xtype->size ; - GB_Type_code xcode = op->xtype->code ; - GB_cast_function cast_A_to_X = GB_cast_factory (xcode, acode) ; - - // Cx [p] = op (Ax [p], i, j, ythunk) - #define GB_APPLY_OP(p) \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - GB_void xwork [GB_VLA(xsize)] ; \ - cast_A_to_X (xwork, Ax +(p)*asize, asize) ; \ - fop (Cx +(p*zsize), xwork, \ - flipij ? j : i, flipij ? i : j, ythunk) ; - #include "GB_apply_unop_ijp.c" - info = GrB_SUCCESS ; - } - } - - //-------------------------------------------------------------------------- - // free workspace and return result - //-------------------------------------------------------------------------- - - GB_FREE_ALL ; - return (info) ; -} - diff --git a/GraphBLAS/Source/GB_check_if_iso.c b/GraphBLAS/Source/GB_check_if_iso.c deleted file mode 100644 index e1da0acb65..0000000000 --- a/GraphBLAS/Source/GB_check_if_iso.c +++ /dev/null @@ -1,146 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_check_if_iso: check if all entries in a matrix are identical -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// JIT: needed. - -// Returns true if all entries in A are the same, and A can then be converted -// to iso if currently non-iso. Returns false if A is bitmap, has any zombies, -// or has or pending tuples, since these are more costly to check. - -#include "GB.h" - -bool GB_check_if_iso // return true if A is iso, false otherwise -( - const GrB_Matrix A // matrix to check if iso -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - if (A == NULL || GB_nnz (A) == 0 || GB_nnz_held (A) == 0) - { - // empty matrices cannot be iso - return (false) ; - } - else if (A->iso) - { - // nothing to do; A is already iso - return (true) ; - } - else if (GB_PENDING (A) || GB_ZOMBIES (A) || GB_IS_BITMAP (A)) - { - // Non-iso matrices with pending work are assumed to be non-iso. - // Bitmap matrices and matrices with zombies could be checked, but - // finding the first entry is tedious so this is skipped. Matrices - // with pending work could be finished first, but this is costly so it - // is skipped. - return (false) ; - } - - ASSERT (!GB_ZOMBIES (A)) ; - ASSERT (GB_JUMBLED_OK (A)) ; - ASSERT (!GB_PENDING (A)) ; - ASSERT (!GB_IS_BITMAP (A)) ; - ASSERT_MATRIX_OK (A, "A input for GB_check_if_iso", GB0) ; - - //-------------------------------------------------------------------------- - // get A - //-------------------------------------------------------------------------- - - int64_t asize = A->type->size ; - int64_t anz = GB_nnz_held (A) ; - bool iso = true ; // A is iso until proven otherwise - - //-------------------------------------------------------------------------- - // determine the number of threads to use - //-------------------------------------------------------------------------- - - int nthreads = 0, ntasks = 0 ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - nthreads = GB_nthreads (anz, chunk, nthreads_max) ; - ntasks = (nthreads == 1) ? 1 : (64 * nthreads) ; - ntasks = GB_IMIN (ntasks, anz) ; - ntasks = GB_IMAX (ntasks, 1) ; - - //-------------------------------------------------------------------------- - // check if A is iso - //-------------------------------------------------------------------------- - - bool done = false ; - - // TODO: disable these kernels for the compact case: - { - - #define GB_GET_FIRST_VALUE(atype_t, a, Ax) \ - const atype_t a = Ax [0] - #define GB_COMPARE_WITH_FIRST_VALUE(my_iso, a, Ax, p) \ - my_iso = my_iso & (a == Ax [p]) - - switch (asize) - { - case GB_1BYTE : // uint8, int8, bool, or 1-byte user - #define GB_A_TYPE uint8_t - #include "GB_check_if_iso_template.c" - break ; - - case GB_2BYTE : // uint16, int16, or 2-byte user - #define GB_A_TYPE uint16_t - #include "GB_check_if_iso_template.c" - break ; - - case GB_4BYTE : // uint32, int32, float, or 4-byte user - #define GB_A_TYPE uint32_t - #include "GB_check_if_iso_template.c" - break ; - - case GB_8BYTE : // uint64, int64, double, float complex, - // or 8-byte user defined - #define GB_A_TYPE uint64_t - #include "GB_check_if_iso_template.c" - break ; - - case GB_16BYTE : // double complex or 16-byte user - #define GB_A_TYPE uint64_t - #undef GB_GET_FIRST_VALUE - #define GB_GET_FIRST_VALUE(atype_t, a, Ax) \ - const atype_t a ## 0 = Ax [0] ; \ - const atype_t a ## 1 = Ax [1] ; - #undef GB_COMPARE_WITH_FIRST_VALUE - #define GB_COMPARE_WITH_FIRST_VALUE(my_iso, a, Ax, p) \ - my_iso = my_iso & (a ## 0 == Ax [2*p ]) \ - & (a ## 1 == Ax [2*p+1]) - #include "GB_check_if_iso_template.c" - break ; - - default:; - } - } - - // TODO: JIT would go here - - if (!done) - { - // with user-defined types of any size - #define GB_A_TYPE GB_void - #undef GB_GET_FIRST_VALUE - #define GB_GET_FIRST_VALUE(atype_t, a, Ax) \ - GB_void a [GB_VLA(asize)] ; \ - memcpy (a, Ax, asize) ; - #undef GB_COMPARE_WITH_FIRST_VALUE - #define GB_COMPARE_WITH_FIRST_VALUE(my_iso, a, Ax, p) \ - my_iso = my_iso & (memcmp (a, Ax + (p)*asize, asize) == 0) - #include "GB_check_if_iso_template.c" - } - - return (iso) ; -} - diff --git a/GraphBLAS/Source/GB_control.h b/GraphBLAS/Source/GB_control.h index 31fd19c9c7..7d07af3cad 100644 --- a/GraphBLAS/Source/GB_control.h +++ b/GraphBLAS/Source/GB_control.h @@ -16,7 +16,7 @@ // The installer of SuiteSparse:GraphBLAS can edit this file to reduce the code // size of the compiled library, by seletively disabling the corresponding -// hard-coded functions in Source/FactoryKernels. For example, if +// hard-coded functions in FactoryKernels. For example, if // SuiteSparse:GraphBLAS is integrated into an application that makes no use of // the GrB_INT16 data type, or just occassional use where performance is not a // concern, then uncomment the line "#define GxB_NO_INT16 1". Alternatively, @@ -79,10 +79,9 @@ // In this version of SuiteSparse:GraphBLAS, some of the fast hard-coded // semirings have been disabled below. They still work, but are now slower -// since the work is now done by the generic semiring instead. These semirings -// are likely not needed by any application, and disabling them here saves -// compile time and reduces the size of the compiled library. Hard-coded -// semirings removed: +// unless the JIT is used. These semirings are likely not needed by any +// application, and disabling them here saves compile time and reduces the size +// of the compiled library. Hard-coded semirings removed: // (1) *_IS* semirings are removed. // (2) semirings with DIV, RDIV, MINUS, RMINUS and ANY multiplicative @@ -99,6 +98,7 @@ // (GE, GT, LE, LT) // (7) positional semirings with PLUS and TIMES monoid removed. // (8) some complex semirings removed. +// (9) All INT16 and UINT16 types and operators are removed. // With the above semirings removed, the remaining 398 semirings are: @@ -170,18 +170,18 @@ // GrB_reduce, GrB_*_build, GrB_apply, and GrB_transpose for this type. // If disabled, the types still work just fine, but operations on them will be -// slower. +// slower unless the JIT is used (which is on by default). // #define GxB_NO_BOOL 1 // #define GxB_NO_FP32 1 // #define GxB_NO_FP64 1 // #define GxB_NO_FC32 1 // #define GxB_NO_FC64 1 -// #define GxB_NO_INT16 1 + #define GxB_NO_INT16 1 // #define GxB_NO_INT32 1 // #define GxB_NO_INT64 1 // #define GxB_NO_INT8 1 -// #define GxB_NO_UINT16 1 + #define GxB_NO_UINT16 1 // #define GxB_NO_UINT32 1 // #define GxB_NO_UINT64 1 // #define GxB_NO_UINT8 1 diff --git a/GraphBLAS/Source/GB_cuda_gateway.h b/GraphBLAS/Source/GB_cuda_gateway.h deleted file mode 100644 index 72bd217d73..0000000000 --- a/GraphBLAS/Source/GB_cuda_gateway.h +++ /dev/null @@ -1,159 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_cuda_gateway.h: definitions for interface to GB_cuda_* functions -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2019, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// CUDA gateway functions (DRAFT: in progress) - -// This file can be #include'd into any GraphBLAS/Source file that needs to -// call a CUDA gateway function, or use the typedef defined below. It is also -// #include'd in GraphBLAS/CUDA/GB_cuda.h, for use by the CUDA/GB_cuda_*.cu -// gateway functions. - -// If GRAPHBLAS_HAS_CUDA is defined in GraphBLAS/CMakeLists.txt, then GraphBLAS -// can call the C-callable gateway functions defined in GraphBLAS/CUDA/*.cu -// source files. If GRAPHBLAS_HAS_CUDA is not defined, then these functions -// are not called. The typedef always appears, since it is part of the -// GB_Global struct, whether or not CUDA is used. - -#ifndef GB_CUDA_GATEWAY_H -#define GB_CUDA_GATEWAY_H - -#define GB_CUDA_MAX_GPUS 32 - -// The GPU is only used if the work is larger than the GxB_GPU_CHUNK. -// The default value of this parameter is GB_GPU_CHUNK_DEFAULT: -#define GB_GPU_CHUNK_DEFAULT (1024*1024) - -//------------------------------------------------------------------------------ -// GB_cuda_device: properties of each GPU in the system -//------------------------------------------------------------------------------ - -typedef struct -{ - char name [256] ; - size_t total_global_memory ; - int number_of_sms ; - int compute_capability_major ; - int compute_capability_minor ; - bool use_memory_pool ; - size_t pool_size ; - size_t max_pool_size ; - void *memory_resource ; -} -GB_cuda_device ; - -//------------------------------------------------------------------------------ -// GB_ngpus_to_use: determine # of GPUs to use for the next computation -//------------------------------------------------------------------------------ - -static inline int GB_ngpus_to_use -( - double work // total work to do -) -{ - - // gpu_hack: for testing only - // 2: never use GPU - // 1: always use GPU - // 0: default - int gpu_hack = GB_Global_hack_get (2) ; - - // get # of GPUs avaiable - int gpu_count = GB_Global_gpu_count_get ( ) ; - - if (gpu_hack == 2 || gpu_count == 0 || work == 0) - { - // never use the GPU(s) - return (0) ; - } - else if (gpu_hack == 1) - { - // always use all available GPU(s) - // fixme for CUDA: allow 1 to gpu_count to be requested - return (gpu_count) ; - } - else - { - // default: use no more than max_gpus_to_use - double gpu_chunk = 2e6 ; - double max_gpus_to_use = floor (work / gpu_chunk) ; - // but use no more than the # of GPUs available - if (max_gpus_to_use > gpu_count) return (gpu_count) ; - return ((int) max_gpus_to_use) ; - } -} - -//------------------------------------------------------------------------------ -// GB_cuda_* gateway functions -//------------------------------------------------------------------------------ - -GrB_Info GB_cuda_init (void) ; - -bool GB_cuda_get_device_count // true if OK, false if failure -( - int *gpu_count // return # of GPUs in the system -) ; - -bool GB_cuda_warmup (int device) ; - -bool GB_cuda_get_device( int *device) ; - -bool GB_cuda_set_device( int device) ; - -bool GB_cuda_get_device_properties -( - int device, - GB_cuda_device *prop -) ; - -bool GB_cuda_type_branch // return true if the type is OK on GPU -( - const GrB_Type type // type to query -) ; - -bool GB_cuda_reduce_to_scalar_branch // return true to use the GPU -( - const GrB_Monoid monoid, // monoid to do the reduction - const GrB_Matrix A // input matrix -) ; - -GrB_Info GB_cuda_reduce_to_scalar -( - // output: - GB_void *s, // note: statically allocated on CPU stack; if - // the result is in s then V is NULL. - GrB_Matrix *V_handle, // partial result if unable to reduce to scalar; - // NULL if result is in s. - // input: - const GrB_Monoid monoid, - const GrB_Matrix A -) ; - -GrB_Info GB_cuda_AxB_dot3 // C = A'*B using dot product method -( - GrB_Matrix C, // output matrix, static header - const GrB_Matrix M, // mask matrix - const bool Mask_struct, // if true, use the only structure of M - const GrB_Matrix A, // input matrix - const GrB_Matrix B, // input matrix - const GrB_Semiring semiring, // semiring that defines C=A*B - const bool flipxy // if true, do z=fmult(b,a) vs fmult(a,b) -) ; - -bool GB_cuda_AxB_dot3_branch -( - const GrB_Matrix M, // mask matrix - const bool Mask_struct, // if true, use the only structure of M - const GrB_Matrix A, // input matrix - const GrB_Matrix B, // input matrix - const GrB_Semiring semiring, // semiring that defines C=A*B - const bool flipxy // if true, do z=fmult(b,a) vs fmult(a,b) -); - -#endif - diff --git a/GraphBLAS/Source/GB_eslice.c b/GraphBLAS/Source/GB_eslice.c deleted file mode 100644 index 1839e129df..0000000000 --- a/GraphBLAS/Source/GB_eslice.c +++ /dev/null @@ -1,29 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_eslice: equal partition of e items to each task -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// There are e items to split between ntasks. Task tid will own items -// Slice [tid] to Slice [tid+1]-1. - -#include "GB.h" - -void GB_eslice -( - int64_t *Slice, // array of size ntasks+1 - int64_t e, // number items to partition amongst the tasks - const int ntasks // # of tasks -) -{ - Slice [0] = 0 ; - for (int tid = 1 ; tid < ntasks ; tid++) - { - Slice [tid] = (int64_t) GB_PART (tid, e, ntasks) ; - } - Slice [ntasks] = e ; -} - diff --git a/GraphBLAS/Source/GB_ewise_kernels.h b/GraphBLAS/Source/GB_ewise_kernels.h deleted file mode 100644 index b90a8a4f65..0000000000 --- a/GraphBLAS/Source/GB_ewise_kernels.h +++ /dev/null @@ -1,13 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_ewise_kernels.h: include files for Factory kernels -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_emult.h" -#include "GB_ek_slice.h" -#include "GB_bitmap_assign_methods.h" - diff --git a/GraphBLAS/Source/GB_ops.c b/GraphBLAS/Source/GB_ops.c deleted file mode 100644 index 58c61e51ec..0000000000 --- a/GraphBLAS/Source/GB_ops.c +++ /dev/null @@ -1,1032 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_ops.c: built-in types, functions, operators, and other externs -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// This file defines the predefined built-in types, descriptors, unary -// operators, index_unary operators, binary operators, monoids, and semirings. - -#include "GB.h" -#include "GB_math.h" -#include "GB_ops.h" - -//------------------------------------------------------------------------------ -// compiler flags -//------------------------------------------------------------------------------ - -#if GB_COMPILER_ICC || GB_COMPILER_ICX - // disable icc warnings - // 144: initialize with incompatible pointer - #pragma warning (disable: 144 ) -#elif GB_COMPILER_GCC - // disable gcc warnings - #pragma GCC diagnostic ignored "-Wincompatible-pointer-types" -#elif GB_COMPILER_MSC - // disable MS Visual Studio warnings - GB_PRAGMA (warning (disable : 4146 )) -#endif - -//------------------------------------------------------------------------------ -// built-in types -//------------------------------------------------------------------------------ - -#define GB_TYPEDEF(prefix,type,ctype,name) \ - struct GB_Type_opaque GB_OPAQUE (type) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - sizeof (ctype), /* sizeof the type */ \ - GB_ ## type ## _code, /* type code */ \ - 0, name, /* name_len and name */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } ; \ - GrB_Type prefix ## _ ## type = & GB_OPAQUE (type) - -GB_TYPEDEF (GrB, BOOL , bool , "bool" ) ; -GB_TYPEDEF (GrB, INT8 , int8_t , "int8_t" ) ; -GB_TYPEDEF (GrB, INT16 , int16_t , "int16_t" ) ; -GB_TYPEDEF (GrB, INT32 , int32_t , "int32_t" ) ; -GB_TYPEDEF (GrB, INT64 , int64_t , "int64_t" ) ; -GB_TYPEDEF (GrB, UINT8 , uint8_t , "uint8_t" ) ; -GB_TYPEDEF (GrB, UINT16, uint16_t , "uint16_t" ) ; -GB_TYPEDEF (GrB, UINT32, uint32_t , "uint32_t" ) ; -GB_TYPEDEF (GrB, UINT64, uint64_t , "uint64_t" ) ; -GB_TYPEDEF (GrB, FP32 , float , "float" ) ; -GB_TYPEDEF (GrB, FP64 , double , "double" ) ; -GB_TYPEDEF (GxB, FC32 , GxB_FC32_t, "GxB_FC32_t") ; -GB_TYPEDEF (GxB, FC64 , GxB_FC64_t, "GxB_FC64_t") ; - -//------------------------------------------------------------------------------ -// built-in descriptors -//------------------------------------------------------------------------------ - -#define o ((GrB_Desc_Value) GxB_DEFAULT) - -#define GB_DESC(name,out,mask,in0,in1) \ - struct GB_Descriptor_opaque GB_OPAQUE (desc_ ## name) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - "", 0, /* logger */ \ - (GrB_Desc_Value) (out), \ - (GrB_Desc_Value) (mask), \ - (GrB_Desc_Value) (in0), \ - (GrB_Desc_Value) (in1), \ - o, /* default: axb */ \ - 0, /* default compression */ \ - 0, /* no sort */ \ - 0 /* import */ \ - } ; \ - GrB_Descriptor GRB (DESC_ ## name) = & GB_OPAQUE (desc_ ## name) ; - -// name outp structure complement in0 in1 - -// GrB_NULL , o , o + o , o , o -GB_DESC (T1 , o , o + o , o , GrB_TRAN ) -GB_DESC (T0 , o , o + o , GrB_TRAN, o ) -GB_DESC (T0T1 , o , o + o , GrB_TRAN, GrB_TRAN ) - -GB_DESC (C , o , o + GrB_COMP, o , o ) -GB_DESC (CT1 , o , o + GrB_COMP, o , GrB_TRAN ) -GB_DESC (CT0 , o , o + GrB_COMP, GrB_TRAN, o ) -GB_DESC (CT0T1 , o , o + GrB_COMP, GrB_TRAN, GrB_TRAN ) - -GB_DESC (S , o , GrB_STRUCTURE + o , o , o ) -GB_DESC (ST1 , o , GrB_STRUCTURE + o , o , GrB_TRAN ) -GB_DESC (ST0 , o , GrB_STRUCTURE + o , GrB_TRAN, o ) -GB_DESC (ST0T1 , o , GrB_STRUCTURE + o , GrB_TRAN, GrB_TRAN ) - -GB_DESC (SC , o , GrB_STRUCTURE + GrB_COMP, o , o ) -GB_DESC (SCT1 , o , GrB_STRUCTURE + GrB_COMP, o , GrB_TRAN ) -GB_DESC (SCT0 , o , GrB_STRUCTURE + GrB_COMP, GrB_TRAN, o ) -GB_DESC (SCT0T1 , o , GrB_STRUCTURE + GrB_COMP, GrB_TRAN, GrB_TRAN ) - -GB_DESC (R , GrB_REPLACE, o + o , o , o ) -GB_DESC (RT1 , GrB_REPLACE, o + o , o , GrB_TRAN ) -GB_DESC (RT0 , GrB_REPLACE, o + o , GrB_TRAN, o ) -GB_DESC (RT0T1 , GrB_REPLACE, o + o , GrB_TRAN, GrB_TRAN ) - -GB_DESC (RC , GrB_REPLACE, o + GrB_COMP, o , o ) -GB_DESC (RCT1 , GrB_REPLACE, o + GrB_COMP, o , GrB_TRAN ) -GB_DESC (RCT0 , GrB_REPLACE, o + GrB_COMP, GrB_TRAN, o ) -GB_DESC (RCT0T1 , GrB_REPLACE, o + GrB_COMP, GrB_TRAN, GrB_TRAN ) - -GB_DESC (RS , GrB_REPLACE, GrB_STRUCTURE + o , o , o ) -GB_DESC (RST1 , GrB_REPLACE, GrB_STRUCTURE + o , o , GrB_TRAN ) -GB_DESC (RST0 , GrB_REPLACE, GrB_STRUCTURE + o , GrB_TRAN, o ) -GB_DESC (RST0T1 , GrB_REPLACE, GrB_STRUCTURE + o , GrB_TRAN, GrB_TRAN ) - -GB_DESC (RSC , GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, o , o ) -GB_DESC (RSCT1 , GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, o , GrB_TRAN ) -GB_DESC (RSCT0 , GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, GrB_TRAN, o ) -GB_DESC (RSCT0T1, GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, GrB_TRAN, GrB_TRAN ) - -#undef o - -//------------------------------------------------------------------------------ -// GB_OP: construct the name of an operator -//------------------------------------------------------------------------------ - -#define GB_OP(op) GB_EVAL3 (op, _, GB_XTYPE) - -//------------------------------------------------------------------------------ -// helper macros to define unary operators -//------------------------------------------------------------------------------ - -#define GB_OP1zx(op,name,z_t,ztype,x_t,xtype) \ - extern void GB_FUNC_T (op, xtype) (z_t *z, const x_t *x) ; \ - struct GB_UnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (ztype), /* ztype */ \ - & GB_OPAQUE (xtype), /* xtype */ \ - NULL, /* ytype */ \ - (GxB_unary_function) (& GB_FUNC_T (op, xtype)), NULL, NULL, \ - name, 0, /* name and name_len */ \ - GB_ ## op ## _unop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } - -#define GRB_OP1z(op,name,z_t,ztype) \ - GB_OP1zx (op, name, z_t, ztype, GB_TYPE, GB_XTYPE) ; \ - GrB_UnaryOp GRB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -#define GRB_OP1(op,name) GRB_OP1z (op, name, GB_TYPE, GB_XTYPE) - -#define GXB_OP1z(op,name,z_t,ztype) \ - GB_OP1zx (op, name, z_t, ztype, GB_TYPE, GB_XTYPE) ; \ - GrB_UnaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -#define GXB_OP1(op,name) GXB_OP1z (op, name, GB_TYPE, GB_XTYPE) - -#define GXB_OP1_RENAME(op) \ - GrB_UnaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -//------------------------------------------------------------------------------ -// helper macros to define binary operators -//------------------------------------------------------------------------------ - -#define GB_OP2zxy(op,name,z_t,ztype,x_t,xtype,y_t,ytype) \ - extern void GB_FUNC_T(op,xtype) (z_t *z, const x_t *x, const y_t *y) ; \ - struct GB_BinaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (ztype), /* ztype */ \ - & GB_OPAQUE (xtype), \ - & GB_OPAQUE (ytype), \ - NULL, NULL, (GxB_binary_function) (& GB_FUNC_T (op, xtype)), \ - name, 0, /* name and name_len */ \ - GB_ ## op ## _binop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } - -#define GRB_OP2z(op,name,z_t,ztype) \ - GB_OP2zxy (op, name, z_t, ztype, GB_TYPE, GB_XTYPE, GB_TYPE, GB_XTYPE) ; \ - GrB_BinaryOp GRB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -#define GRB_OP2(op,name) GRB_OP2z (op, name, GB_TYPE, GB_XTYPE) - -#define GXB_OP2z(op,name,z_t,ztype) \ - GB_OP2zxy (op, name, z_t, ztype, GB_TYPE, GB_XTYPE, GB_TYPE, GB_XTYPE) ; \ - GrB_BinaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -#define GXB_OP2(op,name) GXB_OP2z (op, name, GB_TYPE, GB_XTYPE) - -#define GXB_OP2shift(op,name) \ - GB_OP2zxy (op, name, GB_TYPE, GB_XTYPE, GB_TYPE, GB_XTYPE, int8_t, INT8) ; \ - GrB_BinaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -//------------------------------------------------------------------------------ -// positional unary and binary operators -//------------------------------------------------------------------------------ - -// The function pointer inside a positional operator cannot be called directly, -// since it does not depend on the values of its two arguments. The operator -// can only be implemented via its opcode. - -// helper macros to define positional unary operators -#define GXB_OP1_POS(op,name,type) \ - struct GB_UnaryOp_opaque GB_OPAQUE (op ## _ ## type) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (type), /* ztype */ \ - & GB_OPAQUE (type), /* xtype */ \ - NULL, /* ytype */ \ - NULL, NULL, NULL, /* no function pointer */ \ - name, 0, /* name and name_len */ \ - GB_ ## op ## _unop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } ; \ - GrB_UnaryOp GXB (op ## _ ## type) = & GB_OPAQUE (op ## _ ## type) - -// helper macros to define positional binary operators -#define GXB_OP2_POS(op,name,type) \ - struct GB_BinaryOp_opaque GB_OPAQUE (op ## _ ## type) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (type), /* ztype */ \ - & GB_OPAQUE (type), /* xtype */ \ - & GB_OPAQUE (type), /* ytype */ \ - NULL, NULL, NULL, /* no function pointer */ \ - name, 0, /* name and name_len */ \ - GB_ ## op ## _binop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } ; \ - GrB_BinaryOp GXB (op ## _ ## type) = & GB_OPAQUE (op ## _ ## type) - -GXB_OP1_POS (POSITIONI , "positioni" , INT32) ; -GXB_OP1_POS (POSITIONI , "positioni" , INT64) ; -GXB_OP1_POS (POSITIONI1, "positioni1", INT32) ; -GXB_OP1_POS (POSITIONI1, "positioni1", INT64) ; -GXB_OP1_POS (POSITIONJ , "positionj" , INT32) ; -GXB_OP1_POS (POSITIONJ , "positionj" , INT64) ; -GXB_OP1_POS (POSITIONJ1, "positionj1", INT32) ; -GXB_OP1_POS (POSITIONJ1, "positionj1", INT64) ; - -GXB_OP2_POS (FIRSTI , "firsti" , INT32) ; -GXB_OP2_POS (FIRSTI , "firsti" , INT64) ; -GXB_OP2_POS (FIRSTI1 , "firsti1" , INT32) ; -GXB_OP2_POS (FIRSTI1 , "firsti1" , INT64) ; -GXB_OP2_POS (FIRSTJ , "firstj" , INT32) ; -GXB_OP2_POS (FIRSTJ , "firstj" , INT64) ; -GXB_OP2_POS (FIRSTJ1 , "firstj1" , INT32) ; -GXB_OP2_POS (FIRSTJ1 , "firstj1" , INT64) ; - -GXB_OP2_POS (SECONDI , "secondi" , INT32) ; -GXB_OP2_POS (SECONDI , "secondi" , INT64) ; -GXB_OP2_POS (SECONDI1 , "secondi1" , INT32) ; -GXB_OP2_POS (SECONDI1 , "secondi1" , INT64) ; -GXB_OP2_POS (SECONDJ , "secondj" , INT32) ; -GXB_OP2_POS (SECONDJ , "secondj" , INT64) ; -GXB_OP2_POS (SECONDJ1 , "secondj1" , INT32) ; -GXB_OP2_POS (SECONDJ1 , "secondj1" , INT64) ; - -//------------------------------------------------------------------------------ -// built-in index_unary operators -//------------------------------------------------------------------------------ - -// IndexUnaryOps that depend on i,j,y but not A(i,j), and result has -// the same type as the scalar y: ROWINDEX, COLINDEX, DIAGINDEX -#define GRB_IDXOP_POSITIONAL(op,name) \ - extern void GB_FUNC_T(op,GB_XTYPE) (GB_TYPE *z, const void *unused, \ - GrB_Index i, GrB_Index j, const GB_TYPE *y) ; \ - struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (GB_XTYPE), /* ztype */ \ - NULL, /* xtype */ \ - & GB_OPAQUE (GB_XTYPE), /* ytype */ \ - NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ - name, 0, /* name and name_len */ \ - GB_ ## op ## _idxunop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } ; \ - GrB_IndexUnaryOp GRB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -// GxB_IndexUnaryOps that depend on i,j,y but not A(i,j), and result has -// the same type as the scalar y: FLIPDIAGINDEX -#define GXB_IDXOP_POSITIONAL(op,name) \ - extern void GB_FUNC_T(op,GB_XTYPE) (GB_TYPE *z, const void *unused, \ - GrB_Index i, GrB_Index j, const GB_TYPE *y) ; \ - struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (GB_XTYPE), /* ztype */ \ - NULL, /* xtype */ \ - & GB_OPAQUE (GB_XTYPE), /* ytype */ \ - NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ - name, 0, /* name and name_len */ \ - GB_ ## op ## _idxunop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } ; \ - GrB_IndexUnaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -// IndexUnaryOps that depend on i,j, and y but not A(i,j), and result is -// bool: TRIL, TRIU, DIAG, OFFDIAG, COLLE, COLGT, ROWLE, ROWGT. -// No suffix on the GrB name. -#define GRB_IDXOP_POSITIONAL_BOOL(op,name) \ - extern void GB_FUNC_T(op,GB_XTYPE) (bool *z, const void *unused, \ - GrB_Index i, GrB_Index j, const GB_TYPE *y) ; \ - struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (BOOL), /* ztype */ \ - NULL, /* xtype */ \ - & GB_OPAQUE (GB_XTYPE), /* ytype */ \ - NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ - name, 0, /* name and name_len */ \ - GB_ ## op ## _idxunop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } ; \ - GrB_IndexUnaryOp GRB (op) = & GB_OPAQUE (GB_OP (op)) - -// GrB_IndexUnaryOps that depend on A(i,j), and result is bool: VALUE* ops -#define GRB_IDXOP_VALUE(op,name) \ - extern void GB_FUNC_T(op,GB_XTYPE) (bool *z, const GB_TYPE *x, \ - GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) ; \ - struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (BOOL), /* ztype */ \ - & GB_OPAQUE (GB_XTYPE), /* xtype */ \ - & GB_OPAQUE (GB_XTYPE), /* ytype */ \ - NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ - name, 0, /* name and name_len */ \ - GB_ ## op ## _idxunop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } ; \ - GrB_IndexUnaryOp GRB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -// GxB* IndexUnaryOps that depend on A(i,j), result is bool: VALUE* complex ops -#define GXB_IDXOP_VALUE(op,name) \ - extern void GB_FUNC_T(op,GB_XTYPE) (bool *z, const GB_TYPE *x, \ - GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) ; \ - struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (BOOL), /* ztype */ \ - & GB_OPAQUE (GB_XTYPE), /* xtype */ \ - & GB_OPAQUE (GB_XTYPE), /* ytype */ \ - NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ - name, 0, /* name and name_len */ \ - GB_ ## op ## _idxunop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } ; \ - GrB_IndexUnaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) - -//------------------------------------------------------------------------------ -// built-in select operators (DEPRECATED: do not use in any code) -//------------------------------------------------------------------------------ - -#define GXB_SEL(op,name) \ - struct GB_SelectOp_opaque GB_OPAQUE (op) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (BOOL), /* ztype */ \ - NULL, /* xtype */ \ - NULL, /* thunk type */ \ - NULL, NULL, NULL, /* no function pointer */ \ - name, 0, /* name and name_len */ \ - GB_ ## op ## _selop_code, /* opcode */ \ - NULL, 0, 0 /* defn, alloc, hash */ \ - } ; \ - GxB_SelectOp GXB (op) = & GB_OPAQUE (op) - -GXB_SEL (TRIL , "tril" ) ; -GXB_SEL (TRIU , "triu" ) ; -GXB_SEL (DIAG , "diag" ) ; -GXB_SEL (OFFDIAG , "offdiag" ) ; - -GXB_SEL (NONZERO , "nonzero" ) ; -GXB_SEL (EQ_ZERO , "eq_zero" ) ; -GXB_SEL (GT_ZERO , "gt_zero" ) ; -GXB_SEL (GE_ZERO , "ge_zero" ) ; -GXB_SEL (LT_ZERO , "lt_zero" ) ; -GXB_SEL (LE_ZERO , "le_zero" ) ; - -GXB_SEL (NE_THUNK , "ne_thunk") ; -GXB_SEL (EQ_THUNK , "eq_thunk") ; -GXB_SEL (GT_THUNK , "gt_thunk") ; -GXB_SEL (GE_THUNK , "ge_thunk") ; -GXB_SEL (LT_THUNK , "lt_thunk") ; -GXB_SEL (LE_THUNK , "le_thunk") ; - -//------------------------------------------------------------------------------ -// define all built-in operators -//------------------------------------------------------------------------------ - -#define GB_TYPE bool -#define GB_XTYPE BOOL -#include "GB_ops_template.c" - -#define GB_TYPE int8_t -#define GB_XTYPE INT8 -#define GB_SIGNED_INT -#include "GB_ops_template.c" - -#define GB_TYPE uint8_t -#define GB_XTYPE UINT8 -#define GB_UNSIGNED_INT -#include "GB_ops_template.c" - -#define GB_TYPE int16_t -#define GB_XTYPE INT16 -#define GB_SIGNED_INT -#include "GB_ops_template.c" - -#define GB_TYPE uint16_t -#define GB_XTYPE UINT16 -#define GB_UNSIGNED_INT -#include "GB_ops_template.c" - -#define GB_TYPE int32_t -#define GB_XTYPE INT32 -#define GB_SIGNED_INT -#define GB_SIGNED_INDEX -#include "GB_ops_template.c" - -#define GB_TYPE uint32_t -#define GB_XTYPE UINT32 -#define GB_UNSIGNED_INT -#include "GB_ops_template.c" - -#define GB_TYPE int64_t -#define GB_XTYPE INT64 -#define GB_SIGNED_INT -#define GB_SIGNED_INDEX -#define GB_SIGNED_INDEX64 -#include "GB_ops_template.c" - -#define GB_TYPE uint64_t -#define GB_XTYPE UINT64 -#define GB_UNSIGNED_INT -#include "GB_ops_template.c" - -#define GB_TYPE float -#define GB_XTYPE FP32 -#define GB_FLOAT -#define GB_FLOATING_POINT -#include "GB_ops_template.c" - -#define GB_TYPE double -#define GB_XTYPE FP64 -#define GB_DOUBLE -#define GB_FLOATING_POINT -#include "GB_ops_template.c" - -#define GB_TYPE GxB_FC32_t -#define GB_XTYPE FC32 -#define GB_FLOAT_COMPLEX -#define GB_COMPLEX -#define GB_FLOATING_POINT -#include "GB_ops_template.c" - -#define GB_TYPE GxB_FC64_t -#define GB_XTYPE FC64 -#define GB_DOUBLE_COMPLEX -#define GB_COMPLEX -#define GB_FLOATING_POINT -#include "GB_ops_template.c" - -//------------------------------------------------------------------------------ -// special cases for functions and operators -//------------------------------------------------------------------------------ - -// 5 special cases: -// purely boolean operators: these do not have _BOOL in their name -// They are not created by the templates above. -GrB_UnaryOp GrB_LNOT = & GB_OPAQUE (LNOT_BOOL) ; -GrB_BinaryOp GrB_LOR = & GB_OPAQUE (LOR_BOOL) ; -GrB_BinaryOp GrB_LAND = & GB_OPAQUE (LAND_BOOL) ; -GrB_BinaryOp GrB_LXOR = & GB_OPAQUE (LXOR_BOOL) ; -GrB_BinaryOp GrB_LXNOR = & GB_OPAQUE (EQ_BOOL) ; - -// Special case for GrB_Matrix_build and GrB_Vector_build: this operator is -// not valid to use in any other methods. -struct GB_BinaryOp_opaque GB_OPAQUE (IGNORE_DUP) = -{ - GB_MAGIC2, 0, // magic and header_size - NULL, 0, // no user_name for GrB_get/GrB_set - NULL, // ztype - NULL, // xtype - NULL, // ytype - NULL, NULL, NULL, // no function pointer - "ignore_dup", 0, // name and name_len - GB_NOP_code, // opcode - NULL, 0, 0 // defn, alloc, and hash -} ; -GrB_BinaryOp GxB_IGNORE_DUP = & GB_OPAQUE (IGNORE_DUP) ; - -// GrB_ONEB_T: identical to GxB_PAIR_T -GrB_BinaryOp GrB_ONEB_BOOL = & GB_OPAQUE (PAIR_BOOL) ; -GrB_BinaryOp GrB_ONEB_INT8 = & GB_OPAQUE (PAIR_INT8) ; -GrB_BinaryOp GrB_ONEB_INT16 = & GB_OPAQUE (PAIR_INT16) ; -GrB_BinaryOp GrB_ONEB_INT32 = & GB_OPAQUE (PAIR_INT32) ; -GrB_BinaryOp GrB_ONEB_INT64 = & GB_OPAQUE (PAIR_INT64) ; -GrB_BinaryOp GrB_ONEB_UINT8 = & GB_OPAQUE (PAIR_UINT8) ; -GrB_BinaryOp GrB_ONEB_UINT16 = & GB_OPAQUE (PAIR_UINT16) ; -GrB_BinaryOp GrB_ONEB_UINT32 = & GB_OPAQUE (PAIR_UINT32) ; -GrB_BinaryOp GrB_ONEB_UINT64 = & GB_OPAQUE (PAIR_UINT64) ; -GrB_BinaryOp GrB_ONEB_FP32 = & GB_OPAQUE (PAIR_FP32) ; -GrB_BinaryOp GrB_ONEB_FP64 = & GB_OPAQUE (PAIR_FP64) ; -GrB_BinaryOp GxB_ONEB_FC32 = & GB_OPAQUE (PAIR_FC32) ; -GrB_BinaryOp GxB_ONEB_FC64 = & GB_OPAQUE (PAIR_FC64) ; - -// nonzombie function for generic case -extern void GB_nonzombie_func (bool *z, const void *x, - int64_t i, GrB_Index j, const void *y) ; - -// GxB_NONZOMBIE: internal use only -struct GB_IndexUnaryOp_opaque GB_OPAQUE (NONZOMBIE) = -{ - GB_MAGIC, 0, // magic and header_size - NULL, 0, // no user_name for GrB_get/GrB_set - & GB_OPAQUE (BOOL), // ztype - NULL, // xtype - & GB_OPAQUE (INT64), // ytype - NULL, (GxB_index_unary_function) &GB_nonzombie_func, NULL, - "nonzombie", 0, // name and name_len - GB_NONZOMBIE_idxunop_code, // opcode - NULL, 0, 0 // defn, alloc, hash -} ; -GrB_IndexUnaryOp GxB_NONZOMBIE = & GB_OPAQUE (NONZOMBIE) ; - -//------------------------------------------------------------------------------ -// GrB_ALL -//------------------------------------------------------------------------------ - -// The GrB_ALL pointer is never dereferenced. It is passed in as an argument to -// indicate that all indices are to be used, as in the colon in C = A(:,j). - -GrB_Index GB_OPAQUE (ALL) = 0 ; -const GrB_Index *GrB_ALL = & GB_OPAQUE (ALL) ; - -// the default hyper_switch is defined in GB_defaults.h -const double GxB_HYPER_DEFAULT = GB_HYPER_SWITCH_DEFAULT ; - -// set GxB_HYPER_SWITCH to either of these to ensure matrix is always, or never, -// stored in hypersparse format, respectively. -const double GxB_ALWAYS_HYPER = GB_ALWAYS_HYPER ; -const double GxB_NEVER_HYPER = GB_NEVER_HYPER ; -const GxB_Format_Value GxB_FORMAT_DEFAULT = GxB_BY_ROW ; - -//------------------------------------------------------------------------------ -// predefined built-in monoids -//------------------------------------------------------------------------------ - -#if defined (GxB_HAVE_COMPLEX_MSVC) -#define GB_FC32_ONE {1.0f, 0.0f} -#define GB_FC64_ONE {1.0 , 0.0 } -#define GB_FC32_ZERO {0.0f, 0.0f} -#define GB_FC64_ZERO {0.0 , 0.0 } -#else -#define GB_FC32_ONE GxB_CMPLXF (1,0) -#define GB_FC64_ONE GxB_CMPLX (1,0) -#define GB_FC32_ZERO GxB_CMPLXF (0,0) -#define GB_FC64_ZERO GxB_CMPLX (0,0) -#endif - -// helper macro to define built-in monoids (no terminal value) -#define GB_MONOID_DEF(op,ztype,identity) \ - ztype GB_OPAQUE (GB_EVAL2 (identity_, op)) = identity ; \ - struct GB_Monoid_opaque GB_OPAQUE (GB_EVAL2 (op, _MONOID)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (op), /* additive operator */ \ - & GB_OPAQUE (GB_EVAL2 (identity_, op)), /* identity */ \ - NULL, /* terminal */ \ - 0, 0, 0 /* alloc id & term, hash */ \ - } ; \ - GrB_Monoid GXB (GB_EVAL2 (op, _MONOID)) = \ - & GB_OPAQUE (GB_EVAL2 (op, _MONOID)) ; - -// helper macro to define built-in monoids (with terminal value) -#define GB_MONOID_DEFT(op,ztype,identity,terminal) \ - ztype GB_OPAQUE (GB_EVAL2 (identity_, op)) = identity ; \ - ztype GB_OPAQUE (GB_EVAL2 (terminal_, op)) = terminal ; \ - struct GB_Monoid_opaque GB_OPAQUE (GB_EVAL2 (op, _MONOID)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (op), /* additive operator */ \ - & GB_OPAQUE (GB_EVAL2 (identity_, op)), /* identity */ \ - & GB_OPAQUE (GB_EVAL2 (terminal_, op)), /* terminal */ \ - 0, 0, 0 /* alloc id & term, hash */ \ - } ; \ - GrB_Monoid GXB (GB_EVAL2 (op, _MONOID)) = \ - & GB_OPAQUE (GB_EVAL2 (op, _MONOID)) ; - -// macro to construct GrB_* monoids in the updated specification -#define GB_MONOID_GRB(op,type) \ -GrB_Monoid GRB (GB_EVAL3 (op, _MONOID_, type)) = \ - & GB_OPAQUE (GB_EVAL4 (op, _, type, _MONOID)) ; - -// MIN monoids: -GB_MONOID_DEFT ( MIN_INT8 , int8_t , INT8_MAX , INT8_MIN ) -GB_MONOID_DEFT ( MIN_INT16 , int16_t , INT16_MAX , INT16_MIN ) -GB_MONOID_DEFT ( MIN_INT32 , int32_t , INT32_MAX , INT32_MIN ) -GB_MONOID_DEFT ( MIN_INT64 , int64_t , INT64_MAX , INT64_MIN ) -GB_MONOID_DEFT ( MIN_UINT8 , uint8_t , UINT8_MAX , 0 ) -GB_MONOID_DEFT ( MIN_UINT16 , uint16_t , UINT16_MAX , 0 ) -GB_MONOID_DEFT ( MIN_UINT32 , uint32_t , UINT32_MAX , 0 ) -GB_MONOID_DEFT ( MIN_UINT64 , uint64_t , UINT64_MAX , 0 ) -GB_MONOID_DEF ( MIN_FP32 , float , INFINITY ) -GB_MONOID_DEF ( MIN_FP64 , double , INFINITY ) - -GB_MONOID_GRB ( MIN, INT8 ) -GB_MONOID_GRB ( MIN, INT16 ) -GB_MONOID_GRB ( MIN, INT32 ) -GB_MONOID_GRB ( MIN, INT64 ) -GB_MONOID_GRB ( MIN, UINT8 ) -GB_MONOID_GRB ( MIN, UINT16 ) -GB_MONOID_GRB ( MIN, UINT32 ) -GB_MONOID_GRB ( MIN, UINT64 ) -GB_MONOID_GRB ( MIN, FP32 ) -GB_MONOID_GRB ( MIN, FP64 ) - -// MAX monoids: -GB_MONOID_DEFT ( MAX_INT8 , int8_t , INT8_MIN , INT8_MAX ) -GB_MONOID_DEFT ( MAX_INT16 , int16_t , INT16_MIN , INT16_MAX ) -GB_MONOID_DEFT ( MAX_INT32 , int32_t , INT32_MIN , INT32_MAX ) -GB_MONOID_DEFT ( MAX_INT64 , int64_t , INT64_MIN , INT64_MAX ) -GB_MONOID_DEFT ( MAX_UINT8 , uint8_t , 0 , UINT8_MAX ) -GB_MONOID_DEFT ( MAX_UINT16 , uint16_t , 0 , UINT16_MAX) -GB_MONOID_DEFT ( MAX_UINT32 , uint32_t , 0 , UINT32_MAX) -GB_MONOID_DEFT ( MAX_UINT64 , uint64_t , 0 , UINT64_MAX) -GB_MONOID_DEF ( MAX_FP32 , float , -INFINITY ) -GB_MONOID_DEF ( MAX_FP64 , double , -INFINITY ) - -GB_MONOID_GRB ( MAX, INT8 ) -GB_MONOID_GRB ( MAX, INT16 ) -GB_MONOID_GRB ( MAX, INT32 ) -GB_MONOID_GRB ( MAX, INT64 ) -GB_MONOID_GRB ( MAX, UINT8 ) -GB_MONOID_GRB ( MAX, UINT16 ) -GB_MONOID_GRB ( MAX, UINT32 ) -GB_MONOID_GRB ( MAX, UINT64 ) -GB_MONOID_GRB ( MAX, FP32 ) -GB_MONOID_GRB ( MAX, FP64 ) - -// PLUS monoids: -GB_MONOID_DEF ( PLUS_INT8 , int8_t , 0 ) -GB_MONOID_DEF ( PLUS_INT16 , int16_t , 0 ) -GB_MONOID_DEF ( PLUS_INT32 , int32_t , 0 ) -GB_MONOID_DEF ( PLUS_INT64 , int64_t , 0 ) -GB_MONOID_DEF ( PLUS_UINT8 , uint8_t , 0 ) -GB_MONOID_DEF ( PLUS_UINT16 , uint16_t , 0 ) -GB_MONOID_DEF ( PLUS_UINT32 , uint32_t , 0 ) -GB_MONOID_DEF ( PLUS_UINT64 , uint64_t , 0 ) -GB_MONOID_DEF ( PLUS_FP32 , float , 0 ) -GB_MONOID_DEF ( PLUS_FP64 , double , 0 ) -GB_MONOID_DEF ( PLUS_FC32 , GxB_FC32_t, GB_FC32_ZERO) -GB_MONOID_DEF ( PLUS_FC64 , GxB_FC64_t, GB_FC64_ZERO) - -GB_MONOID_GRB ( PLUS, INT8 ) -GB_MONOID_GRB ( PLUS, INT16 ) -GB_MONOID_GRB ( PLUS, INT32 ) -GB_MONOID_GRB ( PLUS, INT64 ) -GB_MONOID_GRB ( PLUS, UINT8 ) -GB_MONOID_GRB ( PLUS, UINT16 ) -GB_MONOID_GRB ( PLUS, UINT32 ) -GB_MONOID_GRB ( PLUS, UINT64 ) -GB_MONOID_GRB ( PLUS, FP32 ) -GB_MONOID_GRB ( PLUS, FP64 ) - -// TIMES monoids: -GB_MONOID_DEFT ( TIMES_INT8 , int8_t , 1 , 0) -GB_MONOID_DEFT ( TIMES_INT16 , int16_t , 1 , 0) -GB_MONOID_DEFT ( TIMES_INT32 , int32_t , 1 , 0) -GB_MONOID_DEFT ( TIMES_INT64 , int64_t , 1 , 0) -GB_MONOID_DEFT ( TIMES_UINT8 , uint8_t , 1 , 0) -GB_MONOID_DEFT ( TIMES_UINT16 , uint16_t , 1 , 0) -GB_MONOID_DEFT ( TIMES_UINT32 , uint32_t , 1 , 0) -GB_MONOID_DEFT ( TIMES_UINT64 , uint64_t , 1 , 0) -GB_MONOID_DEF ( TIMES_FP32 , float , 1 ) -GB_MONOID_DEF ( TIMES_FP64 , double , 1 ) -GB_MONOID_DEF ( TIMES_FC32 , GxB_FC32_t, GB_FC32_ONE ) -GB_MONOID_DEF ( TIMES_FC64 , GxB_FC64_t, GB_FC64_ONE ) - -GB_MONOID_GRB ( TIMES, INT8 ) -GB_MONOID_GRB ( TIMES, INT16 ) -GB_MONOID_GRB ( TIMES, INT32 ) -GB_MONOID_GRB ( TIMES, INT64 ) -GB_MONOID_GRB ( TIMES, UINT8 ) -GB_MONOID_GRB ( TIMES, UINT16 ) -GB_MONOID_GRB ( TIMES, UINT32 ) -GB_MONOID_GRB ( TIMES, UINT64 ) -GB_MONOID_GRB ( TIMES, FP32 ) -GB_MONOID_GRB ( TIMES, FP64 ) - -// ANY monoids: -GB_MONOID_DEFT ( ANY_INT8 , int8_t , 0 , 0) -GB_MONOID_DEFT ( ANY_INT16 , int16_t , 0 , 0) -GB_MONOID_DEFT ( ANY_INT32 , int32_t , 0 , 0) -GB_MONOID_DEFT ( ANY_INT64 , int64_t , 0 , 0) -GB_MONOID_DEFT ( ANY_UINT8 , uint8_t , 0 , 0) -GB_MONOID_DEFT ( ANY_UINT16 , uint16_t , 0 , 0) -GB_MONOID_DEFT ( ANY_UINT32 , uint32_t , 0 , 0) -GB_MONOID_DEFT ( ANY_UINT64 , uint64_t , 0 , 0) -GB_MONOID_DEFT ( ANY_FP32 , float , 0 , 0) -GB_MONOID_DEFT ( ANY_FP64 , double , 0 , 0) -GB_MONOID_DEFT ( ANY_FC32 , GxB_FC32_t, GB_FC32_ZERO, GB_FC32_ZERO) -GB_MONOID_DEFT ( ANY_FC64 , GxB_FC64_t, GB_FC64_ZERO, GB_FC64_ZERO) - -// Boolean monoids: -GB_MONOID_DEFT ( ANY_BOOL , bool , false , false) -GB_MONOID_DEFT ( LOR_BOOL , bool , false , true ) -GB_MONOID_DEFT ( LAND_BOOL , bool , true , false) -GB_MONOID_DEF ( LXOR_BOOL , bool , false ) -GB_MONOID_DEF ( EQ_BOOL , bool , true ) -// GrB_LXNOR_BOOL_MONIOD is the same as GrB_EQ_BOOL_MONIOD: -GrB_Monoid GxB_LXNOR_BOOL_MONOID = & GB_OPAQUE (EQ_BOOL_MONOID) ; - -GB_MONOID_GRB ( LOR , BOOL ) -GB_MONOID_GRB ( LAND , BOOL ) -GB_MONOID_GRB ( LXOR , BOOL ) -GrB_Monoid GrB_LXNOR_MONOID_BOOL = & GB_OPAQUE (EQ_BOOL_MONOID) ; - -// BOR monoids (bitwise or): -GB_MONOID_DEFT ( BOR_UINT8 , uint8_t , 0, 0xFF ) -GB_MONOID_DEFT ( BOR_UINT16 , uint16_t , 0, 0xFFFF ) -GB_MONOID_DEFT ( BOR_UINT32 , uint32_t , 0, 0xFFFFFFFF ) -GB_MONOID_DEFT ( BOR_UINT64 , uint64_t , 0, 0xFFFFFFFFFFFFFFFF ) - -// BAND monoids (bitwise and): -GB_MONOID_DEFT ( BAND_UINT8 , uint8_t , 0xFF , 0 ) -GB_MONOID_DEFT ( BAND_UINT16 , uint16_t , 0xFFFF , 0 ) -GB_MONOID_DEFT ( BAND_UINT32 , uint32_t , 0xFFFFFFFF , 0 ) -GB_MONOID_DEFT ( BAND_UINT64 , uint64_t , 0xFFFFFFFFFFFFFFFF, 0 ) - -// BXOR monoids (bitwise xor): -GB_MONOID_DEF ( BXOR_UINT8 , uint8_t , 0) -GB_MONOID_DEF ( BXOR_UINT16 , uint16_t , 0) -GB_MONOID_DEF ( BXOR_UINT32 , uint32_t , 0) -GB_MONOID_DEF ( BXOR_UINT64 , uint64_t , 0) - -// BXNOR monoids (bitwise xnor): -GB_MONOID_DEF ( BXNOR_UINT8 , uint8_t , 0xFF ) -GB_MONOID_DEF ( BXNOR_UINT16 , uint16_t , 0xFFFF ) -GB_MONOID_DEF ( BXNOR_UINT32 , uint32_t , 0xFFFFFFFF ) -GB_MONOID_DEF ( BXNOR_UINT64 , uint64_t , 0xFFFFFFFFFFFFFFFF ) - -//------------------------------------------------------------------------------ -// predefined built-in semirings -//------------------------------------------------------------------------------ - -#define GB_SEMIRING_NAME(add,mult) \ - GB_EVAL5 (add, _, mult, _, GB_XTYPE) - -// helper macro to define semirings: all x,y,z types the same -#define GXB_SEMIRING(add,mult) \ - struct GB_Semiring_opaque GB_OPAQUE (GB_SEMIRING_NAME(add, mult)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (GB_EVAL4 (add, _, GB_XTYPE, _MONOID)), \ - & GB_OPAQUE (GB_EVAL3 (mult, _, GB_XTYPE)), \ - NULL, 0, 0, 0 /* name, name_len, name_size, hash */ \ - } ; \ - GrB_Semiring GXB (GB_SEMIRING_NAME (add, mult)) = \ - & GB_OPAQUE (GB_SEMIRING_NAME (add, mult)) ; - -// helper macro to define semirings: x,y types the same, z boolean -#define GB_SEMIRING_COMPARE_DEFINE(add,mult) \ - struct GB_Semiring_opaque GB_OPAQUE (GB_SEMIRING_NAME(add, mult)) = \ - { \ - GB_MAGIC, 0, /* magic and header_size */ \ - NULL, 0, /* no user_name for GrB_get/GrB_set */ \ - & GB_OPAQUE (GB_EVAL2 (add, _BOOL_MONOID)), \ - & GB_OPAQUE (GB_EVAL3 (mult, _, GB_XTYPE)), \ - NULL, 0, 0, 0 /* name, name_len, name_size, hash */ \ - } ; - -#define GXB_SEMIRING_COMPARE(add,mult) \ - GB_SEMIRING_COMPARE_DEFINE (add, mult) \ - GrB_Semiring GXB (GB_SEMIRING_NAME (add, mult)) = \ - & GB_OPAQUE (GB_SEMIRING_NAME (add, mult)) ; - -#define GB_XTYPE BOOL -#define GB_BOOLEAN -#include "GB_semiring_template.c" - -#define GB_XTYPE INT8 -#include "GB_semiring_template.c" - -#define GB_XTYPE UINT8 -#define GB_UNSIGNED_INT -#include "GB_semiring_template.c" - -#define GB_XTYPE INT16 -#include "GB_semiring_template.c" - -#define GB_XTYPE UINT16 -#define GB_UNSIGNED_INT -#include "GB_semiring_template.c" - -#define GB_XTYPE INT32 -#define GB_POSITIONAL -#include "GB_semiring_template.c" - -#define GB_UNSIGNED_INT -#define GB_XTYPE UINT32 -#include "GB_semiring_template.c" - -#define GB_POSITIONAL -#define GB_XTYPE INT64 -#include "GB_semiring_template.c" - -#define GB_UNSIGNED_INT -#define GB_XTYPE UINT64 -#include "GB_semiring_template.c" - -#define GB_XTYPE FP32 -#include "GB_semiring_template.c" - -#define GB_XTYPE FP64 -#include "GB_semiring_template.c" - -#define GB_COMPLEX -#define GB_XTYPE FC32 -#include "GB_semiring_template.c" - -#define GB_COMPLEX -#define GB_XTYPE FC64 -#include "GB_semiring_template.c" - -//------------------------------------------------------------------------------ -// 124 predefined built-in semirings in the v1.3 C API -//------------------------------------------------------------------------------ - -// These predefined semirings have been added to the spec, as of v1.3. -// They are identical to the GxB* semirings of the same name, except for -// GrB_LXNOR_LOR_SEMIRING_BOOL, which is identical to GxB_EQ_LOR_BOOL. - -#define GRB_SEMIRING(add,mult,xtype) \ -GrB_Semiring GRB (GB_EVAL5 (add, _, mult, _SEMIRING_, xtype)) = \ - & GB_OPAQUE (GB_EVAL5 (add, _, mult, _, xtype)) ; - - //-------------------------------------------------------------------------- - // 4 boolean semirings - //-------------------------------------------------------------------------- - - GRB_SEMIRING (LOR, LAND, BOOL) - GRB_SEMIRING (LAND, LOR, BOOL) - GRB_SEMIRING (LXOR, LAND, BOOL) - GrB_Semiring GRB (LXNOR_LOR_SEMIRING_BOOL) = & GB_OPAQUE (EQ_LOR_BOOL) ; - - //-------------------------------------------------------------------------- - // 20 semirings with PLUS monoids - //-------------------------------------------------------------------------- - - GRB_SEMIRING (PLUS, TIMES, INT8) - GRB_SEMIRING (PLUS, TIMES, INT16) - GRB_SEMIRING (PLUS, TIMES, INT32) - GRB_SEMIRING (PLUS, TIMES, INT64) - GRB_SEMIRING (PLUS, TIMES, UINT8) - GRB_SEMIRING (PLUS, TIMES, UINT16) - GRB_SEMIRING (PLUS, TIMES, UINT32) - GRB_SEMIRING (PLUS, TIMES, UINT64) - GRB_SEMIRING (PLUS, TIMES, FP32) - GRB_SEMIRING (PLUS, TIMES, FP64) - - GRB_SEMIRING (PLUS, MIN, INT8) - GRB_SEMIRING (PLUS, MIN, INT16) - GRB_SEMIRING (PLUS, MIN, INT32) - GRB_SEMIRING (PLUS, MIN, INT64) - GRB_SEMIRING (PLUS, MIN, UINT8) - GRB_SEMIRING (PLUS, MIN, UINT16) - GRB_SEMIRING (PLUS, MIN, UINT32) - GRB_SEMIRING (PLUS, MIN, UINT64) - GRB_SEMIRING (PLUS, MIN, FP32) - GRB_SEMIRING (PLUS, MIN, FP64) - - //-------------------------------------------------------------------------- - // 50 semirings with MIN monoids - //-------------------------------------------------------------------------- - - GRB_SEMIRING (MIN, PLUS, INT8) - GRB_SEMIRING (MIN, PLUS, INT16) - GRB_SEMIRING (MIN, PLUS, INT32) - GRB_SEMIRING (MIN, PLUS, INT64) - GRB_SEMIRING (MIN, PLUS, UINT8) - GRB_SEMIRING (MIN, PLUS, UINT16) - GRB_SEMIRING (MIN, PLUS, UINT32) - GRB_SEMIRING (MIN, PLUS, UINT64) - GRB_SEMIRING (MIN, PLUS, FP32) - GRB_SEMIRING (MIN, PLUS, FP64) - - GRB_SEMIRING (MIN, TIMES, INT8) - GRB_SEMIRING (MIN, TIMES, INT16) - GRB_SEMIRING (MIN, TIMES, INT32) - GRB_SEMIRING (MIN, TIMES, INT64) - GRB_SEMIRING (MIN, TIMES, UINT8) - GRB_SEMIRING (MIN, TIMES, UINT16) - GRB_SEMIRING (MIN, TIMES, UINT32) - GRB_SEMIRING (MIN, TIMES, UINT64) - GRB_SEMIRING (MIN, TIMES, FP32) - GRB_SEMIRING (MIN, TIMES, FP64) - - GRB_SEMIRING (MIN, FIRST, INT8) - GRB_SEMIRING (MIN, FIRST, INT16) - GRB_SEMIRING (MIN, FIRST, INT32) - GRB_SEMIRING (MIN, FIRST, INT64) - GRB_SEMIRING (MIN, FIRST, UINT8) - GRB_SEMIRING (MIN, FIRST, UINT16) - GRB_SEMIRING (MIN, FIRST, UINT32) - GRB_SEMIRING (MIN, FIRST, UINT64) - GRB_SEMIRING (MIN, FIRST, FP32) - GRB_SEMIRING (MIN, FIRST, FP64) - - GRB_SEMIRING (MIN, SECOND, INT8) - GRB_SEMIRING (MIN, SECOND, INT16) - GRB_SEMIRING (MIN, SECOND, INT32) - GRB_SEMIRING (MIN, SECOND, INT64) - GRB_SEMIRING (MIN, SECOND, UINT8) - GRB_SEMIRING (MIN, SECOND, UINT16) - GRB_SEMIRING (MIN, SECOND, UINT32) - GRB_SEMIRING (MIN, SECOND, UINT64) - GRB_SEMIRING (MIN, SECOND, FP32) - GRB_SEMIRING (MIN, SECOND, FP64) - - GRB_SEMIRING (MIN, MAX, INT8) - GRB_SEMIRING (MIN, MAX, INT16) - GRB_SEMIRING (MIN, MAX, INT32) - GRB_SEMIRING (MIN, MAX, INT64) - GRB_SEMIRING (MIN, MAX, UINT8) - GRB_SEMIRING (MIN, MAX, UINT16) - GRB_SEMIRING (MIN, MAX, UINT32) - GRB_SEMIRING (MIN, MAX, UINT64) - GRB_SEMIRING (MIN, MAX, FP32) - GRB_SEMIRING (MIN, MAX, FP64) - - //-------------------------------------------------------------------------- - // 50 semirings with MAX monoids - //-------------------------------------------------------------------------- - - GRB_SEMIRING (MAX, PLUS, INT8) - GRB_SEMIRING (MAX, PLUS, INT16) - GRB_SEMIRING (MAX, PLUS, INT32) - GRB_SEMIRING (MAX, PLUS, INT64) - GRB_SEMIRING (MAX, PLUS, UINT8) - GRB_SEMIRING (MAX, PLUS, UINT16) - GRB_SEMIRING (MAX, PLUS, UINT32) - GRB_SEMIRING (MAX, PLUS, UINT64) - GRB_SEMIRING (MAX, PLUS, FP32) - GRB_SEMIRING (MAX, PLUS, FP64) - - GRB_SEMIRING (MAX, TIMES, INT8) - GRB_SEMIRING (MAX, TIMES, INT16) - GRB_SEMIRING (MAX, TIMES, INT32) - GRB_SEMIRING (MAX, TIMES, INT64) - GRB_SEMIRING (MAX, TIMES, UINT8) - GRB_SEMIRING (MAX, TIMES, UINT16) - GRB_SEMIRING (MAX, TIMES, UINT32) - GRB_SEMIRING (MAX, TIMES, UINT64) - GRB_SEMIRING (MAX, TIMES, FP32) - GRB_SEMIRING (MAX, TIMES, FP64) - - GRB_SEMIRING (MAX, FIRST, INT8) - GRB_SEMIRING (MAX, FIRST, INT16) - GRB_SEMIRING (MAX, FIRST, INT32) - GRB_SEMIRING (MAX, FIRST, INT64) - GRB_SEMIRING (MAX, FIRST, UINT8) - GRB_SEMIRING (MAX, FIRST, UINT16) - GRB_SEMIRING (MAX, FIRST, UINT32) - GRB_SEMIRING (MAX, FIRST, UINT64) - GRB_SEMIRING (MAX, FIRST, FP32) - GRB_SEMIRING (MAX, FIRST, FP64) - - GRB_SEMIRING (MAX, SECOND, INT8) - GRB_SEMIRING (MAX, SECOND, INT16) - GRB_SEMIRING (MAX, SECOND, INT32) - GRB_SEMIRING (MAX, SECOND, INT64) - GRB_SEMIRING (MAX, SECOND, UINT8) - GRB_SEMIRING (MAX, SECOND, UINT16) - GRB_SEMIRING (MAX, SECOND, UINT32) - GRB_SEMIRING (MAX, SECOND, UINT64) - GRB_SEMIRING (MAX, SECOND, FP32) - GRB_SEMIRING (MAX, SECOND, FP64) - - GRB_SEMIRING (MAX, MIN, INT8) - GRB_SEMIRING (MAX, MIN, INT16) - GRB_SEMIRING (MAX, MIN, INT32) - GRB_SEMIRING (MAX, MIN, INT64) - GRB_SEMIRING (MAX, MIN, UINT8) - GRB_SEMIRING (MAX, MIN, UINT16) - GRB_SEMIRING (MAX, MIN, UINT32) - GRB_SEMIRING (MAX, MIN, UINT64) - GRB_SEMIRING (MAX, MIN, FP32) - GRB_SEMIRING (MAX, MIN, FP64) - -//------------------------------------------------------------------------------ -// GxB_CONTEXT_WORLD -//------------------------------------------------------------------------------ - -struct GB_Context_opaque GB_OPAQUE (CONTEXT_WORLD) = -{ - GB_MAGIC, // magic: initialized - 0, // header_size: statically allocated - NULL, 0, // no user_name for GrB_get/GrB_set - // revised by GxB_Context_get/set: - (double) GB_CHUNK_DEFAULT, // chunk - 1, // nthreads_max - -1, // gpu_id -} ; - -GxB_Context GxB_CONTEXT_WORLD = & GB_OPAQUE (CONTEXT_WORLD) ; - diff --git a/GraphBLAS/Source/GB_ops.h b/GraphBLAS/Source/GB_ops.h deleted file mode 100644 index 0745ec3a64..0000000000 --- a/GraphBLAS/Source/GB_ops.h +++ /dev/null @@ -1,130 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_ops.h: built-in unary and binary operators -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#ifdef __cplusplus -#error "not used for C++" -#endif - -#ifndef GB_OPS_H -#define GB_OPS_H - -//------------------------------------------------------------------------------ -// define all built-in unary and binary operators -//------------------------------------------------------------------------------ - -// nonzombie function for generic case -inline void GB_nonzombie_func (bool *z, const void *x, - int64_t i, GrB_Index j, const void *y) -{ - (*z) = (i >= 0) ; -} - -#define GB_FUNC_T(op,xtype) GB (GB_EVAL4 (_func_, op, _, xtype)) -#define GB_FUNC(op) GB_FUNC_T (op, GB_XTYPE) - -#define GB_TYPE bool -#define GB_XTYPE BOOL -#define GB_BITS 1 -#define GB_REAL -#define GB_BOOLEAN -#include "GB_ops_template.h" - -#define GB_TYPE int8_t -#define GB_XTYPE INT8 -#define GB_BITS 8 -#define GB_REAL -#define GB_SIGNED_INT -#include "GB_ops_template.h" - -#define GB_TYPE int16_t -#define GB_XTYPE INT16 -#define GB_BITS 16 -#define GB_REAL -#define GB_SIGNED_INT -#include "GB_ops_template.h" - -#define GB_TYPE int32_t -#define GB_XTYPE INT32 -#define GB_BITS 32 -#define GB_REAL -#define GB_SIGNED_INT -#define GB_SIGNED_INDEX -#include "GB_ops_template.h" - -#define GB_TYPE int64_t -#define GB_XTYPE INT64 -#define GB_BITS 64 -#define GB_REAL -#define GB_SIGNED_INT -#define GB_SIGNED_INDEX -#define GB_SIGNED_INDEX64 -#include "GB_ops_template.h" - -#define GB_TYPE uint8_t -#define GB_XTYPE UINT8 -#define GB_BITS 8 -#define GB_REAL -#define GB_UNSIGNED_INT -#include "GB_ops_template.h" - -#define GB_TYPE uint16_t -#define GB_XTYPE UINT16 -#define GB_BITS 16 -#define GB_REAL -#define GB_UNSIGNED_INT -#include "GB_ops_template.h" - -#define GB_TYPE uint32_t -#define GB_XTYPE UINT32 -#define GB_BITS 32 -#define GB_REAL -#define GB_UNSIGNED_INT -#include "GB_ops_template.h" - -#define GB_TYPE uint64_t -#define GB_XTYPE UINT64 -#define GB_BITS 64 -#define GB_REAL -#define GB_UNSIGNED_INT -#include "GB_ops_template.h" - -#define GB_TYPE float -#define GB_XTYPE FP32 -#define GB_BITS 32 -#define GB_REAL -#define GB_FLOATING_POINT -#define GB_FLOAT -#include "GB_ops_template.h" - -#define GB_TYPE double -#define GB_XTYPE FP64 -#define GB_BITS 64 -#define GB_REAL -#define GB_FLOATING_POINT -#define GB_DOUBLE -#include "GB_ops_template.h" - -#define GB_TYPE GxB_FC32_t -#define GB_XTYPE FC32 -#define GB_BITS 64 -#define GB_COMPLEX -#define GB_FLOATING_POINT -#define GB_FLOAT_COMPLEX -#include "GB_ops_template.h" - -#define GB_TYPE GxB_FC64_t -#define GB_XTYPE FC64 -#define GB_BITS 128 -#define GB_COMPLEX -#define GB_FLOATING_POINT -#define GB_DOUBLE_COMPLEX -#include "GB_ops_template.h" - -#endif - diff --git a/GraphBLAS/Source/GB_pslice.c b/GraphBLAS/Source/GB_pslice.c deleted file mode 100644 index e0f8e5e926..0000000000 --- a/GraphBLAS/Source/GB_pslice.c +++ /dev/null @@ -1,211 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_pslice: partition Ap for a set of tasks -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// Ap [0..n] is an array with monotonically increasing entries. This function -// slices Ap so that each chunk has the same number of total values of its -// entries. Ap can be A->p for a matrix and then n = A->nvec. Or it can be -// the work needed for computing each vector of a matrix (see GB_ewise_slice -// and GB_subref_slice, for example). - -// If Ap is NULL then the matrix A (not provided here) is full or bitmap, -// which this function handles (Ap is implicit). - -#include "GB.h" - -//------------------------------------------------------------------------------ -// GB_pslice_worker: partition Ap for a set of tasks -//------------------------------------------------------------------------------ - -static void GB_pslice_worker -( - int64_t *restrict Slice, // size ntasks+1 - const int64_t *restrict Ap, // array size n+1 - int tlo, // assign to Slice [(tlo+1):(thi-1)] - int thi -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - #ifdef GB_DEBUG - ASSERT (Ap != NULL) ; - ASSERT (Slice != NULL) ; - ASSERT (0 <= tlo && tlo < thi - 1) ; - for (int t = tlo+1 ; t <= thi-1 ; t++) - { - ASSERT (Slice [t] == -1) ; - } - #endif - - //-------------------------------------------------------------------------- - // assign work to Slice [(tlo+1):(thi-1)] - //-------------------------------------------------------------------------- - - // klo = Slice [tlo] and khi = Slice [thi] are defined on input, where - // tlo < thi - 1. This determines the task boundaries for tasks - // tlo+1 to thi-1, which defines Slice [(tlo+1):(thi-1)]. - - int64_t klo = Slice [tlo] ; - int64_t khi = Slice [thi] ; ASSERT (0 <= klo && klo <= khi) ; - int64_t p1 = Ap [klo] ; - int64_t p2 = Ap [khi] ; ASSERT (p1 <= p2) ; - - if (p1 == p2 || klo == khi) - { - - //---------------------------------------------------------------------- - // no work is left so simply fill in with empty tasks - //---------------------------------------------------------------------- - - int64_t k = klo ; - for (int64_t t = tlo+1 ; t <= thi-1 ; t++) - { - Slice [t] = k ; - } - - } - else // p1 < p2 && klo < khi - { - - //---------------------------------------------------------------------- - // find task t that evenly partitions the work p1:p2 to tasks tlo:thi - //---------------------------------------------------------------------- - - int64_t k = (klo + khi) / 2 ; ASSERT (klo <= k && k <= khi) ; - int64_t p = Ap [k] ; ASSERT (p1 <= p && p <= p2) ; - double ntasks = thi - tlo ; - double ratio = (((double) (p - p1)) / ((double) (p2 - p1))) ; - int t = tlo + (int) floor (ratio * ntasks) ; - t = GB_IMAX (t, tlo+1) ; - t = GB_IMIN (t, thi-1) ; ASSERT (tlo < t && t < thi) ; - - //---------------------------------------------------------------------- - // assign work to task t - //---------------------------------------------------------------------- - - ASSERT (Slice [t] == -1) ; - Slice [t] = k ; - - //---------------------------------------------------------------------- - // recursively partition for tasks (tlo+1):(t-1) and (t+1):(thi-1) - //---------------------------------------------------------------------- - - if (tlo < t-1) - { - GB_pslice_worker (Slice, Ap, tlo, t) ; - } - if (t < thi-1) - { - GB_pslice_worker (Slice, Ap, t, thi) ; - } - } -} - -//------------------------------------------------------------------------------ -// GB_pslice: partition Ap for a set of tasks -//------------------------------------------------------------------------------ - -void GB_pslice // slice Ap -( - int64_t *restrict Slice, // size ntasks+1 - const int64_t *restrict Ap, // array size n+1 (NULL if full or bitmap) - const int64_t n, - const int ntasks, // # of tasks - const bool perfectly_balanced -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - ASSERT (Slice != NULL) ; - #ifdef GB_DEBUG - for (int taskid = 0 ; taskid <= ntasks ; taskid++) - { - Slice [taskid] = -1 ; - } - #endif - - //-------------------------------------------------------------------------- - // slice the work - //-------------------------------------------------------------------------- - - if (Ap == NULL) - { - - //---------------------------------------------------------------------- - // A is full or bitmap: slice 0:n equally for all tasks - //---------------------------------------------------------------------- - - GB_eslice (Slice, n, ntasks) ; - - } - else - { - - //---------------------------------------------------------------------- - // A is sparse or hypersparse - //---------------------------------------------------------------------- - - if (n == 0 || ntasks <= 1 || Ap [n] == 0) - { - // matrix is empty, or a single thread is used - memset ((void *) Slice, 0, ntasks * sizeof (int64_t)) ; - Slice [ntasks] = n ; - } - else - { - // slice Ap by # of entries - Slice [0] = 0 ; - Slice [ntasks] = n ; - if (perfectly_balanced) - { - // this method is costly, and should only be used if the - // work is to be perfectly balanced (in particular, when there - // is just one task per thread, with static scheduling) - const double work = (double) (Ap [n]) ; - int64_t k = 0 ; - for (int taskid = 1 ; taskid < ntasks ; taskid++) - { - // binary search to find k so that Ap [k] == (taskid*work) / - // ntasks. The exact value will not typically not be found; - // just pick what the binary search comes up with. - int64_t wtask = (int64_t) GB_PART (taskid, work, ntasks) ; - int64_t pright = n ; - GB_TRIM_BINARY_SEARCH (wtask, Ap, k, pright) ; - Slice [taskid] = k ; - } - } - else - { - // this is much faster, and results in good load balancing if - // there is more than one task per thread, and dynamic - // scheduling is used. - GB_pslice_worker (Slice, Ap, 0, ntasks) ; - } - } - } - - //-------------------------------------------------------------------------- - // check result - //-------------------------------------------------------------------------- - - #ifdef GB_DEBUG - ASSERT (Slice [0] == 0) ; - ASSERT (Slice [ntasks] == n) ; - for (int taskid = 0 ; taskid < ntasks ; taskid++) - { - ASSERT (Slice [taskid] <= Slice [taskid+1]) ; - } - #endif -} - diff --git a/GraphBLAS/Source/GB_reduce_to_scalar_iso.c b/GraphBLAS/Source/GB_reduce_to_scalar_iso.c deleted file mode 100644 index ee4db8a823..0000000000 --- a/GraphBLAS/Source/GB_reduce_to_scalar_iso.c +++ /dev/null @@ -1,56 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_reduce_to_scalar_iso: reduce an iso matrix to a scalar -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_reduce.h" - -void GB_reduce_to_scalar_iso // s = reduce (A) where A is iso -( - GB_void *restrict s, // output scalar of type reduce->op->ztype - GrB_Monoid monoid, // monoid to use for the reduction - GrB_Matrix A // matrix to reduce -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - ASSERT (A->iso) ; - ASSERT_MATRIX_OK (A, "A for reduce_to_scalar_iso", GB0) ; - ASSERT_MONOID_OK (monoid, "monoid for reduce_to_scalar_iso", GB0) ; - ASSERT (s != NULL) ; - ASSERT (GB_ZOMBIES_OK (A)) ; - ASSERT (GB_JUMBLED_OK (A)) ; - ASSERT (!GB_PENDING (A)) ; - - //-------------------------------------------------------------------------- - // get input matrix and the monoid - //-------------------------------------------------------------------------- - - // A consists of n entries, all equal to Ax [0] - uint64_t n = (uint64_t) (GB_nnz (A) - A->nzombies) ; - ASSERT (n > 0) ; - - // get the monoid - GxB_binary_function freduce = monoid->op->binop_function ; - GrB_Type ztype = monoid->op->ztype ; - size_t zsize = ztype->size ; - GB_Type_code zcode = ztype->code ; - - // a = (ztype) Ax [0] - GB_void a [GB_VLA(zsize)] ; - GB_cast_scalar (a, zcode, A->x, A->type->code, zsize) ; - - //-------------------------------------------------------------------------- - // reduce n entries, all equal to a, to the scalar s, in O(log(n)) time - //-------------------------------------------------------------------------- - - GB_reduce_worker_iso (s, freduce, a, n, zsize) ; -} - diff --git a/GraphBLAS/Source/GB_scalar_wrap.h b/GraphBLAS/Source/GB_scalar_wrap.h deleted file mode 100644 index 9964e8c8a3..0000000000 --- a/GraphBLAS/Source/GB_scalar_wrap.h +++ /dev/null @@ -1,44 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_scalar_wrap.h: definitions for GB_scalar_wrap -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#ifndef GB_SCALAR_WRAP_H -#define GB_SCALAR_WRAP_H - -GrB_Scalar GB_Scalar_wrap // create a new GrB_Scalar with one entry -( - GrB_Scalar s, // GrB_Scalar to create - GrB_Type type, // type of GrB_Scalar to create - void *Sx // becomes S->x, an array of size 1 * type->size -) ; - -// stype can be NULL if op is positional - -// wrap a bare scalar inside a statically-allocated GrB_Scalar -#define GB_SCALAR_WRAP(scalar,bare,stype) \ - struct GB_Scalar_opaque scalar ## _header ; \ - size_t ssize = (stype == NULL) ? 1 : (stype->size) ; \ - GB_void Sx [GB_VLA(ssize)] ; \ - GrB_Scalar scalar = GB_Scalar_wrap (& scalar ## _header, stype, Sx) ; \ - memcpy (Sx, &bare, ssize) ; - -// wrap a void *bare scalar inside a statically-allocated GrB_Scalar -#define GB_SCALAR_WRAP_UDT(scalar,bare,scalar_type) \ - GrB_Type stype = scalar_type ; \ - struct GB_Scalar_opaque scalar ## _header ; \ - size_t ssize = (stype == NULL) ? 1 : (stype->size) ; \ - GB_void Sx [GB_VLA(ssize)] ; \ - GrB_Scalar scalar = NULL ; \ - if (bare != NULL && stype != NULL) \ - { \ - scalar = GB_Scalar_wrap (& scalar ## _header, stype, Sx) ; \ - memcpy (Sx, bare, ssize) ; \ - } - -#endif - diff --git a/GraphBLAS/Source/GB_select_bitmap.c b/GraphBLAS/Source/GB_select_bitmap.c deleted file mode 100644 index df327d1864..0000000000 --- a/GraphBLAS/Source/GB_select_bitmap.c +++ /dev/null @@ -1,173 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_select_bitmap: select entries from a bitmap or full matrix -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// JIT: done. - -#include "GB_select.h" -#include "GB_stringify.h" -#ifndef GBCOMPACT -#include "GB_sel__include.h" -#endif - -#define GB_FREE_ALL \ - GB_phybix_free (C) ; - -GrB_Info GB_select_bitmap -( - GrB_Matrix C, // output matrix, static header - const bool C_iso, // if true, C is iso - const GrB_IndexUnaryOp op, - const bool flipij, // if true, flip i and j for user operator - GrB_Matrix A, // input matrix - const int64_t ithunk, // (int64_t) Thunk, if Thunk is NULL - const GB_void *restrict athunk, // (A->type) Thunk - const GB_void *restrict ythunk, // (op->ytype) Thunk - GB_Werk Werk -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GrB_Info info ; - ASSERT_MATRIX_OK (A, "A for bitmap selector", GB0) ; - ASSERT_INDEXUNARYOP_OK (op, "idxunop for bitmap selector", GB0) ; - ASSERT (GB_IS_BITMAP (A) || GB_IS_FULL (A)) ; - GB_Opcode opcode = op->opcode ; - ASSERT (opcode != GB_NONZOMBIE_idxunop_code) ; - ASSERT (C != NULL && (C->static_header || GBNSTATIC)) ; - - //-------------------------------------------------------------------------- - // get A - //-------------------------------------------------------------------------- - - int64_t anz = GB_nnz_held (A) ; - const size_t asize = A->type->size ; - const GB_Type_code acode = A->type->code ; - - //-------------------------------------------------------------------------- - // allocate C - //-------------------------------------------------------------------------- - - // C->b and C->x are malloc'd, not calloc'd - // set C->iso = C_iso OK - GB_OK (GB_new_bix (&C, // always bitmap, existing header - A->type, A->vlen, A->vdim, GB_Ap_calloc, true, - GxB_BITMAP, false, A->hyper_switch, -1, anz, true, C_iso)) ; - int64_t cnvals ; - - //-------------------------------------------------------------------------- - // determine the number of threads to use - //-------------------------------------------------------------------------- - - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - int nthreads = GB_nthreads (anz, chunk, nthreads_max) ; - - //-------------------------------------------------------------------------- - // copy values of A into C - //-------------------------------------------------------------------------- - - // C and A have the same type, since C is the T matrix from GB_select, - // not the final user's C matrix. In the future A could be typecasted - // into C in the JIT kernel. - - if (C_iso) - { - // Cx [0] = Ax [0] or (A->type) thunk - GB_select_iso (C->x, opcode, athunk, A->x, asize) ; - } - else - { - // Cx [0:anz-1] = Ax [0:anz-1] - GB_memcpy (C->x, A->x, anz * asize, nthreads) ; - } - - //-------------------------------------------------------------------------- - // bitmap selector kernel - //-------------------------------------------------------------------------- - - info = GrB_NO_VALUE ; - - if (GB_IS_INDEXUNARYOP_CODE_POSITIONAL (opcode)) - { - - //---------------------------------------------------------------------- - // bitmap selector for positional ops - //---------------------------------------------------------------------- - - info = GB_select_positional_bitmap (C->b, &cnvals, A, ithunk, op, - nthreads) ; - } - else - { - - //---------------------------------------------------------------------- - // bitmap selector for VALUE* and user-defined ops - //---------------------------------------------------------------------- - - #ifndef GBCOMPACT - GB_IF_FACTORY_KERNELS_ENABLED - { - - //------------------------------------------------------------------ - // via the factory kernel - //------------------------------------------------------------------ - - #define GB_selbit(opname,aname) GB (_sel_bitmap_ ## opname ## aname) - #define GB_SEL_WORKER(opname,aname) \ - { \ - info = GB_selbit (opname, aname) (C->b, &cnvals, A, \ - ythunk, nthreads) ; \ - } \ - break ; - - #include "GB_select_entry_factory.c" - } - #endif - - //---------------------------------------------------------------------- - // via the JIT or PreJIT kernel - //---------------------------------------------------------------------- - - if (info == GrB_NO_VALUE) - { - info = GB_select_bitmap_jit (C->b, &cnvals, C_iso, - A, flipij, ythunk, op, nthreads) ; - } - - //---------------------------------------------------------------------- - // via the generic kernel - //---------------------------------------------------------------------- - - if (info == GrB_NO_VALUE) - { - info = GB_select_generic_bitmap (C->b, &cnvals, A, flipij, ythunk, - op, nthreads) ; - } - } - - //-------------------------------------------------------------------------- - // return result - //-------------------------------------------------------------------------- - - if (info != GrB_SUCCESS) - { - // out of memory, or other error - GB_FREE_ALL ; - return (info) ; - } - - C->nvals = cnvals ; - C->magic = GB_MAGIC ; - ASSERT_MATRIX_OK (C, "C from bitmap selector", GB0) ; - return (GrB_SUCCESS) ; -} - diff --git a/GraphBLAS/Source/GB_slice.h b/GraphBLAS/Source/GB_slice.h deleted file mode 100644 index e23b35e6c9..0000000000 --- a/GraphBLAS/Source/GB_slice.h +++ /dev/null @@ -1,32 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_slice.h: definitions for GB_eslice and GB_pslice -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#ifndef GB_SLICE_H -#define GB_SLICE_H - -void GB_pslice // slice Ap -( - int64_t *restrict Slice, // size ntasks+1 - const int64_t *restrict Ap, // array size n+1 (NULL if full or bitmap) - const int64_t n, - const int ntasks, // # of tasks - const bool perfectly_balanced -) ; - -void GB_eslice -( - // output: - int64_t *Slice, // array of size ntasks+1 - // input: - int64_t e, // number items to partition amongst the tasks - const int ntasks // # of tasks -) ; - -#endif - diff --git a/GraphBLAS/Source/Generator/GB_unop.c b/GraphBLAS/Source/Generator/GB_unop.c deleted file mode 100644 index 22a62470d9..0000000000 --- a/GraphBLAS/Source/Generator/GB_unop.c +++ /dev/null @@ -1,86 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_unop: hard-coded functions for each built-in unary operator -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB.h" -#include "GB_control.h" -#include "GB_unop__include.h" - -// unary operator: z = f(x) -GB_unaryop -GB_ztype -GB_xtype - -// A matrix -GB_atype -GB_declarea -GB_geta - -// C matrix -GB_ctype - -// cij = op (aij) -#define GB_APPLY_OP(pC,pA) \ -{ \ - /* aij = Ax [pA] */ \ - GB_DECLAREA (aij) ; \ - GB_GETA (aij, Ax, pA, false) ; \ - /* Cx [pC] = unop (aij) */ \ - GB_UNARYOP (Cx [pC], aij) ; \ -} - -// disable this operator and use the generic case if these conditions hold -GB_disable - -#include "GB_apply_shared_definitions.h" - -m4_divert(if_unop_apply_enabled) -//------------------------------------------------------------------------------ -// Cx = op (cast (Ax)): apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_apply) -( - GB_void *Cx_out, // Cx and Ax may be aliased - const GB_void *Ax_in, // A is always non-iso for this kernel - const int8_t *restrict Ab, // A->b if A is bitmap - int64_t anz, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_apply_unop_template.c" - return (GrB_SUCCESS) ; - #endif -} -m4_divert(0) - -//------------------------------------------------------------------------------ -// C = op (cast (A')): transpose, typecast, and apply a unary operator -//------------------------------------------------------------------------------ - -GrB_Info GB (_unop_tran) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) -{ - #if GB_DISABLE - return (GrB_NO_VALUE) ; - #else - #include "GB_transpose_template.c" - return (GrB_SUCCESS) ; - #endif -} - diff --git a/GraphBLAS/Source/Generator/GB_unop.h b/GraphBLAS/Source/Generator/GB_unop.h deleted file mode 100644 index e8f4b3ebd5..0000000000 --- a/GraphBLAS/Source/Generator/GB_unop.h +++ /dev/null @@ -1,23 +0,0 @@ - -// SPDX-License-Identifier: Apache-2.0 -m4_divert(if_unop_apply_enabled) -GrB_Info GB (_unop_apply) -( - GB_void *Cx, - const GB_void *Ax, - const int8_t *restrict Ab, - int64_t anz, - int nthreads -) ; -m4_divert(0) - -GrB_Info GB (_unop_tran) -( - GrB_Matrix C, - const GrB_Matrix A, - int64_t *restrict *Workspaces, - const int64_t *restrict A_slice, - int nworkspaces, - int nthreads -) ; - diff --git a/GraphBLAS/Source/GrB_Global_get.c b/GraphBLAS/Source/GrB_Global_get.c deleted file mode 100644 index 9bfb095a86..0000000000 --- a/GraphBLAS/Source/GrB_Global_get.c +++ /dev/null @@ -1,542 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Global_get_*: get a global option -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" -#include "GB_jitifyer.h" - -//------------------------------------------------------------------------------ -// GrB_Global: an object defining the global state -//------------------------------------------------------------------------------ - -struct GB_Global_opaque GB_OPAQUE (WORLD_OBJECT) = -{ - GB_MAGIC, // magic: initialized - 0, // header_size: statically allocated -} ; - -const GrB_Global GrB_GLOBAL = & GB_OPAQUE (WORLD_OBJECT) ; - -//------------------------------------------------------------------------------ -// GB_global_enum_get: get an enum value from the global state -//------------------------------------------------------------------------------ - -static GrB_Info GB_global_enum_get (int32_t *value, int field) -{ - - switch (field) - { - - case GrB_LIBRARY_VER_MAJOR : - - (*value) = GxB_IMPLEMENTATION_MAJOR ; - break ; - - case GrB_LIBRARY_VER_MINOR : - - (*value) = GxB_IMPLEMENTATION_MINOR ; - break ; - - case GrB_LIBRARY_VER_PATCH : - - (*value) = GxB_IMPLEMENTATION_SUB ; - break ; - - case GrB_API_VER_MAJOR : - - (*value) = GxB_SPEC_MAJOR ; - break ; - - case GrB_API_VER_MINOR : - - (*value) = GxB_SPEC_MINOR ; - break ; - - case GrB_API_VER_PATCH : - - (*value) = GxB_SPEC_SUB ; - break ; - - case GrB_BLOCKING_MODE : - - // return just the GrB modes - (*value) = (int) GB_Global_mode_get ( ) ; - if ((*value) == GxB_NONBLOCKING_GPU) (*value) = GrB_NONBLOCKING ; - if ((*value) == GxB_BLOCKING_GPU) (*value) = GrB_BLOCKING ; - break ; - - case GxB_MODE : - - // return all 4 possible modes (GrB and GxB) - (*value) = (int) GB_Global_mode_get ( ) ; - break ; - - case GrB_STORAGE_ORIENTATION_HINT : - - (*value) = (int) (GB_Global_is_csc_get ( )) ? - GrB_COLMAJOR : GrB_ROWMAJOR ; - break ; - - case GxB_FORMAT : - - (*value) = (int) (GB_Global_is_csc_get ( )) ? - GxB_BY_COL : GxB_BY_ROW ; - break ; - - case GxB_GLOBAL_NTHREADS : // same as GxB_NTHREADS - - (*value) = (int) GB_Context_nthreads_max_get (NULL) ; - break ; - - case GxB_GLOBAL_GPU_ID : // same as GxB_GPU_ID - - (*value) = (int) GB_Context_gpu_id_get (NULL) ; - break ; - - case GxB_BURBLE : - - (*value) = (int) GB_Global_burble_get ( ) ; - break ; - - case GxB_LIBRARY_OPENMP : - - #ifdef _OPENMP - (*value) = (int) true ; - #else - (*value) = (int) false ; - #endif - break ; - - case GxB_PRINT_1BASED : - - (*value) = (int) GB_Global_print_one_based_get ( ) ; - break ; - - case GxB_JIT_C_CONTROL : - - (*value) = (int) GB_jitifyer_get_control ( ) ; - break ; - - case GxB_JIT_USE_CMAKE : - - (*value) = (int) GB_jitifyer_get_use_cmake ( ) ; - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Global_get_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Global_get_Scalar -( - GrB_Global g, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Global_get_Scalar (g, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (g) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - int32_t i ; - GrB_Info info = GB_global_enum_get (&i, field) ; - if (info == GrB_SUCCESS) - { - // field specifies an int: assign it to the scalar - info = GB_setElement ((GrB_Matrix) value, NULL, &i, 0, 0, - GB_INT32_code, Werk) ; - } - else - { - double x ; - int64_t i64 ; - switch ((int) field) - { - - case GxB_HYPER_SWITCH : - - x = (double) GB_Global_hyper_switch_get ( ) ; - info = GB_setElement ((GrB_Matrix) value, NULL, &x, 0, 0, - GB_FP64_code, Werk) ; - - break ; - - case GxB_GLOBAL_CHUNK : // same as GxB_CHUNK - - x = GB_Context_chunk_get (NULL) ; - info = GB_setElement ((GrB_Matrix) value, NULL, &x, 0, 0, - GB_FP64_code, Werk) ; - break ; - - case GxB_HYPER_HASH : - - i64 = GB_Global_hyper_hash_get ( ) ; - info = GB_setElement ((GrB_Matrix) value, NULL, &i64, 0, 0, - GB_INT64_code, Werk) ; - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - } - - return (info) ; -} - -//------------------------------------------------------------------------------ -// GB_global_string_get: get a string from the global state -//------------------------------------------------------------------------------ - -static GrB_Info GB_global_string_get (const char **value, int field) -{ - - switch ((int) field) - { - - case GrB_NAME : - case GxB_LIBRARY_NAME : - - (*value) = GxB_IMPLEMENTATION_NAME ; - break ; - - case GxB_LIBRARY_DATE : - - (*value) = GxB_IMPLEMENTATION_DATE ; - break ; - - case GxB_LIBRARY_ABOUT : - - (*value) = GxB_IMPLEMENTATION_ABOUT ; - break ; - - case GxB_LIBRARY_LICENSE : - - (*value) = GxB_IMPLEMENTATION_LICENSE ; - break ; - - case GxB_LIBRARY_COMPILE_DATE : - - (*value) = __DATE__ ; - break ; - - case GxB_LIBRARY_COMPILE_TIME : - - (*value) = __TIME__ ; - break ; - - case GxB_LIBRARY_URL : - - (*value) = "http://faculty.cse.tamu.edu/davis/GraphBLAS" ; - break ; - - case GxB_API_DATE : - - (*value) = GxB_SPEC_DATE ; - break ; - - case GxB_API_ABOUT : - - (*value) = GxB_SPEC_ABOUT ; - break ; - - case GxB_API_URL : - - (*value) = "http://graphblas.org" ; - break ; - - case GxB_COMPILER_NAME : - - (*value) = GB_COMPILER_NAME ; - break ; - - //---------------------------------------------------------------------- - // JIT configuration: - //---------------------------------------------------------------------- - - case GxB_JIT_C_COMPILER_NAME : - - (*value) = GB_jitifyer_get_C_compiler ( ) ; - break ; - - case GxB_JIT_C_COMPILER_FLAGS : - - (*value) = GB_jitifyer_get_C_flags ( ) ; - break ; - - case GxB_JIT_C_LINKER_FLAGS : - - (*value) = GB_jitifyer_get_C_link_flags ( ) ; - break ; - - case GxB_JIT_C_LIBRARIES : - - (*value) = GB_jitifyer_get_C_libraries ( ) ; - break ; - - case GxB_JIT_C_CMAKE_LIBS : - - (*value) = GB_jitifyer_get_C_cmake_libs ( ) ; - break ; - - case GxB_JIT_C_PREFACE : - - (*value) = GB_jitifyer_get_C_preface ( ) ; - break ; - - case GxB_JIT_CUDA_PREFACE : - - (*value) = GB_jitifyer_get_CUDA_preface ( ) ; - break ; - - case GxB_JIT_ERROR_LOG : - - (*value) = GB_jitifyer_get_error_log ( ) ; - break ; - - case GxB_JIT_CACHE_PATH : - - (*value) = GB_jitifyer_get_cache_path ( ) ; - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Global_get_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Global_get_String -( - GrB_Global g, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Global_get_String (g, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (g) ; - GB_RETURN_IF_NULL (value) ; - (*value) = '\0' ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - const char *s ; - GrB_Info info = GB_global_string_get (&s, field) ; - if (info == GrB_SUCCESS) - { - strcpy (value, s) ; - } - #pragma omp flush - return (info) ; -} - -//------------------------------------------------------------------------------ -// GrB_Global_get_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Global_get_INT32 -( - GrB_Global g, - int32_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Global_get_INT32 (g, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (g) ; - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - return (GB_global_enum_get (value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Global_get_SIZE -//------------------------------------------------------------------------------ - -GrB_Info GrB_Global_get_SIZE -( - GrB_Global g, - size_t * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Global_get_SIZE (g, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (g) ; - GB_RETURN_IF_NULL (value) ; - (*value) = 0 ; - - //-------------------------------------------------------------------------- - // get the size of the field - //-------------------------------------------------------------------------- - - const char *s ; - GrB_Info info = GB_global_string_get (&s, field) ; - if (info == GrB_SUCCESS) - { - (*value) = strlen (s) + 1 ; - } - else - { - switch ((int) field) - { - - case GxB_BITMAP_SWITCH : - - (*value) = sizeof (double) * GxB_NBITMAP_SWITCH ; - break ; - - case GxB_COMPILER_VERSION : - - (*value) = sizeof (int32_t) * 3 ; - break ; - - case GxB_MALLOC_FUNCTION : - case GxB_CALLOC_FUNCTION : - case GxB_REALLOC_FUNCTION : - case GxB_FREE_FUNCTION : - - (*value) = sizeof (void *) ; - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Global_get_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Global_get_VOID -( - GrB_Global g, - void * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Global_get_VOID (g, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (g) ; - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - switch ((int) field) - { - - case GxB_BITMAP_SWITCH : - - { - double *dvalue = (double *) value ; - for (int k = 0 ; k < GxB_NBITMAP_SWITCH ; k++) - { - dvalue [k] = (double) GB_Global_bitmap_switch_get (k) ; - } - } - break ; - - case GxB_COMPILER_VERSION : - - { - int32_t *ivalue = (int32_t *) value ; - ivalue [0] = GB_COMPILER_MAJOR ; - ivalue [1] = GB_COMPILER_MINOR ; - ivalue [2] = GB_COMPILER_SUB ; - } - break ; - - case GxB_MALLOC_FUNCTION : - { - void **func = (void **) value ; - (*func) = GB_Global_malloc_function_get ( ) ; - } - break ; - - case GxB_CALLOC_FUNCTION : - { - void **func = (void **) value ; - (*func) = GB_Global_calloc_function_get ( ) ; - } - break ; - - case GxB_REALLOC_FUNCTION : - { - void **func = (void **) value ; - (*func) = GB_Global_realloc_function_get ( ) ; - } - break ; - - case GxB_FREE_FUNCTION : - { - void **func = (void **) value ; - (*func) = GB_Global_free_function_get ( ) ; - } - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - diff --git a/GraphBLAS/Source/GrB_Global_set.c b/GraphBLAS/Source/GrB_Global_set.c deleted file mode 100644 index 540b69d06e..0000000000 --- a/GraphBLAS/Source/GrB_Global_set.c +++ /dev/null @@ -1,324 +0,0 @@ -//------------------------------------------------------------------------------ -// GrB_Global_set_*: set a global option -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#include "GB_get_set.h" -#include "GB_jitifyer.h" - -//------------------------------------------------------------------------------ -// GB_global_enum_set: get an enum value from the global state -//------------------------------------------------------------------------------ - -static GrB_Info GB_global_enum_set (int32_t value, int field) -{ - - switch (field) - { - - case GrB_STORAGE_ORIENTATION_HINT : - - switch (value) - { - case GrB_ROWMAJOR : value = GxB_BY_ROW ; break ; - case GrB_COLMAJOR : value = GxB_BY_COL ; break ; - case GrB_BOTH : value = GxB_BY_ROW ; break ; - case GrB_UNKNOWN : value = GxB_BY_ROW ; break ; - default : return (GrB_INVALID_VALUE) ; - } - // fall through to the GxB_FORMAT case - - case GxB_FORMAT : - - if (! (value == GxB_BY_ROW || value == GxB_BY_COL)) - { - return (GrB_INVALID_VALUE) ; - } - GB_Global_is_csc_set (value != (int) GxB_BY_ROW) ; - break ; - - case GxB_GLOBAL_NTHREADS : // same as GxB_NTHREADS - - GB_Context_nthreads_max_set (NULL, value) ; - break ; - - case GxB_GLOBAL_GPU_ID : // same as GxB_GPU_ID - - GB_Context_gpu_id_set (NULL, value) ; - break ; - - case GxB_BURBLE : - - GB_Global_burble_set ((bool) value) ; - break ; - - case GxB_PRINT_1BASED : - - GB_Global_print_one_based_set ((bool) value) ; - break ; - - case GxB_JIT_USE_CMAKE : - - GB_jitifyer_set_use_cmake ((bool) value) ; - break ; - - case GxB_JIT_C_CONTROL : - - GB_jitifyer_set_control (value) ; - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - - return (GrB_SUCCESS) ; -} - -//------------------------------------------------------------------------------ -// GrB_Global_set_Scalar -//------------------------------------------------------------------------------ - -GrB_Info GrB_Global_set_Scalar -( - GrB_Global g, - GrB_Scalar value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Global_set_Scalar (g, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (g) ; - GB_RETURN_IF_NULL_OR_FAULTY (value) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - double dvalue = 0 ; - int32_t ivalue = 0 ; - int64_t i64value = 0 ; - GrB_Info info ; - - switch ((int) field) - { - - case GxB_HYPER_SWITCH : - - info = GrB_Scalar_extractElement_FP64 (&dvalue, value) ; - if (info == GrB_SUCCESS) - { - GB_Global_hyper_switch_set ((float) dvalue) ; - } - break ; - - case GxB_GLOBAL_CHUNK : // same as GxB_CHUNK - - info = GrB_Scalar_extractElement_FP64 (&dvalue, value) ; - if (info == GrB_SUCCESS) - { - GB_Context_chunk_set (NULL, dvalue) ; - } - break ; - - case GxB_HYPER_HASH : - - info = GrB_Scalar_extractElement_INT64 (&i64value, value) ; - if (info == GrB_SUCCESS) - { - GB_Global_hyper_hash_set (i64value) ; - } - break ; - - default : - - info = GrB_Scalar_extractElement_INT32 (&ivalue, value) ; - if (info == GrB_SUCCESS) - { - info = GB_global_enum_set (ivalue, field) ; - } - break ; - } - - return ((info == GrB_NO_VALUE) ? GrB_EMPTY_OBJECT : info) ; -} - -//------------------------------------------------------------------------------ -// GrB_Global_set_String -//------------------------------------------------------------------------------ - -GrB_Info GrB_Global_set_String -( - GrB_Global g, - char * value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Global_set_String (g, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (g) ; - GB_RETURN_IF_NULL (value) ; - - //-------------------------------------------------------------------------- - // get the field - //-------------------------------------------------------------------------- - - switch ((int) field) - { - - case GxB_JIT_C_COMPILER_NAME : - - return (GB_jitifyer_set_C_compiler (value)) ; - - case GxB_JIT_C_COMPILER_FLAGS : - - return (GB_jitifyer_set_C_flags (value)) ; - - case GxB_JIT_C_LINKER_FLAGS : - - return (GB_jitifyer_set_C_link_flags (value)) ; - - case GxB_JIT_C_LIBRARIES : - - return (GB_jitifyer_set_C_libraries (value)) ; - - case GxB_JIT_C_CMAKE_LIBS : - - return (GB_jitifyer_set_C_cmake_libs (value)) ; - - case GxB_JIT_C_PREFACE : - - return (GB_jitifyer_set_C_preface (value)) ; - - case GxB_JIT_CUDA_PREFACE : - - return (GB_jitifyer_set_CUDA_preface (value)) ; - - case GxB_JIT_ERROR_LOG : - - return (GB_jitifyer_set_error_log (value)) ; - - case GxB_JIT_CACHE_PATH : - - return (GB_jitifyer_set_cache_path (value)) ; - - default : - - return (GrB_INVALID_VALUE) ; - } -} - -//------------------------------------------------------------------------------ -// GrB_Global_set_INT32 -//------------------------------------------------------------------------------ - -GrB_Info GrB_Global_set_INT32 -( - GrB_Global g, - int32_t value, - GrB_Field field -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Global_set_INT32 (g, value, field)") ; - GB_RETURN_IF_NULL_OR_FAULTY (g) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - return (GB_global_enum_set (value, field)) ; -} - -//------------------------------------------------------------------------------ -// GrB_Global_set_VOID -//------------------------------------------------------------------------------ - -GrB_Info GrB_Global_set_VOID -( - GrB_Global g, - void * value, - GrB_Field field, - size_t size -) -{ - - //-------------------------------------------------------------------------- - // check inputs - //-------------------------------------------------------------------------- - - GB_WHERE1 ("GrB_Global_set_VOID (g, value, field, size)") ; - GB_RETURN_IF_NULL_OR_FAULTY (g) ; - - //-------------------------------------------------------------------------- - // set the field - //-------------------------------------------------------------------------- - - switch ((int) field) - { - - case GxB_BITMAP_SWITCH : - - if (value == NULL) - { - // set all switches to their default - GB_Global_bitmap_switch_default ( ) ; - } - else - { - if (size < sizeof (double) * GxB_NBITMAP_SWITCH) - { - return (GrB_INVALID_VALUE) ; - } - double *dvalue = (double *) value ; - for (int k = 0 ; k < GxB_NBITMAP_SWITCH ; k++) - { - float b = (float) dvalue [k] ; - GB_Global_bitmap_switch_set (k, b) ; - } - } - break ; - - case GxB_PRINTF : - - if (size != sizeof (GB_printf_function_t)) - { - return (GrB_INVALID_VALUE) ; - } - GB_Global_printf_set ((GB_printf_function_t) value) ; - break ; - - case GxB_FLUSH : - - if (size != sizeof (GB_flush_function_t)) - { - return (GrB_INVALID_VALUE) ; - } - GB_Global_flush_set ((GB_flush_function_t) value) ; - break ; - - default : - - return (GrB_INVALID_VALUE) ; - } - - #pragma omp flush - return (GrB_SUCCESS) ; -} - diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_reduce.c b/GraphBLAS/Source/JitKernels/GB_jit_kernel_reduce.c deleted file mode 100644 index 8ba7b59d82..0000000000 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_reduce.c +++ /dev/null @@ -1,96 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_jit_kernel_reduce.c: JIT kernel for reduction to scalar -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -// The GB_jitifyer constructs a *.c file with macro definitions specific to the -// problem instance, such as the excerpts for the GB_jit_reduce_2c1fbb2 kernel, -// below, which a kernel that computes the scalar reduce of a double matrix in -// bitmap form, using the GrB_PLUS_FP64_MONOID. The code 2c1fbb2 is computed -// by GB_enumify_reduce. The macros are followed by an #include with this -// file, to define the kernel routine itself. The kernel is always called -// GB_jit_kernel, regardless of what it computes. - -#ifdef for_comments_only // only so vim will add color to the code below: - - // example file: GB_jit_reduce_2c1fbb2.c - - #include "GB_jit_kernel_reduce.h" - - // reduce: (plus, double) - - // monoid: - #define GB_Z_TYPE double - #define GB_ADD(z,x,y) z = (x) + (y) - #define GB_UPDATE(z,y) z += y - #define GB_DECLARE_IDENTITY(z) double z = 0 - #define GB_DECLARE_IDENTITY_CONST(z) const double z = 0 - #define GB_HAS_IDENTITY_BYTE 1 - #define GB_IDENTITY_BYTE 0x00 - #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) - #define GB_Z_IGNORE_OVERFLOW 1 - #define GB_Z_NBITS 64 - #define GB_Z_ATOMIC_BITS 64 - #define GB_Z_HAS_ATOMIC_UPDATE 1 - #define GB_Z_HAS_OMP_ATOMIC_UPDATE 1 - #define GB_Z_HAS_CUDA_ATOMIC_BUILTIN 1 - #define GB_Z_CUDA_ATOMIC GB_cuda_atomic_add - #define GB_Z_CUDA_ATOMIC_TYPE double - #define GB_GETA_AND_UPDATE(z,Ax,p) GB_UPDATE (z, Ax [p]) - - // A matrix: bitmap - #define GB_A_IS_HYPER 0 - #define GB_A_IS_SPARSE 0 - #define GB_A_IS_BITMAP 1 - #define GB_A_IS_FULL 0 - #define GBP_A(Ap,k,vlen) ((k) * (vlen)) - #define GBH_A(Ah,k) (k) - #define GBI_A(Ai,p,vlen) ((p) % (vlen)) - #define GBB_A(Ab,p) Ab [p] - #define GB_A_ISO 0 - #define GB_A_HAS_ZOMBIES 0 - #define GB_A_TYPE double - #define GB_A2TYPE double - #define GB_DECLAREA(a) double a - #define GB_GETA(a,Ax,p,iso) a = Ax [p] - - // panel size for reduction: - #define GB_PANEL 32 - - #include "GB_monoid_shared_definitions.h" - - #include "GB_jit_kernel_reduce.c" - -#endif - -//------------------------------------------------------------------------------ -// reduce to a non-iso matrix to scalar, for monoids only -//------------------------------------------------------------------------------ - -// The two template files GB_reduce_to_scalar_template.c and GB_reduce_panel.c -// appear in GraphBLAS/Source/Template. They are used by both the pre-compiled -// kernels in GraphBLAS/Source/FactoryKernels, and by the JIT kernel here. - -GB_JIT_GLOBAL GB_JIT_KERNEL_REDUCE_PROTO (GB_jit_kernel) ; -GB_JIT_GLOBAL GB_JIT_KERNEL_REDUCE_PROTO (GB_jit_kernel) -{ - GB_Z_TYPE z = (* ((GB_Z_TYPE *) result)) ; - GB_Z_TYPE *W = (GB_Z_TYPE *) Workspace ; - #if GB_A_HAS_ZOMBIES || GB_A_IS_BITMAP || (GB_PANEL == 1) - { - #include "GB_reduce_to_scalar_template.c" - } - #else - { - #include "GB_reduce_panel.c" - } - #endif - // (*result) = z ; - memcpy (result, &z, sizeof (GB_Z_TYPE)) ; - return (GrB_SUCCESS) ; -} - diff --git a/GraphBLAS/Source/README.txt b/GraphBLAS/Source/README.txt index da50af4b12..daa6740c2f 100644 --- a/GraphBLAS/Source/README.txt +++ b/GraphBLAS/Source/README.txt @@ -1,19 +1,192 @@ -SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. SPDX-License-Identifier: Apache-2.0 This folder, GraphBLAS/Source, contains all the primary source files for -GraphBLAS, an internal include files that are meant for internal -inclusion in GraphBLAS itself. They should not be included in end-user -applications. +GraphBLAS, and internal include files that are meant for internal inclusion in +GraphBLAS itself. They should not be included in end-user applications. -The Template/ files are not compiled separately, but are #include'd into files -in this folder instead. +The Source/*/template/* files are not compiled separately, but are #include'd +into files in this folder instead. The are templatized source files. The +Source/*/include/* files are header files for template methods. Both template +and include files are merged into the JITpackage and then exported to +~/.SuiteSparse/GrB.x.y.z/src. -The FactoryKernel/* files are created by the *.m scripts from the -Generator/* files, and should not be editted. If the Generator/ files are -modified then type: +Source/*/factory/* files are not used in the JIT. - codegen +Files and folders in Source/ -in MATLAB to construct them. +aliased methods for determining if any components of a matrix + are aliased (shared) with another matrix. Such a matrix + is called shallow (an array such as A->i is shallow + if A->i_shallow is true, and is owned by another matrix). + Such matrices are never returned to the user; they are + only internal. + +apply GrB_apply + +assign GrB_assgn and GxB_assign + +binaryop GrB_BinaryOp object + +builder GrB_build + +builtin builtin types, operators, monoids, and semirings + +callback JIT kernels are not linked against -lgraphblas and thus + cannot call back into GraphBLAS directly. Instead, a + struct containing function pointers to various utility + functions is passed to each JIT kernel. + +cast typecasting + +clear GrB_clear + +codegen MATLAB scripts for creating ../FactoryKernels, + Source/mxm/GB_AxB__any_pair_iso.c, and + Source/mxm/GB_AxB__include1.h. + +compatible testing if operators and types are compatible (if they can + be typecasted to another type. + +concat GxB_concat + +context GxB_Context object + +convert convert between matrix formats (sparse, hypersparse, bitmap, + and full), and conform a matrix to its desired format. + +cpu wrapper for Google's cpu_featuers package + +cumsum cumulative sum + +descriptor GrB_Descriptor object + +diag GrB_diag and GxB_diag + +dup GrB_dup + +element GrB_setElement, GrB_extractElement, GrB_removeElement + +ewise GrB_eWiseAdd, GrB_eWiseMult, and GxB_eWiseUnion + +extract GrB_extract + +extractTuples GrB_extractTuples + +gateway definitions for calling methods in the CUDA folder + +GB.h primary internal include file + +GB_control.h controls which FactoryKernels are compiled + +generic definitions for generic methods + +get_set GrB_get, GrB_set + +global global variables and the routines for accessing them + +helper methods used in MATLAB/Octave @GrB interface only + +hyper methods for hypersparse matrices + +ij determining properities of I and J index lists for + GrB_extract, GrB_assign, and GxB_subassign + +import_export GrB_import, GrB_export, GxB_import, and GxB_export + +include general-purpose header files that do not fit into any + particular subfolder of GraphBLAS/Source, such as compiler + settings, and GB_include.h which is a primary internal + include file. + +indexunaryop GrB_IndexUnaryOp object + +init GrB_init, GxB_init, GrB_finalize, GrB_error, GrB_getVersion + +iso iso-valued matrices + +iterator GxB_Iterator object and its methods + +jitifyer the GraphBLAS Just-In-Time compiler for CPU and CUDA JIT + kernels + +jit_kernels templates for all CPU JIT kernels. These are not compiled + when the libgraphblas.so library is built. Instead, they + are compiled at run time when requested by the JIT. + +jit_wrappers interfaces that access the JIT to call/load/compile each + CPU JIT kernel + +kronecker GrB_kronecker + +lz4_wrapper wrapper for the lz4 compression package + +mask mask/accum methods, for computing C+=T + +math basic mathematical functions + +matrix GrB_Matrix object + +memory memory allocators (wrappers for malloc, free, etc), + memset, memcpy + +monoid GrB_Monoid object + +mxm GrB_mxm, GrB_vxm, and GrB_mxv + +nvals GrB_nvals + +ok debugging assertions + +omp OpenMP interface and atomics + +op methods for operators (GrB_UnaryOp, GrB_BinaryOp, etc) + +pack_unpack GxB_pack, GxB_unpack + +pending pending tuples for updates to matrices, vectors, and scalars + +positional methods for positional operators + +print GxB_print, GxB_fprint + +README.txt this file + +reduce GrB_reduce, to scalar and vector + +reshape GrB_reshape + +resize GrB_resize + +scalar GrB_Scalar object + +select GrB_select + +semiring GrB_Semiring object + +serialize GrB_serialize, GrB_deserialze + +slice methods for slicing matrices to create parallel tasks + +sort GxB_sort, and internal sorting methods + +split GxB_split + +transplant transplant contents of one matrix into another + +transpose GrB_transpose + +type GrB_Type object + +unaryop GrB_UnaryOp object + +vector GrB_Vector object + +wait GrB_wait + +werk the Werk space is a small amount of space on the stack + use for small things (scalars, O(# parallel OpenMP tasks), + and such. It is spell differently for easier 'grep'. + +zstd_wrapper wrapper for the zstd compression package diff --git a/GraphBLAS/Source/Shared/README.txt b/GraphBLAS/Source/Shared/README.txt deleted file mode 100644 index 0aca405859..0000000000 --- a/GraphBLAS/Source/Shared/README.txt +++ /dev/null @@ -1,5 +0,0 @@ -GraphBLAS/Source/Shared: - -This folder contains all source code that is required by both the primary -GraphBLAS library, and the CUDA kernels. - diff --git a/GraphBLAS/Source/Template/GB_Template.h b/GraphBLAS/Source/Template/GB_Template.h deleted file mode 100644 index f89ae26041..0000000000 --- a/GraphBLAS/Source/Template/GB_Template.h +++ /dev/null @@ -1,84 +0,0 @@ -//------------------------------------------------------------------------------ -// GB_Template.h: definitions for Template methods -//------------------------------------------------------------------------------ - -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -// SPDX-License-Identifier: Apache-2.0 - -//------------------------------------------------------------------------------ - -#ifndef GB_TEMPLATE_H -#define GB_TEMPLATE_H - -//------------------------------------------------------------------------------ -// definitions that modify GraphBLAS.h -//------------------------------------------------------------------------------ - -#include "GB_dev.h" -#include "GB_compiler.h" -#include "GB_warnings.h" -#include "GB_coverage.h" -#define GB_LIBRARY - -//------------------------------------------------------------------------------ -// user-visible GraphBLAS.h -//------------------------------------------------------------------------------ - -#include "GraphBLAS.h" -#undef I - -#ifdef GBMATLAB -#undef GRAPHBLAS_HAS_CUDA -#endif - -//------------------------------------------------------------------------------ -// handle the restrict and 'static inline' keywords -//------------------------------------------------------------------------------ - -// Intentionally shadow the built-in "restrict" keyword. See GraphBLAS.h for -// the definition of GB_restrict. It becomes empty for C++, and "__restrict" -// for MS Visual Studio. Otherwise, GB_restrict is just "restrict" on C11 -// compliant compilers. I prefer to use the "restrict" keyword to make the -// code readable. This #define is a patch for compilers that don't support it: - -#define restrict GB_restrict - -// for internal static inline functions (will be redefined for CUDA) -#undef GB_STATIC_INLINE -#define GB_STATIC_INLINE static inline - -//------------------------------------------------------------------------------ -// internal #include files -//------------------------------------------------------------------------------ - -#include "GB_prefix.h" -#include "GB_bytes.h" -#include "GB_defaults.h" -#include "GB_index.h" -#include "GB_complex.h" -#include "GB_pun.h" -#include "GB_atomics.h" -#include "GB_printf_kernels.h" -#include "GB_assert_kernels.h" -#include "GB_opaque.h" -#include "GB_math_macros.h" -#include "GB_binary_search.h" -#include "GB_zombie.h" -#include "GB_partition.h" -#include "GB_memory_macros.h" -#include "GB_werk.h" -#include "GB_nthreads.h" -#include "GB_log2.h" -#include "GB_task_struct.h" -#include "GB_hash.h" -#include "GB_wait_macros.h" -#include "GB_AxB_macros.h" -#include "GB_ek_slice_kernels.h" -#include "GB_bitmap_scatter.h" -#include "GB_int64_mult.h" -#include "GB_hyper_hash_lookup.h" -#include "GB_omp_kernels.h" -#include "GB_callback.h" - -#endif - diff --git a/GraphBLAS/Source/Template/README.txt b/GraphBLAS/Source/Template/README.txt deleted file mode 100644 index 4b595ebc71..0000000000 --- a/GraphBLAS/Source/Template/README.txt +++ /dev/null @@ -1,15 +0,0 @@ -SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -SPDX-License-Identifier: Apache-2.0 - -This is the GraphBLAS/Source/Template folder. - -These files are not stand-alone, but are #include'd in files in Source/*.c, -Source/GB.h, Source/Generator/*.c, Source/FactoryKernels/*.c, and -Source/JitKernels/*.c to generate code. - -Files with the name GB_*_factory.c are "switch factories", where the -#include'ing file #define's a GB_WORKER macro that is then specialized by the -*factory.c code to generate workers for different semirings, types, and -operators. Some of the *factory.c files are two-level, where one *factory.c -file #include's another one from this same folder. - diff --git a/GraphBLAS/Source/GB_aliased.h b/GraphBLAS/Source/aliased/GB_aliased.h similarity index 100% rename from GraphBLAS/Source/GB_aliased.h rename to GraphBLAS/Source/aliased/GB_aliased.h diff --git a/GraphBLAS/Source/GB_all_aliased.c b/GraphBLAS/Source/aliased/GB_all_aliased.c similarity index 98% rename from GraphBLAS/Source/GB_all_aliased.c rename to GraphBLAS/Source/aliased/GB_all_aliased.c index 587faeeeb9..a1a16b3b8d 100644 --- a/GraphBLAS/Source/GB_all_aliased.c +++ b/GraphBLAS/Source/aliased/GB_all_aliased.c @@ -11,7 +11,7 @@ // B (or both NULL), or if all components A and B are aliased to each other. // In the latter case, that component of A and B will always be shallow, in // either A or B, or both. NULL pointers are considered aliased. The A->Y and -// B->Y hyperhashes are ignored. +// B->Y hyper_hash matrices are ignored. #include "GB.h" diff --git a/GraphBLAS/Source/GB_any_aliased.c b/GraphBLAS/Source/aliased/GB_any_aliased.c similarity index 100% rename from GraphBLAS/Source/GB_any_aliased.c rename to GraphBLAS/Source/aliased/GB_any_aliased.c diff --git a/GraphBLAS/Source/GB_is_shallow.c b/GraphBLAS/Source/aliased/GB_is_shallow.c similarity index 100% rename from GraphBLAS/Source/GB_is_shallow.c rename to GraphBLAS/Source/aliased/GB_is_shallow.c diff --git a/GraphBLAS/Source/GB_apply.c b/GraphBLAS/Source/apply/GB_apply.c similarity index 98% rename from GraphBLAS/Source/GB_apply.c rename to GraphBLAS/Source/apply/GB_apply.c index 9ef07e6967..46c6b7190f 100644 --- a/GraphBLAS/Source/GB_apply.c +++ b/GraphBLAS/Source/apply/GB_apply.c @@ -13,11 +13,11 @@ #define GB_FREE_ALL ; -#include "GB_apply.h" -#include "GB_binop.h" -#include "GB_transpose.h" -#include "GB_accum_mask.h" -#include "GB_scalar_wrap.h" +#include "apply/GB_apply.h" +#include "binaryop/GB_binop.h" +#include "transpose/GB_transpose.h" +#include "mask/GB_accum_mask.h" +#include "scalar/GB_Scalar_wrap.h" GrB_Info GB_apply // C = accum (C, op(A)) or op(A') ( diff --git a/GraphBLAS/Source/GB_apply.h b/GraphBLAS/Source/apply/GB_apply.h similarity index 98% rename from GraphBLAS/Source/GB_apply.h rename to GraphBLAS/Source/apply/GB_apply.h index eb3690e6ad..1727e9f589 100644 --- a/GraphBLAS/Source/GB_apply.h +++ b/GraphBLAS/Source/apply/GB_apply.h @@ -10,7 +10,7 @@ #ifndef GB_APPLY_H #define GB_APPLY_H #include "GB.h" -#include "GB_unop.h" +#include "unaryop/GB_unop.h" GrB_Info GB_apply // C = accum (C, op(A)) or op(A') ( diff --git a/GraphBLAS/Source/apply/GB_apply_op.c b/GraphBLAS/Source/apply/GB_apply_op.c new file mode 100644 index 0000000000..d1ffe66906 --- /dev/null +++ b/GraphBLAS/Source/apply/GB_apply_op.c @@ -0,0 +1,795 @@ +//------------------------------------------------------------------------------ +// GB_apply_op: typecast and apply a unary/binary/idxunop operator to an array +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// JIT: done, but could extend for positional ops. + +// Cx = op (A) + +// Cx and A->x may be aliased. + +// This function is CSR/CSC agnostic. For positional ops, A is treated as if +// it is in CSC format. The caller has already modified the op if A is in CSR +// format. + +#include "apply/GB_apply.h" +#include "binaryop/GB_binop.h" +#include "slice/GB_ek_slice.h" +#include "include/GB_unused.h" +#include "jitifyer/GB_stringify.h" +#ifndef GBCOMPACT +#include "FactoryKernels/GB_uop__include.h" +#include "FactoryKernels/GB_ew__include.h" +#endif + +#define GB_FREE_ALL \ +{ \ + GB_WERK_POP (A_ek_slicing, int64_t) ; \ +} + +GrB_Info GB_apply_op // apply a unary op, idxunop, or binop, Cx = op (A) +( + GB_void *Cx, // output array + const GrB_Type ctype, // type of C + const GB_iso_code C_code_iso, // C non-iso, or code to compute C iso value + const GB_Operator op_in, // unary/index-unary/binop to apply + const GrB_Scalar scalar, // scalar to bind to binary operator + bool binop_bind1st, // if true, C=binop(s,A), else C=binop(A,s) + bool flipij, // if true, flip i,j for user idxunop + const GrB_Matrix A, // input matrix + GB_Werk Werk +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GrB_Info info ; + GB_Operator op = op_in ; + ASSERT (Cx != NULL) ; + ASSERT_MATRIX_OK (A, "A input for GB_apply_op", GB0) ; + ASSERT (GB_JUMBLED_OK (A)) ; // A can be jumbled + GB_WERK_DECLARE (A_ek_slicing, int64_t) ; + ASSERT (GB_IMPLIES (op != NULL, ctype == op->ztype)) ; + ASSERT_SCALAR_OK_OR_NULL (scalar, "scalar for GB_apply_op", GB0) ; + + //-------------------------------------------------------------------------- + // get A + //-------------------------------------------------------------------------- + + // A->x is not const since the operator might be applied in-place, if + // C is aliased to C. + + GB_void *Ax = (GB_void *) A->x ; // A->x has type A->type + const int8_t *Ab = A->b ; // only if A is bitmap + const GrB_Type Atype = A->type ; // type of A->x + const int64_t anz = GB_nnz_held (A) ; // size of A->x and Cx + + //-------------------------------------------------------------------------- + // determine the maximum number of threads to use + //-------------------------------------------------------------------------- + + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + + //-------------------------------------------------------------------------- + // get the operator + //-------------------------------------------------------------------------- + + GB_Opcode opcode ; + bool op_is_unop = false ; + bool op_is_binop = false ; + bool is64 = false ; + bool is32 = false ; + + if (op != NULL) + { + opcode = op->opcode ; + op_is_unop = GB_IS_UNARYOP_CODE (opcode) ; + op_is_binop = GB_IS_BINARYOP_CODE (opcode) ; + is64 = (op->ztype == GrB_INT64) ; + is32 = (op->ztype == GrB_INT32) ; + + if (op_is_binop && GB_OPCODE_IS_POSITIONAL (opcode)) + { + // rename positional binary ops to positional unary ops + GrB_UnaryOp op1 = NULL ; + switch (opcode) + { + case GB_FIRSTI_binop_code : // z = first_i(A(i,j),y) == i + case GB_SECONDI_binop_code : // z = second_i(x,A(i,j)) == i + // rename FIRSTI and SECONDI to POSITIONI + op1 = is64 ? GxB_POSITIONI_INT64 : GxB_POSITIONI_INT32 ; + break ; + + case GB_FIRSTI1_binop_code : // z = first_i1(A(i,j),y) == i+1 + case GB_SECONDI1_binop_code : // z = second_i1(x,A(i,j)) == i+1 + // rename FIRSTI1 and SECONDI1 to POSITIONI1 + op1 = is64 ? GxB_POSITIONI1_INT64 : GxB_POSITIONI1_INT32 ; + break ; + + case GB_FIRSTJ_binop_code : // z = first_j(A(i,j),y) == j + case GB_SECONDJ_binop_code : // z = second_j(x,A(i,j)) == j + // rename FIRSTJ and SECONDJ to POSITIONJ + op1 = is64 ? GxB_POSITIONJ_INT64 : GxB_POSITIONJ_INT32 ; + break ; + + case GB_FIRSTJ1_binop_code : // z = first_j1(A(i,j),y) == j+1 + case GB_SECONDJ1_binop_code : // z = second_j1(x,A(i,j)) == j+1 + // rename FIRSTJ1 and SECONDJ1 to POSITIONJ1 + op1 = is64 ? GxB_POSITIONJ1_INT64 : GxB_POSITIONJ1_INT32 ; + break ; + + default:; + } + ASSERT (op1 != NULL) ; + op = (GB_Operator) op1 ; + opcode = op->opcode ; + op_is_unop = true ; + op_is_binop = false ; + ASSERT (GB_OPCODE_IS_POSITIONAL (opcode)) ; + } + + } + else + { + // C is iso, with no operator to apply; just call GB_unop_iso below. + ASSERT (C_code_iso == GB_ISO_1 || // C iso value is 1 + C_code_iso == GB_ISO_S || // C iso value is the scalar + C_code_iso == GB_ISO_A) ; // C iso value is the iso value of A + opcode = GB_NOP_code ; + } + + //-------------------------------------------------------------------------- + // determine number of threads to use and slice the A matrix if needed + //-------------------------------------------------------------------------- + + int64_t anvec = A->nvec ; + int A_ntasks = 0 ; + int A_nthreads = GB_nthreads (anz, chunk, nthreads_max) ; + + info = GrB_NO_VALUE ; + bool depends_on_j = (opcode == GB_USER_idxunop_code) ; + int64_t thunk = 0 ; + + if (GB_OPCODE_IS_POSITIONAL (opcode)) + { + thunk = GB_positional_offset (opcode, scalar, &depends_on_j) ; + } + + if (depends_on_j) + { + // slice the entries for each task + GB_SLICE_MATRIX (A, 32) ; + } + + //-------------------------------------------------------------------------- + // apply the operator + //-------------------------------------------------------------------------- + + if (GB_OPCODE_IS_POSITIONAL (opcode)) + { + + //---------------------------------------------------------------------- + // via the positional kernel + //---------------------------------------------------------------------- + + ASSERT_OP_OK (op, "positional unop/idxunop: GB_apply_op", GB0) ; + + #if defined ( GRAPHBLAS_HAS_CUDA ) + if (GB_cuda_apply_unop_branch (ctype, A, op)) { + info = GB_cuda_apply_unop (Cx, ctype, op, flipij, A, + (GB_void *) &thunk) ; + } + #endif + + if (info == GrB_NO_VALUE) + { + // get A and C + const int64_t *restrict Ah = A->h ; + const int64_t *restrict Ap = A->p ; + const int64_t *restrict Ai = A->i ; + int64_t avlen = A->vlen ; + + //------------------------------------------------------------------ + // Cx = positional_op (A) + //------------------------------------------------------------------ + + if (is64) + { + + //-------------------------------------------------------------- + // int64 Cx = positional_op (A) + //-------------------------------------------------------------- + + int64_t *restrict Cz = (int64_t *) Cx ; + switch (opcode) + { + + case GB_POSITIONI_unop_code : // z = pos_i(A(i,j)) == i + case GB_POSITIONI1_unop_code : // z = pos_i1(A(i,j)) == i+1 + case GB_ROWINDEX_idxunop_code : // z = i+thunk + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (i + thunk) ; + #include "apply/template/GB_apply_unop_ip.c" + break ; + + case GB_POSITIONJ_unop_code : // z = pos_j(A(i,j)) == j + case GB_POSITIONJ1_unop_code : // z = pos_j1(A(i,j)) == j+1 + case GB_COLINDEX_idxunop_code : // z = j+thunk + #define GB_APPLY_OP(pC,pA) \ + Cz [pC] = (j + thunk) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; + + case GB_DIAGINDEX_idxunop_code : // z = (j-(i+thunk) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (j - (i+thunk)) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; + + case GB_FLIPDIAGINDEX_idxunop_code : // z = (i-(j+thunk) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (i - (j+thunk)) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; + + default: ; + } + + } + else if (is32) + { + + //-------------------------------------------------------------- + // int32 Cx = positional_op (A) + //-------------------------------------------------------------- + + int32_t *restrict Cz = (int32_t *) Cx ; + switch (opcode) + { + + case GB_POSITIONI_unop_code : // z = pos_i(A(i,j)) == i + case GB_POSITIONI1_unop_code : // z = pos_i1(A(i,j)) == i+1 + case GB_ROWINDEX_idxunop_code : // z = i+thunk + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (int32_t) (i + thunk) ; + #include "apply/template/GB_apply_unop_ip.c" + break ; + + case GB_POSITIONJ_unop_code : // z = pos_j(A(i,j)) == j + case GB_POSITIONJ1_unop_code : // z = pos_j1(A(i,j)) == j+1 + case GB_COLINDEX_idxunop_code : // z = j+thunk + #define GB_APPLY_OP(pC,pA) \ + Cz [pC] = (int32_t) (j + thunk) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; + + case GB_DIAGINDEX_idxunop_code : // z = (j-(i+thunk) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (int32_t) (j - (i+thunk)) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; + + case GB_FLIPDIAGINDEX_idxunop_code : // z = (i-(j+thunk) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (int32_t) (i - (j+thunk)) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; + + default: ; + } + + } + else + { + + //-------------------------------------------------------------- + // bool Cx = positional_op (A) + //-------------------------------------------------------------- + + ASSERT (op->ztype == GrB_BOOL) ; + bool *restrict Cz = (bool *) Cx ; + switch (opcode) + { + + case GB_TRIL_idxunop_code : // z = (j <= (i+thunk)) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (j <= (i + thunk)) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; ; + + case GB_TRIU_idxunop_code : // z = (j >= (i+thunk)) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (j >= (i + thunk)) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; ; + + case GB_DIAG_idxunop_code : // z = (j == (i+thunk)) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (j == (i + thunk)) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; ; + + case GB_OFFDIAG_idxunop_code : // z = (j != (i+thunk)) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (j != (i + thunk)) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; ; + + case GB_COLLE_idxunop_code : // z = (j <= thunk) + #define GB_APPLY_OP(pC,pA) \ + Cz [pC] = (j <= thunk) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; ; + + case GB_COLGT_idxunop_code : // z = (j > thunk) + #define GB_APPLY_OP(pC,pA) \ + Cz [pC] = (j > thunk) ; + #include "apply/template/GB_apply_unop_ijp.c" + break ; ; + + case GB_ROWLE_idxunop_code : // z = (i <= thunk) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (i <= thunk) ; + #include "apply/template/GB_apply_unop_ip.c" + break ; ; + + case GB_ROWGT_idxunop_code : // z = (i > thunk) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + Cz [pC] = (i > thunk) ; + #include "apply/template/GB_apply_unop_ip.c" + break ; ; + + default: ; + } + } + info = GrB_SUCCESS ; + } + } + else if (C_code_iso != GB_NON_ISO) + { + + //---------------------------------------------------------------------- + // via the iso kernel + //---------------------------------------------------------------------- + + // if C is iso, this function takes O(1) time + GBURBLE ("(iso apply) ") ; + ASSERT_MATRIX_OK (A, "A passing to GB_unop_iso", GB0) ; + if (anz > 0) + { + // Cx [0] = unop (A), binop (scalar,A), or binop (A,scalar) + GB_unop_iso (Cx, ctype, C_code_iso, op, A, scalar) ; + } + + info = GrB_SUCCESS ; + + } + else if (op_is_unop) + { + + //---------------------------------------------------------------------- + // unop via the factory kernel + //---------------------------------------------------------------------- + + ASSERT_OP_OK (op, "unop for GB_apply_op", GB0) ; + ASSERT (!A->iso) ; + + #if defined ( GRAPHBLAS_HAS_CUDA ) + if (GB_cuda_apply_unop_branch (ctype, A, op)) { + info = GB_cuda_apply_unop (Cx, ctype, op, flipij, A, NULL) ; + } + #endif + + // determine number of threads to use + #ifndef GBCOMPACT + if (info == GrB_NO_VALUE) + { + GB_IF_FACTORY_KERNELS_ENABLED + { + if (Atype == op->xtype || opcode == GB_IDENTITY_unop_code) + { + + // The switch factory is used if the op is IDENTITY, or if + // no typecasting. IDENTITY operator can do arbitrary + // typecasting (it is not used if no typecasting is done). + + //---------------------------------------------------------- + // define the worker for the switch factory + //---------------------------------------------------------- + + #define GB_uop_apply(unop,zname,aname) \ + GB (_uop_apply_ ## unop ## zname ## aname) + + #define GB_WORKER(unop,zname,ztype,aname,atype) \ + { \ + info = GB_uop_apply (unop,zname,aname) (Cx, Ax, Ab, \ + anz, A_nthreads) ; \ + } \ + break ; + + //---------------------------------------------------------- + // launch the switch factory + //---------------------------------------------------------- + + #include "apply/factory/GB_unop_factory.c" + } + } + } + #endif + + //---------------------------------------------------------------------- + // via the JIT or PreJIT kernel + //---------------------------------------------------------------------- + + if (info == GrB_NO_VALUE) + { + info = GB_apply_unop_jit (Cx, ctype, op, flipij, A, + NULL, NULL, 0, A_nthreads) ; + } + + //---------------------------------------------------------------------- + // via the generic kernel + //---------------------------------------------------------------------- + + if (info == GrB_NO_VALUE) + { + GB_BURBLE_N (anz, "(generic unop apply: %s) ", op->name) ; + + size_t asize = Atype->size ; + size_t zsize = op->ztype->size ; + size_t xsize = op->xtype->size ; + GB_Type_code acode = Atype->code ; + GB_Type_code xcode = op->xtype->code ; + GB_cast_function cast_A_to_X = GB_cast_factory (xcode, acode) ; + GxB_unary_function fop = op->unop_function ; + + #define GB_APPLY_OP(pC,pA) \ + /* xwork = (xtype) Ax [pA] */ \ + GB_void xwork [GB_VLA(xsize)] ; \ + cast_A_to_X (xwork, Ax +(pA)*asize, asize) ; \ + /* Cx [pC] = fop (xwork) */ \ + fop (Cx +((pC)*zsize), xwork) ; + + #include "apply/template/GB_apply_unop_ip.c" + + info = GrB_SUCCESS ; + } + + } + else if (op_is_binop) + { + + //---------------------------------------------------------------------- + // apply a binary operator (bound to a scalar) + //---------------------------------------------------------------------- + + ASSERT_OP_OK (op, "standard binop for GB_apply_op", GB0) ; + ASSERT_SCALAR_OK (scalar, "scalar for GB_apply_op", GB0) ; + + GB_Type_code xcode, ycode, zcode ; + ASSERT (opcode != GB_FIRST_binop_code) ; + ASSERT (opcode != GB_SECOND_binop_code) ; + ASSERT (opcode != GB_PAIR_binop_code) ; + ASSERT (opcode != GB_ANY_binop_code) ; + + size_t asize = Atype->size ; + size_t ssize = scalar->type->size ; + size_t zsize = op->ztype->size ; + size_t xsize = op->xtype->size ; + size_t ysize = op->ytype->size ; + + GB_Type_code scode = scalar->type->code ; + xcode = op->xtype->code ; + ycode = op->ytype->code ; + + // typecast the scalar to the operator input + size_t ssize_cast ; + GB_Type_code scode_cast ; + if (binop_bind1st) + { + ssize_cast = xsize ; + scode_cast = xcode ; + } + else + { + ssize_cast = ysize ; + scode_cast = ycode ; + } + GB_void swork [GB_VLA(ssize_cast)] ; + GB_void *scalarx = (GB_void *) scalar->x ; + if (scode_cast != scode) + { + // typecast the scalar to the operator input, in swork + GB_cast_function cast_s = GB_cast_factory (scode_cast, scode) ; + cast_s (swork, scalar->x, ssize) ; + scalarx = swork ; + } + + //---------------------------------------------------------------------- + // via the factory kernel + //---------------------------------------------------------------------- + + if (binop_bind1st) + { + + //------------------------------------------------------------------ + // z = binop (scalar,Ax) + //------------------------------------------------------------------ + + #if defined ( GRAPHBLAS_HAS_CUDA ) + if (GB_cuda_apply_binop_branch (ctype, (GrB_BinaryOp) op, A)) + { + info = GB_cuda_apply_binop (Cx, ctype, (GrB_BinaryOp) op, A, + scalarx, true) ; + } + #endif + + #ifndef GBCOMPACT + if (info == GrB_NO_VALUE) + { + GB_IF_FACTORY_KERNELS_ENABLED + { + if (GB_binop_builtin (op->xtype, false, Atype, false, + (GrB_BinaryOp) op, false, &opcode, &xcode, &ycode, + &zcode)) + { + + //------------------------------------------------------ + // define the worker for the switch factory + //------------------------------------------------------ + + #define GB_bind1st(binop,xname) \ + GB (_bind1st_ ## binop ## xname) + #define GB_BINOP_WORKER(binop,xname) \ + { \ + info = GB_bind1st (binop, xname) (Cx, scalarx, Ax, \ + Ab, anz, A_nthreads) ; \ + } \ + break ; + + //------------------------------------------------------ + // launch the switch factory + //------------------------------------------------------ + + #define GB_NO_FIRST + #define GB_NO_SECOND + #define GB_NO_PAIR + #include "binaryop/factory/GB_binop_factory.c" + } + } + } + #endif + + //------------------------------------------------------------------ + // via the JIT or PreJIT kernel + //------------------------------------------------------------------ + + if (info == GrB_NO_VALUE) + { + info = GB_apply_bind1st_jit (Cx, ctype, + (GrB_BinaryOp) op, scalarx, A, A_nthreads) ; + } + + } + else + { + + //------------------------------------------------------------------ + // z = binop (Ax,scalar) + //------------------------------------------------------------------ + + #if defined ( GRAPHBLAS_HAS_CUDA ) + if (GB_cuda_apply_binop_branch (ctype, (GrB_BinaryOp) op, A)) + { + info = GB_cuda_apply_binop (Cx, ctype, (GrB_BinaryOp) op, A, + scalarx, false) ; + } + #endif + + + #ifndef GBCOMPACT + if (info == GrB_NO_VALUE) + { + GB_IF_FACTORY_KERNELS_ENABLED + { + if (GB_binop_builtin (Atype, false, op->ytype, false, + (GrB_BinaryOp) op, false, &opcode, &xcode, &ycode, + &zcode)) + { + + //------------------------------------------------------ + // define the worker for the switch factory + //------------------------------------------------------ + + #define GB_bind2nd(binop,xname) \ + GB (_bind2nd_ ## binop ## xname) + #undef GB_BINOP_WORKER + #define GB_BINOP_WORKER(binop,xname) \ + { \ + info = GB_bind2nd (binop, xname) (Cx, Ax, scalarx,\ + Ab, anz, A_nthreads) ; \ + } \ + break ; + + //------------------------------------------------------ + // launch the switch factory + //------------------------------------------------------ + + #define GB_NO_FIRST + #define GB_NO_SECOND + #define GB_NO_PAIR + #include "binaryop/factory/GB_binop_factory.c" + } + } + } + #endif + + //------------------------------------------------------------------ + // via the JIT or PreJIT kernel + //------------------------------------------------------------------ + + if (info == GrB_NO_VALUE) + { + info = GB_apply_bind2nd_jit (Cx, ctype, + (GrB_BinaryOp) op, A, scalarx, A_nthreads) ; + } + } + + //---------------------------------------------------------------------- + // via the generic kernel + //---------------------------------------------------------------------- + + if (info == GrB_NO_VALUE) + { + + GB_BURBLE_N (anz, "(generic binop apply: %s) ", op->name) ; + + GB_Type_code acode = Atype->code ; + GxB_binary_function fop = op->binop_function ; + ASSERT (!A->iso) ; + + if (binop_bind1st) + { + // Cx = binop (scalar,Ax) with bind1st + GB_cast_function cast_A_to_Y = GB_cast_factory (ycode, acode) ; + #define GB_APPLY_OP(pC,pA) \ + /* ywork = (ytype) Ax [pA] */ \ + GB_void ywork [GB_VLA(ysize)] ; \ + cast_A_to_Y (ywork, Ax +(pA)*asize, asize) ; \ + /* Cx [pC] = fop (scalarx, ywork) */ \ + fop (Cx +((pC)*zsize), scalarx, ywork) ; + #include "apply/template/GB_apply_unop_ip.c" + } + else + { + // Cx = binop (Ax,scalar) with bind2nd + GB_cast_function cast_A_to_X = GB_cast_factory (xcode, acode) ; + #define GB_APPLY_OP(pC,pA) \ + /* xwork = (xtype) Ax [pA] */ \ + GB_void xwork [GB_VLA(xsize)] ; \ + cast_A_to_X (xwork, Ax +(pA)*asize, asize) ; \ + /* Cx [pC] = fop (xwork, scalarx) */ \ + fop (Cx +((pC)*zsize), xwork, scalarx) ; + #include "apply/template/GB_apply_unop_ip.c" + } + info = GrB_SUCCESS ; + } + + } + else + { + + //---------------------------------------------------------------------- + // apply a user-defined index_unary op + //---------------------------------------------------------------------- + + // All valued GrB_IndexUnaryOps (GrB_VALUE*) have already been + // renamed to their corresponding binary op (GrB_VALUEEQ_FP32 + // became GrB_EQ_FP32, for example). The only remaining index + // unary ops are positional, and user-defined. Positional ops have + // been handled above, so only user-defined index unary ops are + // left. + + ASSERT (opcode == GB_USER_idxunop_code) ; + size_t ssize = scalar->type->size ; + size_t ysize = op->ytype->size ; + + GB_Type_code scode = scalar->type->code ; + GB_Type_code ycode = op->ytype->code ; + + GB_void ywork [GB_VLA(ysize)] ; + GB_void *ythunk = (GB_void *) scalar->x ; + if (ycode != scode) + { + // typecast the scalar to the operator input, in ywork + GB_cast_function cast_s = GB_cast_factory (ycode, scode) ; + cast_s (ywork, scalar->x, ssize) ; + ythunk = ywork ; + } + + #if defined ( GRAPHBLAS_HAS_CUDA ) + if (GB_cuda_apply_unop_branch (ctype, A, op)) { + info = GB_cuda_apply_unop (Cx, ctype, op, flipij, A, ythunk) ; + } + #endif + + //---------------------------------------------------------------------- + // via the JIT or PreJIT kernel + //---------------------------------------------------------------------- + + if (info == GrB_NO_VALUE) + { + info = GB_apply_unop_jit (Cx, ctype, op, flipij, A, + ythunk, A_ek_slicing, A_ntasks, A_nthreads) ; + } + + //---------------------------------------------------------------------- + // via the generic kernel + //---------------------------------------------------------------------- + + if (info == GrB_NO_VALUE) + { + GB_BURBLE_N (anz, "(generic apply: user-defined idxunop) ") ; + + // get A and C + const int64_t *restrict Ah = A->h ; + const int64_t *restrict Ap = A->p ; + const int64_t *restrict Ai = A->i ; + int64_t avlen = A->vlen ; + GB_Type_code acode = Atype->code ; + + // A can be iso-valued, but C is not + bool A_iso = A->iso ; + ASSERT (C_code_iso == GB_NON_ISO) ; + if (A_iso) + { + GB_BURBLE_N (anz, "(A iso; C non-iso) ") ; + } + + GxB_index_unary_function fop = op->idxunop_function ; + size_t asize = Atype->size ; + size_t zsize = op->ztype->size ; + size_t xsize = op->xtype->size ; + GB_Type_code xcode = op->xtype->code ; + GB_cast_function cast_A_to_X = GB_cast_factory (xcode, acode) ; + + // Cx [pC] = op (Ax [A_iso ? 0 : pA], i, j, ythunk) + #define GB_APPLY_OP(pC,pA) \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + GB_void xwork [GB_VLA(xsize)] ; \ + cast_A_to_X (xwork, Ax +(A_iso ? 0 : (pA))*asize, asize) ; \ + fop (Cx +((pC)*zsize), xwork, \ + flipij ? j : i, flipij ? i : j, ythunk) ; + #include "apply/template/GB_apply_unop_ijp.c" + info = GrB_SUCCESS ; + } + } + + //-------------------------------------------------------------------------- + // free workspace and return result + //-------------------------------------------------------------------------- + + GB_FREE_ALL ; + return (info) ; +} + diff --git a/GraphBLAS/Source/GB_shallow_op.c b/GraphBLAS/Source/apply/GB_shallow_op.c similarity index 99% rename from GraphBLAS/Source/GB_shallow_op.c rename to GraphBLAS/Source/apply/GB_shallow_op.c index 20a3d87938..cc62330f42 100644 --- a/GraphBLAS/Source/GB_shallow_op.c +++ b/GraphBLAS/Source/apply/GB_shallow_op.c @@ -24,7 +24,7 @@ // Compare this function with GB_shallow_copy.c. -#include "GB_apply.h" +#include "apply/GB_apply.h" #define GB_FREE_ALL GB_phybix_free (C) ; @@ -125,6 +125,7 @@ GrB_Info GB_shallow_op // create shallow matrix and apply operator C->Y = A->Y ; C->Y_shallow = (A->Y != NULL) ; + C->no_hyper_hash = A->no_hyper_hash ; //-------------------------------------------------------------------------- // check for empty matrix diff --git a/GraphBLAS/Source/GrB_Matrix_apply.c b/GraphBLAS/Source/apply/GrB_Matrix_apply.c similarity index 99% rename from GraphBLAS/Source/GrB_Matrix_apply.c rename to GraphBLAS/Source/apply/GrB_Matrix_apply.c index 98d242144d..b6d699c08d 100644 --- a/GraphBLAS/Source/GrB_Matrix_apply.c +++ b/GraphBLAS/Source/apply/GrB_Matrix_apply.c @@ -7,9 +7,9 @@ //------------------------------------------------------------------------------ -#include "GB_apply.h" -#include "GB_scalar_wrap.h" -#include "GB_get_mask.h" +#include "apply/GB_apply.h" +#include "scalar/GB_Scalar_wrap.h" +#include "mask/GB_get_mask.h" //------------------------------------------------------------------------------ // GrB_Matrix_apply: apply a unary operator to a matrix diff --git a/GraphBLAS/Source/GrB_Vector_apply.c b/GraphBLAS/Source/apply/GrB_Vector_apply.c similarity index 99% rename from GraphBLAS/Source/GrB_Vector_apply.c rename to GraphBLAS/Source/apply/GrB_Vector_apply.c index df672af861..455951f236 100644 --- a/GraphBLAS/Source/GrB_Vector_apply.c +++ b/GraphBLAS/Source/apply/GrB_Vector_apply.c @@ -7,9 +7,9 @@ //------------------------------------------------------------------------------ -#include "GB_apply.h" -#include "GB_scalar_wrap.h" -#include "GB_get_mask.h" +#include "apply/GB_apply.h" +#include "scalar/GB_Scalar_wrap.h" +#include "mask/GB_get_mask.h" //------------------------------------------------------------------------------ // GrB_Vector_apply: apply a unary operator to a vector diff --git a/GraphBLAS/Source/Factories/GB_twotype_factory.c b/GraphBLAS/Source/apply/factory/GB_twotype_factory.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_twotype_factory.c rename to GraphBLAS/Source/apply/factory/GB_twotype_factory.c diff --git a/GraphBLAS/Source/Factories/GB_unop_factory.c b/GraphBLAS/Source/apply/factory/GB_unop_factory.c similarity index 99% rename from GraphBLAS/Source/Factories/GB_unop_factory.c rename to GraphBLAS/Source/apply/factory/GB_unop_factory.c index 2fa00b037b..974b18b47d 100644 --- a/GraphBLAS/Source/Factories/GB_unop_factory.c +++ b/GraphBLAS/Source/apply/factory/GB_unop_factory.c @@ -39,7 +39,7 @@ ASSERT (code1 != code2) #define GB_OPNAME _identity #define GB_EXCLUDE_SAME_TYPES - #include "GB_twotype_factory.c" + #include "apply/factory/GB_twotype_factory.c" } else if ((code1 == GB_FP32_code && code2 == GB_FC32_code) || diff --git a/GraphBLAS/Source/Shared/GB_apply_shared_definitions.h b/GraphBLAS/Source/apply/include/GB_apply_shared_definitions.h similarity index 94% rename from GraphBLAS/Source/Shared/GB_apply_shared_definitions.h rename to GraphBLAS/Source/apply/include/GB_apply_shared_definitions.h index 89b2909b80..a3e829abdc 100644 --- a/GraphBLAS/Source/Shared/GB_apply_shared_definitions.h +++ b/GraphBLAS/Source/apply/include/GB_apply_shared_definitions.h @@ -12,7 +12,7 @@ // this file. This file is shared by generic, factory, and both CPU and // CUDA JIT kernels. -#include "GB_kernel_shared_definitions.h" +#include "include/GB_kernel_shared_definitions.h" #ifndef GB_APPLY_SHARED_DEFINITIONS_H #define GB_APPLY_SHARED_DEFINITIONS_H diff --git a/GraphBLAS/Source/Template/GB_apply_bind1st_template.c b/GraphBLAS/Source/apply/template/GB_apply_bind1st_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_apply_bind1st_template.c rename to GraphBLAS/Source/apply/template/GB_apply_bind1st_template.c diff --git a/GraphBLAS/Source/Template/GB_apply_bind2nd_template.c b/GraphBLAS/Source/apply/template/GB_apply_bind2nd_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_apply_bind2nd_template.c rename to GraphBLAS/Source/apply/template/GB_apply_bind2nd_template.c diff --git a/GraphBLAS/Source/Template/GB_apply_unop_ijp.c b/GraphBLAS/Source/apply/template/GB_apply_unop_ijp.c similarity index 98% rename from GraphBLAS/Source/Template/GB_apply_unop_ijp.c rename to GraphBLAS/Source/apply/template/GB_apply_unop_ijp.c index b39e4ce262..ac31223e0c 100644 --- a/GraphBLAS/Source/Template/GB_apply_unop_ijp.c +++ b/GraphBLAS/Source/apply/template/GB_apply_unop_ijp.c @@ -52,7 +52,7 @@ { if (!GBB_A (Ab, p)) continue ; // Cx [p] = op (A (i,j)) - GB_APPLY_OP (p) ; + GB_APPLY_OP (p, p) ; } } } diff --git a/GraphBLAS/Source/Template/GB_apply_unop_ip.c b/GraphBLAS/Source/apply/template/GB_apply_unop_ip.c similarity index 96% rename from GraphBLAS/Source/Template/GB_apply_unop_ip.c rename to GraphBLAS/Source/apply/template/GB_apply_unop_ip.c index 6bf50614cb..910a058913 100644 --- a/GraphBLAS/Source/Template/GB_apply_unop_ip.c +++ b/GraphBLAS/Source/apply/template/GB_apply_unop_ip.c @@ -21,7 +21,7 @@ { if (!GBB_A (Ab, p)) continue ; // Cx [p] = op (A (i,j)) - GB_APPLY_OP (p) ; + GB_APPLY_OP (p, p) ; } } diff --git a/GraphBLAS/Source/Template/GB_apply_unop_template.c b/GraphBLAS/Source/apply/template/GB_apply_unop_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_apply_unop_template.c rename to GraphBLAS/Source/apply/template/GB_apply_unop_template.c diff --git a/GraphBLAS/Source/GB_assign.c b/GraphBLAS/Source/assign/GB_assign.c similarity index 98% rename from GraphBLAS/Source/GB_assign.c rename to GraphBLAS/Source/assign/GB_assign.c index adbc3e560b..750e2fb105 100644 --- a/GraphBLAS/Source/GB_assign.c +++ b/GraphBLAS/Source/assign/GB_assign.c @@ -34,11 +34,11 @@ GB_FREE_WORK (&J2, J2_size) ; \ } -#include "GB_assign.h" -#include "GB_assign_zombie.h" -#include "GB_subassign.h" -#include "GB_subref.h" -#include "GB_bitmap_assign.h" +#include "assign/GB_assign.h" +#include "assign/GB_assign_zombie.h" +#include "assign/GB_subassign.h" +#include "extract/GB_subref.h" +#include "assign/GB_bitmap_assign.h" GrB_Info GB_assign // C(Rows,Cols) += A or A' ( @@ -252,8 +252,8 @@ GrB_Info GB_assign // C(Rows,Cols) += A or A' // of C on output. subassign_method = GB_subassigner_method (NULL, NULL, C, - C_replace, SubMask, Mask_comp, Mask_struct, accum, A, - Ikind, Jkind, scalar_expansion, scalar, scalar_type) ; + C_replace, SubMask, Mask_comp, Mask_struct, accum, A, Ikind, + Jkind, nJ, Jcolon, scalar_expansion, scalar, scalar_type) ; GB_OK (GB_subassigner (C, subassign_method, C_replace, SubMask, Mask_comp, Mask_struct, accum, A, diff --git a/GraphBLAS/Source/GB_assign.h b/GraphBLAS/Source/assign/GB_assign.h similarity index 98% rename from GraphBLAS/Source/GB_assign.h rename to GraphBLAS/Source/assign/GB_assign.h index c9ce0530fb..ef491915e5 100644 --- a/GraphBLAS/Source/GB_assign.h +++ b/GraphBLAS/Source/assign/GB_assign.h @@ -10,7 +10,7 @@ #ifndef GB_ASSIGN_H #define GB_ASSIGN_H #include "GB.h" -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB_assign // C(Rows,Cols) += A or A' ( diff --git a/GraphBLAS/Source/GB_assign_burble.c b/GraphBLAS/Source/assign/GB_assign_burble.c similarity index 100% rename from GraphBLAS/Source/GB_assign_burble.c rename to GraphBLAS/Source/assign/GB_assign_burble.c diff --git a/GraphBLAS/Source/GB_assign_describe.c b/GraphBLAS/Source/assign/GB_assign_describe.c similarity index 97% rename from GraphBLAS/Source/GB_assign_describe.c rename to GraphBLAS/Source/assign/GB_assign_describe.c index 908ce7ecd4..5dd15d46ec 100644 --- a/GraphBLAS/Source/GB_assign_describe.c +++ b/GraphBLAS/Source/assign/GB_assign_describe.c @@ -59,9 +59,9 @@ void GB_assign_describe // construct the Mask string //-------------------------------------------------------------------------- - #define GB_STRLEN 128 + #define GB_MASK_STRING_LEN 128 const char *Mask ; - char Mask_string [GB_STRLEN+1] ; + char Mask_string [GB_MASK_STRING_LEN+1] ; if (M_is_null) { // M is not present @@ -77,7 +77,7 @@ void GB_assign_describe else { // M is present - snprintf (Mask_string, GB_STRLEN, "<%sM%s%s%s>", + snprintf (Mask_string, GB_MASK_STRING_LEN, "<%sM%s%s%s>", (Mask_comp) ? "!" : "", (M_sparsity == GxB_BITMAP) ? ",bitmap" : ((M_sparsity == GxB_FULL) ? ",full" : ""), diff --git a/GraphBLAS/Source/GB_assign_prep.c b/GraphBLAS/Source/assign/GB_assign_prep.c similarity index 99% rename from GraphBLAS/Source/GB_assign_prep.c rename to GraphBLAS/Source/assign/GB_assign_prep.c index 7119755b6d..a5bf52bf36 100644 --- a/GraphBLAS/Source/GB_assign_prep.c +++ b/GraphBLAS/Source/assign/GB_assign_prep.c @@ -9,13 +9,13 @@ // GB_assign_prep checks the inputs for GB_assign and GB_subassign. -#include "GB_subassign.h" -#include "GB_bitmap_assign.h" -#include "GB_assign_zombie.h" -#include "GB_assign_shared_definitions.h" -#include "GB_subassign_methods.h" -#include "GB_transpose.h" -#include "GB_subref.h" +#include "assign/GB_subassign.h" +#include "assign/GB_bitmap_assign.h" +#include "assign/GB_assign_zombie.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "transpose/GB_transpose.h" +#include "extract/GB_subref.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ @@ -32,7 +32,7 @@ } // redefine to use the revised GB_FREE_ALL above: -#include "GB_static_header.h" +#include "matrix/GB_static_header.h" GrB_Info GB_assign_prep ( @@ -1046,8 +1046,8 @@ GrB_Info GB_assign_prep size_t csize = ctype->size ; GB_void cout [GB_VLA(csize)] ; (*subassign_method) = GB_subassigner_method (&C_iso_out, cout, C, - (*C_replace), M, Mask_comp, Mask_struct, accum, A, Ikind, Jkind, - scalar_expansion, scalar, scalar_type) ; + (*C_replace), M, Mask_comp, Mask_struct, accum, A, + Ikind, Jkind, nJ, Jcolon, scalar_expansion, scalar, scalar_type) ; //-------------------------------------------------------------------------- // check compatibilty of prior pending tuples @@ -1182,6 +1182,7 @@ GrB_Info GB_assign_prep // C has changed so recompute the subassigner method (*subassign_method) = GB_subassigner_method (&C_iso_out, cout, C, (*C_replace), M, Mask_comp, Mask_struct, accum, A, Ikind, Jkind, + nJ, J, /* FUTURE: Jcolon, */ scalar_expansion, scalar, scalar_type) ; } diff --git a/GraphBLAS/Source/GB_assign_scalar.c b/GraphBLAS/Source/assign/GB_assign_scalar.c similarity index 97% rename from GraphBLAS/Source/GB_assign_scalar.c rename to GraphBLAS/Source/assign/GB_assign_scalar.c index 9f3bbcac87..49ee4ecee6 100644 --- a/GraphBLAS/Source/GB_assign_scalar.c +++ b/GraphBLAS/Source/assign/GB_assign_scalar.c @@ -17,9 +17,9 @@ // Compare with GB_subassign_scalar, which uses M and C_replace differently -#include "GB_assign.h" -#include "GB_bitmap_assign.h" -#include "GB_get_mask.h" +#include "assign/GB_assign.h" +#include "assign/GB_bitmap_assign.h" +#include "mask/GB_get_mask.h" GrB_Info GB_assign_scalar // C(Rows,Cols) += x ( diff --git a/GraphBLAS/Source/GB_assign_zombie.h b/GraphBLAS/Source/assign/GB_assign_zombie.h similarity index 98% rename from GraphBLAS/Source/GB_assign_zombie.h rename to GraphBLAS/Source/assign/GB_assign_zombie.h index 5c5188cf53..4a2e115068 100644 --- a/GraphBLAS/Source/GB_assign_zombie.h +++ b/GraphBLAS/Source/assign/GB_assign_zombie.h @@ -9,7 +9,7 @@ #ifndef GB_ASSIGN_ZOMBIE_H #define GB_ASSIGN_ZOMBIE_H -#include "GB_ij.h" +#include "ij/GB_ij.h" GrB_Info GB_assign_zombie1 ( diff --git a/GraphBLAS/Source/GB_assign_zombie1.c b/GraphBLAS/Source/assign/GB_assign_zombie1.c similarity index 98% rename from GraphBLAS/Source/GB_assign_zombie1.c rename to GraphBLAS/Source/assign/GB_assign_zombie1.c index 095371b6a7..561ddd3efc 100644 --- a/GraphBLAS/Source/GB_assign_zombie1.c +++ b/GraphBLAS/Source/assign/GB_assign_zombie1.c @@ -15,8 +15,8 @@ // C->iso is not affected. -#include "GB_assign.h" -#include "GB_assign_zombie.h" +#include "assign/GB_assign.h" +#include "assign/GB_assign_zombie.h" GrB_Info GB_assign_zombie1 ( diff --git a/GraphBLAS/Source/GB_assign_zombie2.c b/GraphBLAS/Source/assign/GB_assign_zombie2.c similarity index 98% rename from GraphBLAS/Source/GB_assign_zombie2.c rename to GraphBLAS/Source/assign/GB_assign_zombie2.c index e7b4769937..c1a95649a3 100644 --- a/GraphBLAS/Source/GB_assign_zombie2.c +++ b/GraphBLAS/Source/assign/GB_assign_zombie2.c @@ -15,8 +15,8 @@ // C->iso is not affected. -#include "GB_assign.h" -#include "GB_assign_zombie.h" +#include "assign/GB_assign.h" +#include "assign/GB_assign_zombie.h" GrB_Info GB_assign_zombie2 ( diff --git a/GraphBLAS/Source/GB_assign_zombie3.c b/GraphBLAS/Source/assign/GB_assign_zombie3.c similarity index 97% rename from GraphBLAS/Source/GB_assign_zombie3.c rename to GraphBLAS/Source/assign/GB_assign_zombie3.c index b6e792a48d..27d460348e 100644 --- a/GraphBLAS/Source/GB_assign_zombie3.c +++ b/GraphBLAS/Source/assign/GB_assign_zombie3.c @@ -23,10 +23,10 @@ // C->iso is not affected. -#include "GB_assign.h" -#include "GB_assign_zombie.h" -#include "GB_assign_shared_definitions.h" -#include "GB_subassign_methods.h" +#include "assign/GB_assign.h" +#include "assign/GB_assign_zombie.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" GrB_Info GB_assign_zombie3 ( diff --git a/GraphBLAS/Source/GB_assign_zombie4.c b/GraphBLAS/Source/assign/GB_assign_zombie4.c similarity index 99% rename from GraphBLAS/Source/GB_assign_zombie4.c rename to GraphBLAS/Source/assign/GB_assign_zombie4.c index b0bd60341e..8f0065d353 100644 --- a/GraphBLAS/Source/GB_assign_zombie4.c +++ b/GraphBLAS/Source/assign/GB_assign_zombie4.c @@ -23,8 +23,8 @@ // C->iso is not affected. -#include "GB_assign.h" -#include "GB_assign_zombie.h" +#include "assign/GB_assign.h" +#include "assign/GB_assign_zombie.h" GrB_Info GB_assign_zombie4 ( diff --git a/GraphBLAS/Source/GB_assign_zombie5.c b/GraphBLAS/Source/assign/GB_assign_zombie5.c similarity index 97% rename from GraphBLAS/Source/GB_assign_zombie5.c rename to GraphBLAS/Source/assign/GB_assign_zombie5.c index 9a55d50fd4..23560055c7 100644 --- a/GraphBLAS/Source/GB_assign_zombie5.c +++ b/GraphBLAS/Source/assign/GB_assign_zombie5.c @@ -22,11 +22,11 @@ // C->iso is not affected. -#include "GB_assign.h" -#include "GB_assign_zombie.h" -#include "GB_assign_shared_definitions.h" -#include "GB_subassign_methods.h" -#include "GB_ek_slice.h" +#include "assign/GB_assign.h" +#include "assign/GB_assign_zombie.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "slice/GB_ek_slice.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ diff --git a/GraphBLAS/Source/GB_bitmap_M_scatter.c b/GraphBLAS/Source/assign/GB_bitmap_M_scatter.c similarity index 86% rename from GraphBLAS/Source/GB_bitmap_M_scatter.c rename to GraphBLAS/Source/assign/GB_bitmap_M_scatter.c index e58ad65256..e02fe6f9b5 100644 --- a/GraphBLAS/Source/GB_bitmap_M_scatter.c +++ b/GraphBLAS/Source/assign/GB_bitmap_M_scatter.c @@ -9,8 +9,8 @@ // JIT: not needed, but variants possible for each kind of mask matrix. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GB_CALLBACK_BITMAP_M_SCATTER_PROTO (GB_bitmap_M_scatter) { @@ -45,21 +45,21 @@ GB_CALLBACK_BITMAP_M_SCATTER_PROTO (GB_bitmap_M_scatter) #undef GB_MASK_WORK #define GB_MASK_WORK(pC) Cb [pC] += 2 - #include "GB_bitmap_assign_M_template.c" + #include "assign/factory/GB_bitmap_assign_M_template.c" break ; case GB_BITMAP_M_SCATTER_MINUS_2 : // Cb (i,j) -= 2 #undef GB_MASK_WORK #define GB_MASK_WORK(pC) Cb [pC] -= 2 - #include "GB_bitmap_assign_M_template.c" + #include "assign/factory/GB_bitmap_assign_M_template.c" break ; case GB_BITMAP_M_SCATTER_MOD_2 : // Cb (i,j) %= 2 #undef GB_MASK_WORK #define GB_MASK_WORK(pC) Cb [pC] %= 2 - #include "GB_bitmap_assign_M_template.c" + #include "assign/factory/GB_bitmap_assign_M_template.c" break ; default: ; diff --git a/GraphBLAS/Source/GB_bitmap_M_scatter_whole.c b/GraphBLAS/Source/assign/GB_bitmap_M_scatter_whole.c similarity index 86% rename from GraphBLAS/Source/GB_bitmap_M_scatter_whole.c rename to GraphBLAS/Source/assign/GB_bitmap_M_scatter_whole.c index 6bd8e1a81e..9ae55e04ef 100644 --- a/GraphBLAS/Source/GB_bitmap_M_scatter_whole.c +++ b/GraphBLAS/Source/assign/GB_bitmap_M_scatter_whole.c @@ -9,8 +9,8 @@ // JIT: not needed, but variants possible for each kind of mask matrix. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GB_CALLBACK_BITMAP_M_SCATTER_WHOLE_PROTO (GB_bitmap_M_scatter_whole) { @@ -46,21 +46,21 @@ GB_CALLBACK_BITMAP_M_SCATTER_WHOLE_PROTO (GB_bitmap_M_scatter_whole) #undef GB_MASK_WORK #define GB_MASK_WORK(pC) Cb [pC] += 2 - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" break ; case GB_BITMAP_M_SCATTER_MINUS_2 : // Cb (i,j) -= 2 #undef GB_MASK_WORK #define GB_MASK_WORK(pC) Cb [pC] -= 2 - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" break ; case GB_BITMAP_M_SCATTER_SET_2 : // Cb (i,j) = 2 #undef GB_MASK_WORK #define GB_MASK_WORK(pC) Cb [pC] = 2 - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" break ; default: ; diff --git a/GraphBLAS/Source/GB_bitmap_assign.c b/GraphBLAS/Source/assign/GB_bitmap_assign.c similarity index 98% rename from GraphBLAS/Source/GB_bitmap_assign.c rename to GraphBLAS/Source/assign/GB_bitmap_assign.c index c1ce1a76ee..0a047c4d5f 100644 --- a/GraphBLAS/Source/GB_bitmap_assign.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign.c @@ -14,8 +14,8 @@ // whole_C_matrix case with GB_bitmap_assign_noM_noaccum_whole). For that // method, C can be returned with any sparsity structure. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL GB_phybix_free (C) ; diff --git a/GraphBLAS/Source/GB_bitmap_assign.h b/GraphBLAS/Source/assign/GB_bitmap_assign.h similarity index 98% rename from GraphBLAS/Source/GB_bitmap_assign.h rename to GraphBLAS/Source/assign/GB_bitmap_assign.h index a45a05bfbe..ece8114191 100644 --- a/GraphBLAS/Source/GB_bitmap_assign.h +++ b/GraphBLAS/Source/assign/GB_bitmap_assign.h @@ -10,7 +10,7 @@ #ifndef GB_BITMAP_ASSIGN_H #define GB_BITMAP_ASSIGN_H #include "GB.h" -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB_bitmap_assign ( diff --git a/GraphBLAS/Source/GB_bitmap_assign_M_accum.c b/GraphBLAS/Source/assign/GB_bitmap_assign_M_accum.c similarity index 95% rename from GraphBLAS/Source/GB_bitmap_assign_M_accum.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_M_accum.c index 8bbe50b16c..758b0259f2 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_M_accum.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_M_accum.c @@ -24,8 +24,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ @@ -115,7 +115,7 @@ GrB_Info GB_bitmap_assign_M_accum GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ } \ } - #include "GB_bitmap_assign_M_sub_template.c" + #include "assign/factory/GB_bitmap_assign_M_sub_template.c" if (C_replace) { @@ -127,7 +127,7 @@ GrB_Info GB_bitmap_assign_M_accum Cb [pC] = (cb == 3) ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } } @@ -174,7 +174,7 @@ GrB_Info GB_bitmap_assign_M_accum GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ } \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else @@ -211,7 +211,7 @@ GrB_Info GB_bitmap_assign_M_accum GB_ACCUMULATE_aij (Cx, pC, Ax, pA, A_iso, ywork) ; \ } \ } - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" } //---------------------------------------------------------------------- @@ -235,7 +235,7 @@ GrB_Info GB_bitmap_assign_M_accum Cb [pC] = (cb == 3) ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_C_template.c" + #include "assign/factory/GB_bitmap_assign_C_template.c" } else { diff --git a/GraphBLAS/Source/GB_bitmap_assign_M_accum_whole.c b/GraphBLAS/Source/assign/GB_bitmap_assign_M_accum_whole.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_assign_M_accum_whole.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_M_accum_whole.c index 8bf48ce899..67eb2a28ab 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_M_accum_whole.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_M_accum_whole.c @@ -24,8 +24,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ @@ -123,7 +123,7 @@ GrB_Info GB_bitmap_assign_M_accum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -151,7 +151,7 @@ GrB_Info GB_bitmap_assign_M_accum_whole task_cnvals++ ; \ } \ } - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" } } @@ -221,7 +221,7 @@ GrB_Info GB_bitmap_assign_M_accum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -253,7 +253,7 @@ GrB_Info GB_bitmap_assign_M_accum_whole } \ } \ } - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" } } @@ -295,7 +295,7 @@ GrB_Info GB_bitmap_assign_M_accum_whole GB_ACCUMULATE_aij (Cx, pC, Ax, pA, A_iso, ywork) ; \ } \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" if (C_replace) { @@ -307,7 +307,7 @@ GrB_Info GB_bitmap_assign_M_accum_whole Cb [pC] = (cb == 3) ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else { diff --git a/GraphBLAS/Source/GB_bitmap_assign_M_noaccum.c b/GraphBLAS/Source/assign/GB_bitmap_assign_M_noaccum.c similarity index 94% rename from GraphBLAS/Source/GB_bitmap_assign_M_noaccum.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_M_noaccum.c index cb28baa4c9..625127bcf3 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_M_noaccum.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_M_noaccum.c @@ -24,8 +24,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ @@ -140,7 +140,7 @@ GrB_Info GB_bitmap_assign_M_noaccum task_cnvals-- ; \ } \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else // assign_kind == GB_ASSIGN @@ -165,7 +165,7 @@ GrB_Info GB_bitmap_assign_M_noaccum task_cnvals += (cb == 2) ; \ } \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" if (C_replace) { @@ -177,7 +177,7 @@ GrB_Info GB_bitmap_assign_M_noaccum Cb [pC] = (cb == 4 || cb == 3) ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_C_template.c" + #include "assign/factory/GB_bitmap_assign_C_template.c" } else { @@ -219,7 +219,7 @@ GrB_Info GB_bitmap_assign_M_noaccum task_cnvals += (cb == 2) ; \ } \ } - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" //---------------------------------------------------------------------- // clear M from C and handle C_replace for row/col/assign @@ -242,7 +242,7 @@ GrB_Info GB_bitmap_assign_M_noaccum Cb [pC] = (cb == 4) ; \ task_cnvals -= (cb == 1 || cb == 3) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else @@ -255,7 +255,7 @@ GrB_Info GB_bitmap_assign_M_noaccum Cb [pC] = (cb == 4 || cb == 1) ; \ task_cnvals -= (cb == 3) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } } @@ -279,7 +279,7 @@ GrB_Info GB_bitmap_assign_M_noaccum Cb [pC] = (cb == 4) ? 3 : 0 ; \ task_cnvals -= (cb == 1 || cb == 3) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" // for all of C #undef GB_CIJ_WORK @@ -290,7 +290,7 @@ GrB_Info GB_bitmap_assign_M_noaccum Cb [pC] = (cb == 3) ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_C_template.c" + #include "assign/factory/GB_bitmap_assign_C_template.c" } else { @@ -303,7 +303,7 @@ GrB_Info GB_bitmap_assign_M_noaccum Cb [pC] = (cb == 4 || cb == 1) ; \ task_cnvals -= (cb == 3) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" // clear M from C // Cb [pC] %= 2 for each entry M(i,j) in the mask diff --git a/GraphBLAS/Source/GB_bitmap_assign_M_noaccum_whole.c b/GraphBLAS/Source/assign/GB_bitmap_assign_M_noaccum_whole.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_assign_M_noaccum_whole.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_M_noaccum_whole.c index 62d2aafc0a..4b152fe4db 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_M_noaccum_whole.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_M_noaccum_whole.c @@ -24,8 +24,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ @@ -124,7 +124,7 @@ GrB_Info GB_bitmap_assign_M_noaccum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -152,7 +152,7 @@ GrB_Info GB_bitmap_assign_M_noaccum_whole task_cnvals++ ; \ } \ } - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" } @@ -228,7 +228,7 @@ GrB_Info GB_bitmap_assign_M_noaccum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -268,7 +268,7 @@ GrB_Info GB_bitmap_assign_M_noaccum_whole } \ } \ } - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" } } @@ -310,7 +310,7 @@ GrB_Info GB_bitmap_assign_M_noaccum_whole task_cnvals += (cb == 2) ; \ } \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" // clear the mask and delete entries not assigned #undef GB_CIJ_WORK @@ -320,7 +320,7 @@ GrB_Info GB_bitmap_assign_M_noaccum_whole Cb [pC] = (cb == 4) ; \ task_cnvals -= (cb == 1 || cb == 3) ; \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else if (GB_nnz (A) == 0) @@ -340,7 +340,7 @@ GrB_Info GB_bitmap_assign_M_noaccum_whole Cb [pC] = 0 ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" } else @@ -374,7 +374,7 @@ GrB_Info GB_bitmap_assign_M_noaccum_whole task_cnvals += (cb == 2) ; \ } \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" // clear the mask and delete entries not assigned #undef GB_MASK_WORK @@ -384,7 +384,7 @@ GrB_Info GB_bitmap_assign_M_noaccum_whole Cb [pC] = (cb == 1) ; \ task_cnvals -= (cb == 3) ; \ } - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" } } diff --git a/GraphBLAS/Source/GB_bitmap_assign_fullM_accum.c b/GraphBLAS/Source/assign/GB_bitmap_assign_fullM_accum.c similarity index 94% rename from GraphBLAS/Source/GB_bitmap_assign_fullM_accum.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_fullM_accum.c index 7ea2710abc..06c6b8a313 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_fullM_accum.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_fullM_accum.c @@ -30,8 +30,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL ; @@ -147,13 +147,13 @@ GrB_Info GB_bitmap_assign_fullM_accum // C(I,J) += scalar where M has the same size as C #undef GB_GET_pM #define GB_GET_pM pC - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" break ; case GB_SUBASSIGN : // C(I,J) += scalar where M has the same size as A #undef GB_GET_pM #define GB_GET_pM pA - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" break ; default: ; } @@ -211,25 +211,25 @@ GrB_Info GB_bitmap_assign_fullM_accum // C(i,J) += A where m is a 1-by-C->vdim row vector #undef GB_GET_pM #define GB_GET_pM jC - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" break ; case GB_COL_ASSIGN : // C(I,j) += A where m is a C->vlen-by-1 column vector #undef GB_GET_pM #define GB_GET_pM iC - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" break ; case GB_ASSIGN : // C(I,J) += A where M has the same size as C #undef GB_GET_pM #define GB_GET_pM pC - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" break ; case GB_SUBASSIGN : // C(I,J) += A where M has the same size as A #undef GB_GET_pM #define GB_GET_pM (iA + jA * nI) - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" break ; default: ; } @@ -260,7 +260,7 @@ GrB_Info GB_bitmap_assign_fullM_accum task_cnvals -= (cb == 1) ; \ } \ } - #include "GB_bitmap_assign_C_template.c" + #include "assign/factory/GB_bitmap_assign_C_template.c" } //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Source/GB_bitmap_assign_fullM_accum_whole.c b/GraphBLAS/Source/assign/GB_bitmap_assign_fullM_accum_whole.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_assign_fullM_accum_whole.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_fullM_accum_whole.c index bccee86bca..4163b663bb 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_fullM_accum_whole.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_fullM_accum_whole.c @@ -30,8 +30,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL ; @@ -125,7 +125,7 @@ GrB_Info GB_bitmap_assign_fullM_accum_whole task_cnvals -= (cb == 1) ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -154,7 +154,7 @@ GrB_Info GB_bitmap_assign_fullM_accum_whole } \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } @@ -204,7 +204,7 @@ GrB_Info GB_bitmap_assign_fullM_accum_whole task_cnvals -= (cb == 1) ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -234,7 +234,7 @@ GrB_Info GB_bitmap_assign_fullM_accum_whole } \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } @@ -267,7 +267,7 @@ GrB_Info GB_bitmap_assign_fullM_accum_whole } \ } \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" // clear the mask and delete entries not assigned if (C_replace) @@ -282,7 +282,7 @@ GrB_Info GB_bitmap_assign_fullM_accum_whole task_cnvals -= (cb == 1) ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } } diff --git a/GraphBLAS/Source/GB_bitmap_assign_fullM_noaccum.c b/GraphBLAS/Source/assign/GB_bitmap_assign_fullM_noaccum.c similarity index 91% rename from GraphBLAS/Source/GB_bitmap_assign_fullM_noaccum.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_fullM_noaccum.c index 9e2b217378..174df108d1 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_fullM_noaccum.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_fullM_noaccum.c @@ -30,8 +30,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL ; @@ -113,7 +113,7 @@ GrB_Info GB_bitmap_assign_fullM_noaccum task_cnvals -= (cb == 1) ; \ } \ } - #include "GB_bitmap_assign_C_template.c" + #include "assign/factory/GB_bitmap_assign_C_template.c" } //-------------------------------------------------------------------------- @@ -153,13 +153,13 @@ GrB_Info GB_bitmap_assign_fullM_noaccum // C(I,J) = scalar where M has the same size as C #undef GB_GET_pM #define GB_GET_pM pC - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" break ; case GB_SUBASSIGN : // C(I,J) = scalar where M has the same size as A #undef GB_GET_pM #define GB_GET_pM pA - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" break ; default: ; } @@ -229,32 +229,32 @@ GrB_Info GB_bitmap_assign_fullM_noaccum // C(i,J) = A where m is a 1-by-C->vdim row vector #undef GB_GET_pM #define GB_GET_pM jC - #include "GB_bitmap_assign_A_template.c" - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" break ; case GB_COL_ASSIGN : // C(I,j) = A where m is a C->vlen-by-1 column vector #undef GB_GET_pM #define GB_GET_pM iC - #include "GB_bitmap_assign_A_template.c" - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" break ; case GB_ASSIGN : // C(I,J) = A where M has the same size as C #undef GB_GET_pM #define GB_GET_pM pC - #include "GB_bitmap_assign_A_template.c" - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" break ; case GB_SUBASSIGN : // C(I,J) = A where M has the same size as A #undef GB_GET_pM #define GB_GET_pM (iA + jA * nI) - #include "GB_bitmap_assign_A_template.c" - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" break ; default: ; diff --git a/GraphBLAS/Source/GB_bitmap_assign_fullM_noaccum_whole.c b/GraphBLAS/Source/assign/GB_bitmap_assign_fullM_noaccum_whole.c similarity index 95% rename from GraphBLAS/Source/GB_bitmap_assign_fullM_noaccum_whole.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_fullM_noaccum_whole.c index 790452aefc..c4de958d9d 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_fullM_noaccum_whole.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_fullM_noaccum_whole.c @@ -30,8 +30,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL ; @@ -116,7 +116,7 @@ GrB_Info GB_bitmap_assign_fullM_noaccum_whole task_cnvals -= (cb == 1) ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -138,7 +138,7 @@ GrB_Info GB_bitmap_assign_fullM_noaccum_whole task_cnvals += (cb == 0) ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } @@ -181,7 +181,7 @@ GrB_Info GB_bitmap_assign_fullM_noaccum_whole task_cnvals -= (cb == 1) ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -212,7 +212,7 @@ GrB_Info GB_bitmap_assign_fullM_noaccum_whole } \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } else @@ -246,7 +246,7 @@ GrB_Info GB_bitmap_assign_fullM_noaccum_whole task_cnvals++ ; \ } \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" } else @@ -270,7 +270,7 @@ GrB_Info GB_bitmap_assign_fullM_noaccum_whole task_cnvals += (cb == 0) ; \ } \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" // delete entries where M(i,j)=1 but not assigned by A #undef GB_CIJ_WORK @@ -283,7 +283,7 @@ GrB_Info GB_bitmap_assign_fullM_noaccum_whole task_cnvals -= (cb == 1) ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } } diff --git a/GraphBLAS/Source/GB_bitmap_assign_methods.h b/GraphBLAS/Source/assign/GB_bitmap_assign_methods.h similarity index 98% rename from GraphBLAS/Source/GB_bitmap_assign_methods.h rename to GraphBLAS/Source/assign/GB_bitmap_assign_methods.h index b9ca78ec8c..bfe7ee8560 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_methods.h +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_methods.h @@ -10,13 +10,13 @@ #ifndef GB_BITMAP_ASSIGN_METHODS_H #define GB_BITMAP_ASSIGN_METHODS_H -#include "GB_callback_proto.h" -#include "GB_bitmap_assign.h" -#include "GB_ek_slice.h" -#include "GB_ij.h" -#include "GB_subassign_IxJ_slice.h" -#include "GB_unused.h" -#include "GB_bitmap_scatter.h" +#include "GB.h" +#include "assign/GB_bitmap_assign.h" +#include "slice/GB_ek_slice.h" +#include "ij/GB_ij.h" +#include "assign/GB_subassign_IxJ_slice.h" +#include "include/GB_unused.h" +#include "assign/include/GB_bitmap_scatter.h" //------------------------------------------------------------------------------ // prototypes diff --git a/GraphBLAS/Source/GB_bitmap_assign_noM_accum.c b/GraphBLAS/Source/assign/GB_bitmap_assign_noM_accum.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_assign_noM_accum.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_noM_accum.c index f7868ab2d0..ef14dea4db 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_noM_accum.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_noM_accum.c @@ -34,8 +34,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL ; @@ -118,7 +118,7 @@ GrB_Info GB_bitmap_assign_noM_accum GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ } \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else @@ -152,7 +152,7 @@ GrB_Info GB_bitmap_assign_noM_accum GB_ACCUMULATE_aij (Cx, pC, Ax, pA, A_iso, ywork) ; \ } \ } - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" } } @@ -180,7 +180,7 @@ GrB_Info GB_bitmap_assign_noM_accum Cb [pC] = 0 ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_C_template.c" + #include "assign/factory/GB_bitmap_assign_C_template.c" } #endif diff --git a/GraphBLAS/Source/GB_bitmap_assign_noM_accum_whole.c b/GraphBLAS/Source/assign/GB_bitmap_assign_noM_accum_whole.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_assign_noM_accum_whole.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_noM_accum_whole.c index 563137fa31..e1c3c7307f 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_noM_accum_whole.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_noM_accum_whole.c @@ -34,8 +34,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL ; @@ -110,7 +110,7 @@ GrB_Info GB_bitmap_assign_noM_accum_whole } if (!C_iso) { - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } // free the bitmap or set it to all ones @@ -149,7 +149,7 @@ GrB_Info GB_bitmap_assign_noM_accum_whole } if (!C_iso) { - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } // free the bitmap or set it to all ones @@ -183,7 +183,7 @@ GrB_Info GB_bitmap_assign_noM_accum_whole } \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" C->nvals = cnvals ; } @@ -211,7 +211,7 @@ GrB_Info GB_bitmap_assign_noM_accum_whole GB_ACCUMULATE_aij (Cx, pC, Ax, pA, A_iso, ywork) ; \ } \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" C->nvals = cnvals ; } } diff --git a/GraphBLAS/Source/GB_bitmap_assign_noM_noaccum.c b/GraphBLAS/Source/assign/GB_bitmap_assign_noM_noaccum.c similarity index 94% rename from GraphBLAS/Source/GB_bitmap_assign_noM_noaccum.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_noM_noaccum.c index 027402c9aa..21638ae567 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_noM_noaccum.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_noM_noaccum.c @@ -36,8 +36,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL ; @@ -108,7 +108,7 @@ GrB_Info GB_bitmap_assign_noM_noaccum Cb [pC] = 0 ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_C_template.c" + #include "assign/factory/GB_bitmap_assign_C_template.c" } } @@ -136,7 +136,7 @@ GrB_Info GB_bitmap_assign_noM_noaccum Cb [pC] = 1 ; \ task_cnvals += (cb == 0) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else @@ -156,7 +156,7 @@ GrB_Info GB_bitmap_assign_noM_noaccum Cb [pC] = 0 ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } // for all entries aij in A (A hyper, sparse, bitmap, or full) @@ -170,7 +170,7 @@ GrB_Info GB_bitmap_assign_noM_noaccum GB_COPY_aij_to_C (Cx, pC, Ax, pA, A_iso, cwork) ; \ Cb [pC] = 1 ; \ } - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" cnvals += GB_nnz (A) ; } diff --git a/GraphBLAS/Source/GB_bitmap_assign_noM_noaccum_whole.c b/GraphBLAS/Source/assign/GB_bitmap_assign_noM_noaccum_whole.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_assign_noM_noaccum_whole.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_noM_noaccum_whole.c index 8cc5e459cb..51875e256f 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_noM_noaccum_whole.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_noM_noaccum_whole.c @@ -43,9 +43,9 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" -#include "GB_subassign_dense.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "assign/GB_subassign_dense.h" #undef GB_FREE_ALL #define GB_FREE_ALL ; @@ -159,7 +159,7 @@ GrB_Info GB_bitmap_assign_noM_noaccum_whole GB_COPY_aij_to_C (Cx, pC, Ax, pA, A_iso, cwork) ; \ Cb [pC] = 1 ; \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" C->nvals = GB_nnz (A) ; } } diff --git a/GraphBLAS/Source/GB_bitmap_assign_notM_accum.c b/GraphBLAS/Source/assign/GB_bitmap_assign_notM_accum.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_assign_notM_accum.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_notM_accum.c index 0d45ac5a4a..e2f1a08c68 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_notM_accum.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_notM_accum.c @@ -24,8 +24,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ @@ -116,7 +116,7 @@ GrB_Info GB_bitmap_assign_notM_accum GB_ACCUMULATE_scalar (Cx, pC, ywork) ; \ } \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else @@ -153,7 +153,7 @@ GrB_Info GB_bitmap_assign_notM_accum GB_ACCUMULATE_aij (Cx, pC, Ax, pA, A_iso, ywork) ; \ } \ } - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" } //-------------------------------------------------------------------------- @@ -182,7 +182,7 @@ GrB_Info GB_bitmap_assign_notM_accum task_cnvals -= (cb == 3) ; \ Cb [pC] = 0 ; \ } - #include "GB_bitmap_assign_M_template.c" + #include "assign/factory/GB_bitmap_assign_M_template.c" } //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Source/GB_bitmap_assign_notM_accum_whole.c b/GraphBLAS/Source/assign/GB_bitmap_assign_notM_accum_whole.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_assign_notM_accum_whole.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_notM_accum_whole.c index ac3b09b783..b46f817daf 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_notM_accum_whole.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_notM_accum_whole.c @@ -24,8 +24,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ @@ -130,7 +130,7 @@ GrB_Info GB_bitmap_assign_notM_accum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -166,7 +166,7 @@ GrB_Info GB_bitmap_assign_notM_accum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } @@ -224,7 +224,7 @@ GrB_Info GB_bitmap_assign_notM_accum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -267,7 +267,7 @@ GrB_Info GB_bitmap_assign_notM_accum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } @@ -296,7 +296,7 @@ GrB_Info GB_bitmap_assign_notM_accum_whole GB_ACCUMULATE_aij (Cx, pC, Ax, pA, A_iso, ywork) ; \ } \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" if (C_replace) { @@ -308,7 +308,7 @@ GrB_Info GB_bitmap_assign_notM_accum_whole Cb [pC] = 0 ; \ task_cnvals -= (cb == 3) ; \ } - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" } else { diff --git a/GraphBLAS/Source/GB_bitmap_assign_notM_noaccum.c b/GraphBLAS/Source/assign/GB_bitmap_assign_notM_noaccum.c similarity index 95% rename from GraphBLAS/Source/GB_bitmap_assign_notM_noaccum.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_notM_noaccum.c index cd1fbd1525..7f1deaa0aa 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_notM_noaccum.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_notM_noaccum.c @@ -24,8 +24,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ @@ -127,7 +127,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum Cb [pC] = (cb == 3) ; \ } \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else @@ -159,7 +159,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum task_cnvals += (cb == 0) ; \ } \ } - #include "GB_bitmap_assign_A_template.c" + #include "assign/factory/GB_bitmap_assign_A_template.c" //---------------------------------------------------------------------- // handle entries in IxJ @@ -175,7 +175,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum Cb [pC] = (cb == 4) ; \ task_cnvals -= (cb == 1 || cb == 3) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else { @@ -187,7 +187,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum Cb [pC] = (cb == 4 || cb == 3) ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } } @@ -211,7 +211,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum Cb [pC] = (cb == 1) ; \ task_cnvals -= (cb == 3) ; \ } - #include "GB_bitmap_assign_C_template.c" + #include "assign/factory/GB_bitmap_assign_C_template.c" } else { diff --git a/GraphBLAS/Source/GB_bitmap_assign_notM_noaccum_whole.c b/GraphBLAS/Source/assign/GB_bitmap_assign_notM_noaccum_whole.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_assign_notM_noaccum_whole.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_notM_noaccum_whole.c index f6a414e1c1..2b05ac6b4c 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_notM_noaccum_whole.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_notM_noaccum_whole.c @@ -24,8 +24,8 @@ // JIT: needed. -#include "GB_bitmap_assign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ @@ -128,7 +128,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -164,7 +164,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } @@ -228,7 +228,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else @@ -276,7 +276,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum_whole default: ; \ } \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } @@ -300,7 +300,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum_whole task_cnvals += (cb == 0) ; \ } \ } - #include "GB_bitmap_assign_A_whole_template.c" + #include "assign/factory/GB_bitmap_assign_A_whole_template.c" // clear the mask and delete entries not assigned if (C_replace) @@ -312,7 +312,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum_whole Cb [pC] = (cb == 4) ; \ task_cnvals -= (cb == 1 || cb == 3) ; \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } else { @@ -323,7 +323,7 @@ GrB_Info GB_bitmap_assign_notM_noaccum_whole Cb [pC] = (cb == 4 || cb == 3) ; \ task_cnvals -= (cb == 1) ; \ } - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } } } diff --git a/GraphBLAS/Source/GB_bitmap_assign_to_full.c b/GraphBLAS/Source/assign/GB_bitmap_assign_to_full.c similarity index 97% rename from GraphBLAS/Source/GB_bitmap_assign_to_full.c rename to GraphBLAS/Source/assign/GB_bitmap_assign_to_full.c index 5aab23a83c..a05e24fe2b 100644 --- a/GraphBLAS/Source/GB_bitmap_assign_to_full.c +++ b/GraphBLAS/Source/assign/GB_bitmap_assign_to_full.c @@ -10,7 +10,7 @@ // All entries in C are now present. Either set all of C->b to 1, or free it // and make C full. -#include "GB_bitmap_assign_methods.h" +#include "assign/GB_bitmap_assign_methods.h" void GB_bitmap_assign_to_full // set all C->b to 1, or free it and make C full ( diff --git a/GraphBLAS/Source/GB_subassign.c b/GraphBLAS/Source/assign/GB_subassign.c similarity index 98% rename from GraphBLAS/Source/GB_subassign.c rename to GraphBLAS/Source/assign/GB_subassign.c index a7b7930c03..4f44ee96a7 100644 --- a/GraphBLAS/Source/GB_subassign.c +++ b/GraphBLAS/Source/assign/GB_subassign.c @@ -20,8 +20,8 @@ // Compare with GB_assign, which uses M and C_replace differently -#include "GB_subassign.h" -#include "GB_bitmap_assign.h" +#include "assign/GB_subassign.h" +#include "assign/GB_bitmap_assign.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GB_subassign.h b/GraphBLAS/Source/assign/GB_subassign.h similarity index 88% rename from GraphBLAS/Source/GB_subassign.h rename to GraphBLAS/Source/assign/GB_subassign.h index a545b1aa04..e2904c82a6 100644 --- a/GraphBLAS/Source/GB_subassign.h +++ b/GraphBLAS/Source/assign/GB_subassign.h @@ -9,8 +9,8 @@ #ifndef GB_SUBASSIGN_H #define GB_SUBASSIGN_H -#include "GB_ij.h" -#include "GB_add.h" +#include "ij/GB_ij.h" +#include "ewise/GB_add.h" GrB_Info GB_subassign // C(Rows,Cols) += A or A' ( @@ -48,6 +48,7 @@ GrB_Info GB_subassign_scalar // C(Rows,Cols) += x GB_Werk Werk ) ; +#if 0 int GB_subassigner_method // return method to use in GB_subassigner ( // outputs @@ -67,6 +68,29 @@ int GB_subassigner_method // return method to use in GB_subassigner const void *scalar, const GrB_Type scalar_type // type of the scalar ) ; +#endif + +int GB_subassigner_method // return method to use in GB_subassigner +( + // outputs + bool *C_iso_out, // true if C is iso on output + GB_void *cout, // iso value of C on output + // inputs + const GrB_Matrix C, // input/output matrix for results + const bool C_replace, // C matrix descriptor + const GrB_Matrix M, // optional mask for C(I,J), unused if NULL + const bool Mask_comp, // mask descriptor + const bool Mask_struct, // if true, use the only structure of M + const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),A) + const GrB_Matrix A, // input matrix (NULL for scalar expansion) + const int Ikind, // I: just the kind + const int Jkind, // J: kind, length, and colon + const int64_t nJ, + const int64_t Jcolon [3], + const bool scalar_expansion, // if true, expand scalar to A + const void *scalar, + const GrB_Type scalar_type // type of the scalar, or NULL +) ; GrB_Info GB_subassigner // C(I,J)<#M> = A or accum (C (I,J), A) ( @@ -193,6 +217,7 @@ GrB_Info GB_assign_prep #define GB_SUBASSIGN_METHOD_23 23 // C += A ; C is dense #define GB_SUBASSIGN_METHOD_24 24 // C = A #define GB_SUBASSIGN_METHOD_25 25 // C(:,:) = A ; C empty +#define GB_SUBASSIGN_METHOD_26 26 // C(:,j) = A ; append column to C #define GB_SUBASSIGN_METHOD_BITMAP 999 // bitmap assignment #endif diff --git a/GraphBLAS/Source/GB_subassign_01.c b/GraphBLAS/Source/assign/GB_subassign_01.c similarity index 98% rename from GraphBLAS/Source/GB_subassign_01.c rename to GraphBLAS/Source/assign/GB_subassign_01.c index 231acc2aad..307b0d0649 100644 --- a/GraphBLAS/Source/GB_subassign_01.c +++ b/GraphBLAS/Source/assign/GB_subassign_01.c @@ -20,8 +20,8 @@ // C: not bitmap -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_01 ( diff --git a/GraphBLAS/Source/GB_subassign_02.c b/GraphBLAS/Source/assign/GB_subassign_02.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_02.c rename to GraphBLAS/Source/assign/GB_subassign_02.c index e644a8aa19..b1d573a059 100644 --- a/GraphBLAS/Source/GB_subassign_02.c +++ b/GraphBLAS/Source/assign/GB_subassign_02.c @@ -21,8 +21,8 @@ // C: not bitmap or full: use GB_bitmap_assign instead // A: any sparsity structure. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_02 ( diff --git a/GraphBLAS/Source/GB_subassign_03.c b/GraphBLAS/Source/assign/GB_subassign_03.c similarity index 98% rename from GraphBLAS/Source/GB_subassign_03.c rename to GraphBLAS/Source/assign/GB_subassign_03.c index c65b3bf04b..e944dd2dbe 100644 --- a/GraphBLAS/Source/GB_subassign_03.c +++ b/GraphBLAS/Source/assign/GB_subassign_03.c @@ -20,8 +20,8 @@ // C is not bitmap: use GB_bitmap_assign instead -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_03 ( diff --git a/GraphBLAS/Source/GB_subassign_04.c b/GraphBLAS/Source/assign/GB_subassign_04.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_04.c rename to GraphBLAS/Source/assign/GB_subassign_04.c index 65c643d408..a7b455c852 100644 --- a/GraphBLAS/Source/GB_subassign_04.c +++ b/GraphBLAS/Source/assign/GB_subassign_04.c @@ -21,8 +21,8 @@ // C: not bitmap: use GB_bitmap_assign instead // A: any sparsity structure. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_04 ( diff --git a/GraphBLAS/Source/GB_subassign_05.c b/GraphBLAS/Source/assign/GB_subassign_05.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_05.c rename to GraphBLAS/Source/assign/GB_subassign_05.c index 2ddc12e85f..88db737782 100644 --- a/GraphBLAS/Source/GB_subassign_05.c +++ b/GraphBLAS/Source/assign/GB_subassign_05.c @@ -21,8 +21,8 @@ // C: not bitmap // M: any sparsity -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_05 ( diff --git a/GraphBLAS/Source/GB_subassign_05d.c b/GraphBLAS/Source/assign/GB_subassign_05d.c similarity index 94% rename from GraphBLAS/Source/GB_subassign_05d.c rename to GraphBLAS/Source/assign/GB_subassign_05d.c index ab62ee7cb0..baede03fe1 100644 --- a/GraphBLAS/Source/GB_subassign_05d.c +++ b/GraphBLAS/Source/assign/GB_subassign_05d.c @@ -22,13 +22,13 @@ // C can have any sparsity structure, but it must be entirely dense with // all entries present. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" -#include "GB_subassign_dense.h" -#include "GB_unused.h" -#include "GB_stringify.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "assign/GB_subassign_dense.h" +#include "include/GB_unused.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_as__include.h" +#include "FactoryKernels/GB_as__include.h" #endif #undef GB_FREE_ALL @@ -163,7 +163,7 @@ GrB_Info GB_subassign_05d if (info == GrB_NO_VALUE) { - #include "GB_generic.h" + #include "generic/GB_generic.h" GB_BURBLE_MATRIX (M, "(generic C(:,:)=x assign) ") ; // Cx [pC] = cwork @@ -171,7 +171,7 @@ GrB_Info GB_subassign_05d #define GB_COPY_scalar_to_C(Cx,pC,cwork) \ memcpy (Cx + ((pC)*csize), cwork, csize) - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GB_subassign_05e.c b/GraphBLAS/Source/assign/GB_subassign_05e.c similarity index 97% rename from GraphBLAS/Source/GB_subassign_05e.c rename to GraphBLAS/Source/assign/GB_subassign_05e.c index b98eb2914f..ed7b55b461 100644 --- a/GraphBLAS/Source/GB_subassign_05e.c +++ b/GraphBLAS/Source/assign/GB_subassign_05e.c @@ -26,8 +26,8 @@ // C is always iso, and its iso value has been assigned by GB_assign_prep. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL diff --git a/GraphBLAS/Source/GB_subassign_06d.c b/GraphBLAS/Source/assign/GB_subassign_06d.c similarity index 94% rename from GraphBLAS/Source/GB_subassign_06d.c rename to GraphBLAS/Source/assign/GB_subassign_06d.c index ccff36ddf1..7bf55a7305 100644 --- a/GraphBLAS/Source/GB_subassign_06d.c +++ b/GraphBLAS/Source/assign/GB_subassign_06d.c @@ -28,12 +28,12 @@ // C and A can have any sparsity structure. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" -#include "GB_subassign_dense.h" -#include "GB_stringify.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "assign/GB_subassign_dense.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_as__include.h" +#include "FactoryKernels/GB_as__include.h" #endif #undef GB_FREE_ALL @@ -97,7 +97,7 @@ GrB_Info GB_subassign_06d ASSERT (Mask_struct) ; #define GB_ISO_ASSIGN - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" info = GrB_SUCCESS ; } @@ -177,7 +177,7 @@ GrB_Info GB_subassign_06d if (info == GrB_NO_VALUE) { - #include "GB_generic.h" + #include "generic/GB_generic.h" GB_BURBLE_MATRIX (A, "(generic C(:,:)=A assign) ") ; const size_t csize = C->type->size ; @@ -189,7 +189,7 @@ GrB_Info GB_subassign_06d #undef GB_AX_MASK #define GB_AX_MASK(Ax,pA,asize) GB_MCAST (Ax, pA, asize) - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" info = GrB_SUCCESS ; } } diff --git a/GraphBLAS/Source/GB_subassign_06n.c b/GraphBLAS/Source/assign/GB_subassign_06n.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_06n.c rename to GraphBLAS/Source/assign/GB_subassign_06n.c index 5fc3619e19..ccc75af498 100644 --- a/GraphBLAS/Source/GB_subassign_06n.c +++ b/GraphBLAS/Source/assign/GB_subassign_06n.c @@ -29,8 +29,8 @@ // C is not bitmap: GB_bitmap_assign is used if C is bitmap. // M and A are not bitmap: 06s is used instead, if M or A are bitmap. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_06n ( diff --git a/GraphBLAS/Source/GB_subassign_06s_and_14.c b/GraphBLAS/Source/assign/GB_subassign_06s_and_14.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_06s_and_14.c rename to GraphBLAS/Source/assign/GB_subassign_06s_and_14.c index 1b3112ec89..a3f82ddc77 100644 --- a/GraphBLAS/Source/GB_subassign_06s_and_14.c +++ b/GraphBLAS/Source/assign/GB_subassign_06s_and_14.c @@ -22,8 +22,8 @@ // C: not bitmap or full: use GB_bitmap_assign instead // M, A: any sparsity structure. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_06s_and_14 ( diff --git a/GraphBLAS/Source/GB_subassign_07.c b/GraphBLAS/Source/assign/GB_subassign_07.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_07.c rename to GraphBLAS/Source/assign/GB_subassign_07.c index c4517f2e91..bbb0e8c0cb 100644 --- a/GraphBLAS/Source/GB_subassign_07.c +++ b/GraphBLAS/Source/assign/GB_subassign_07.c @@ -21,8 +21,8 @@ // C: not bitmap // M: any sparsity -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_07 ( diff --git a/GraphBLAS/Source/GB_subassign_08n.c b/GraphBLAS/Source/assign/GB_subassign_08n.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_08n.c rename to GraphBLAS/Source/assign/GB_subassign_08n.c index 6067590928..d8abe5c704 100644 --- a/GraphBLAS/Source/GB_subassign_08n.c +++ b/GraphBLAS/Source/assign/GB_subassign_08n.c @@ -22,8 +22,8 @@ // If C is bitmap, then GB_bitmap_assign_M_accum is used instead. // M, A: not bitmap; Method 08s is used instead if M or A are bitmap. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // GB_PHASE1_ACTION diff --git a/GraphBLAS/Source/GB_subassign_08n_slice.c b/GraphBLAS/Source/assign/GB_subassign_08n_slice.c similarity index 98% rename from GraphBLAS/Source/GB_subassign_08n_slice.c rename to GraphBLAS/Source/assign/GB_subassign_08n_slice.c index 24a3d2a067..e6a72fab0a 100644 --- a/GraphBLAS/Source/GB_subassign_08n_slice.c +++ b/GraphBLAS/Source/assign/GB_subassign_08n_slice.c @@ -27,11 +27,11 @@ // instead (which handles both M and A as bitmap). As a result, this method // does not need to consider the bitmap case for C, M, or A. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" -#include "GB_emult.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "ewise/GB_emult.h" // Npending is set to NULL by the GB_EMPTY_TASKLIST macro, but unused here. -#include "GB_unused.h" +#include "include/GB_unused.h" GrB_Info GB_subassign_08n_slice ( diff --git a/GraphBLAS/Source/GB_subassign_08s_and_16.c b/GraphBLAS/Source/assign/GB_subassign_08s_and_16.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_08s_and_16.c rename to GraphBLAS/Source/assign/GB_subassign_08s_and_16.c index 8a7809d75d..5fbefa28d1 100644 --- a/GraphBLAS/Source/GB_subassign_08s_and_16.c +++ b/GraphBLAS/Source/assign/GB_subassign_08s_and_16.c @@ -22,8 +22,8 @@ // C: not bitmap: use GB_bitmap_assign instead // M, A: any sparsity structure. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_08s_and_16 ( diff --git a/GraphBLAS/Source/GB_subassign_09.c b/GraphBLAS/Source/assign/GB_subassign_09.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_09.c rename to GraphBLAS/Source/assign/GB_subassign_09.c index cf6e35098f..a59184f53e 100644 --- a/GraphBLAS/Source/GB_subassign_09.c +++ b/GraphBLAS/Source/assign/GB_subassign_09.c @@ -20,9 +20,9 @@ // C: not bitmap or full -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" -#include "GB_unused.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "include/GB_unused.h" GrB_Info GB_subassign_09 ( diff --git a/GraphBLAS/Source/GB_subassign_10_and_18.c b/GraphBLAS/Source/assign/GB_subassign_10_and_18.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_10_and_18.c rename to GraphBLAS/Source/assign/GB_subassign_10_and_18.c index e27b59df62..1ee13359c4 100644 --- a/GraphBLAS/Source/GB_subassign_10_and_18.c +++ b/GraphBLAS/Source/assign/GB_subassign_10_and_18.c @@ -22,8 +22,8 @@ // C: not bitmap: use GB_bitmap_assign instead // M, A: any sparsity structure. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_10_and_18 ( diff --git a/GraphBLAS/Source/GB_subassign_11.c b/GraphBLAS/Source/assign/GB_subassign_11.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_11.c rename to GraphBLAS/Source/assign/GB_subassign_11.c index daa740e8a2..6879ccd84a 100644 --- a/GraphBLAS/Source/GB_subassign_11.c +++ b/GraphBLAS/Source/assign/GB_subassign_11.c @@ -20,9 +20,9 @@ // C, M: not bitmap -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" -#include "GB_unused.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "include/GB_unused.h" GrB_Info GB_subassign_11 ( diff --git a/GraphBLAS/Source/GB_subassign_12_and_20.c b/GraphBLAS/Source/assign/GB_subassign_12_and_20.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_12_and_20.c rename to GraphBLAS/Source/assign/GB_subassign_12_and_20.c index 1d4ae6762e..9e3624227d 100644 --- a/GraphBLAS/Source/GB_subassign_12_and_20.c +++ b/GraphBLAS/Source/assign/GB_subassign_12_and_20.c @@ -22,8 +22,8 @@ // C: not bitmap: use GB_bitmap_assign instead // M, A: any sparsity structure. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_12_and_20 ( diff --git a/GraphBLAS/Source/GB_subassign_13.c b/GraphBLAS/Source/assign/GB_subassign_13.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_13.c rename to GraphBLAS/Source/assign/GB_subassign_13.c index 29cc3e86d2..6e8d3a9e5d 100644 --- a/GraphBLAS/Source/GB_subassign_13.c +++ b/GraphBLAS/Source/assign/GB_subassign_13.c @@ -21,8 +21,8 @@ // C: not bitmap, but can be full since no zombies are inserted in that case // M: not bitmap -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_13 ( diff --git a/GraphBLAS/Source/GB_subassign_15.c b/GraphBLAS/Source/assign/GB_subassign_15.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_15.c rename to GraphBLAS/Source/assign/GB_subassign_15.c index 3afca9c2dd..fd371c030e 100644 --- a/GraphBLAS/Source/GB_subassign_15.c +++ b/GraphBLAS/Source/assign/GB_subassign_15.c @@ -21,8 +21,8 @@ // C: not bitmap, but can be full since no zombies are inserted in that case // M: not bitmap -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_15 ( diff --git a/GraphBLAS/Source/GB_subassign_17.c b/GraphBLAS/Source/assign/GB_subassign_17.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_17.c rename to GraphBLAS/Source/assign/GB_subassign_17.c index b8ae121801..ee5a11a18c 100644 --- a/GraphBLAS/Source/GB_subassign_17.c +++ b/GraphBLAS/Source/assign/GB_subassign_17.c @@ -21,8 +21,8 @@ // C: not bitmap // M: not bitmap -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_17 ( diff --git a/GraphBLAS/Source/GB_subassign_19.c b/GraphBLAS/Source/assign/GB_subassign_19.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_19.c rename to GraphBLAS/Source/assign/GB_subassign_19.c index f32c44920f..cd65347c6f 100644 --- a/GraphBLAS/Source/GB_subassign_19.c +++ b/GraphBLAS/Source/assign/GB_subassign_19.c @@ -21,8 +21,8 @@ // C: not bitmap // M: not bitmap -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" GrB_Info GB_subassign_19 ( diff --git a/GraphBLAS/Source/GB_subassign_22.c b/GraphBLAS/Source/assign/GB_subassign_22.c similarity index 92% rename from GraphBLAS/Source/GB_subassign_22.c rename to GraphBLAS/Source/assign/GB_subassign_22.c index c0212ca61d..130d4337ea 100644 --- a/GraphBLAS/Source/GB_subassign_22.c +++ b/GraphBLAS/Source/assign/GB_subassign_22.c @@ -21,13 +21,13 @@ // C += scalar where C is full -#include "GB_subassign_dense.h" -#include "GB_assign_shared_definitions.h" -#include "GB_binop.h" -#include "GB_unused.h" -#include "GB_stringify.h" +#include "assign/GB_subassign_dense.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_aop__include.h" +#include "FactoryKernels/GB_aop__include.h" #endif #undef GB_FREE_ALL @@ -70,6 +70,7 @@ GrB_Info GB_subassign_22 // C += scalar where C is full } // C = accum (C,scalar) will be computed + // TODO: the types of C, Z, and X need not match for the JIT kernel ASSERT (C->type == accum->ztype) ; ASSERT (C->type == accum->xtype) ; ASSERT (GB_Type_compatible (scalar_type, accum->ytype)) ; @@ -128,7 +129,9 @@ GrB_Info GB_subassign_22 // C += scalar where C is full accum, false, &opcode, &xcode, &ycode, &zcode)) { // accumulate sparse matrix into full matrix with built-in operator - #include "GB_binop_factory.c" + #define GB_NO_FIRST + #define GB_XTYPE_AND_ZTYPE_MUST_MATCH + #include "binaryop/factory/GB_binop_factory.c" } } #endif @@ -160,7 +163,7 @@ GrB_Info GB_subassign_22 // C += scalar where C is full if (info == GrB_NO_VALUE) { - #include "GB_generic.h" + #include "generic/GB_generic.h" GB_BURBLE_MATRIX (C, "(generic C(:,:)+=x assign) ") ; GxB_binary_function faccum = accum->binop_function ; @@ -170,7 +173,7 @@ GrB_Info GB_subassign_22 // C += scalar where C is full #define GB_ACCUMULATE_scalar(Cx,pC,ywork) \ faccum (Cx +((pC)*csize), Cx +((pC)*csize), ywork) - #include "GB_subassign_22_template.c" + #include "assign/template/GB_subassign_22_template.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GB_subassign_23.c b/GraphBLAS/Source/assign/GB_subassign_23.c similarity index 93% rename from GraphBLAS/Source/GB_subassign_23.c rename to GraphBLAS/Source/assign/GB_subassign_23.c index d7a4b8aef3..c4745a07a8 100644 --- a/GraphBLAS/Source/GB_subassign_23.c +++ b/GraphBLAS/Source/assign/GB_subassign_23.c @@ -26,14 +26,14 @@ // C and A can have any sparsity structure, but C must be as-if-full. -#include "GB_subassign_dense.h" -#include "GB_assign_shared_definitions.h" -#include "GB_binop.h" -#include "GB_stringify.h" +#include "assign/GB_subassign_dense.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_aop__include.h" +#include "FactoryKernels/GB_aop__include.h" #endif -#include "GB_unused.h" +#include "include/GB_unused.h" #undef GB_FREE_ALL #define GB_FREE_ALL ; @@ -128,7 +128,9 @@ GrB_Info GB_subassign_23 // C += A; C is full accum, false, &opcode, &xcode, &ycode, &zcode)) { // accumulate sparse matrix into full matrix with built-in operator - #include "GB_binop_factory.c" + #define GB_NO_FIRST + #define GB_XTYPE_AND_ZTYPE_MUST_MATCH + #include "binaryop/factory/GB_binop_factory.c" } } #endif @@ -159,7 +161,7 @@ GrB_Info GB_subassign_23 // C += A; C is full if (info == GrB_NO_VALUE) { - #include "GB_generic.h" + #include "generic/GB_generic.h" GB_BURBLE_MATRIX (A, "(generic C+=A) ") ; GxB_binary_function faccum = accum->binop_function ; @@ -197,7 +199,7 @@ GrB_Info GB_subassign_23 // C += A; C is full } \ } - #include "GB_subassign_23_template.c" + #include "assign/template/GB_subassign_23_template.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GB_subassign_24.c b/GraphBLAS/Source/assign/GB_subassign_24.c similarity index 98% rename from GraphBLAS/Source/GB_subassign_24.c rename to GraphBLAS/Source/assign/GB_subassign_24.c index 30c6356ab7..a860a7e057 100644 --- a/GraphBLAS/Source/GB_subassign_24.c +++ b/GraphBLAS/Source/assign/GB_subassign_24.c @@ -20,8 +20,8 @@ // A can be jumbled, in which case C is also jumbled. // A can have any sparsity structure (sparse, hyper, bitmap, or full). -#include "GB_subassign_dense.h" -#include "GB_Pending.h" +#include "assign/GB_subassign_dense.h" +#include "pending/GB_Pending.h" #define GB_FREE_ALL ; GrB_Info GB_subassign_24 // C = A, copy A into an existing matrix C diff --git a/GraphBLAS/Source/GB_subassign_25.c b/GraphBLAS/Source/assign/GB_subassign_25.c similarity index 95% rename from GraphBLAS/Source/GB_subassign_25.c rename to GraphBLAS/Source/assign/GB_subassign_25.c index dbfc9a7e3e..1bc03e2fbc 100644 --- a/GraphBLAS/Source/GB_subassign_25.c +++ b/GraphBLAS/Source/assign/GB_subassign_25.c @@ -27,12 +27,12 @@ // C is iso if A is iso -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" -#include "GB_subassign_dense.h" -#include "GB_stringify.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "assign/GB_subassign_dense.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_as__include.h" +#include "FactoryKernels/GB_as__include.h" #endif #undef GB_FREE_ALL @@ -119,7 +119,7 @@ GrB_Info GB_subassign_25 #define GB_ISO_ASSIGN GB_cast_scalar (C->x, ccode, A->x, acode, asize) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" info = GrB_SUCCESS ; } @@ -200,7 +200,7 @@ GrB_Info GB_subassign_25 if (info == GrB_NO_VALUE) { - #include "GB_generic.h" + #include "generic/GB_generic.h" GB_BURBLE_MATRIX (A, "(generic C(:,:)=A assign, " "method 25) ") ; @@ -208,7 +208,7 @@ GrB_Info GB_subassign_25 GB_cast_function cast_A_to_C = GB_cast_factory (ccode, acode) ; #define C_iso false - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" info = GrB_SUCCESS ; } } diff --git a/GraphBLAS/Source/assign/GB_subassign_26.c b/GraphBLAS/Source/assign/GB_subassign_26.c new file mode 100644 index 0000000000..ccb0af221c --- /dev/null +++ b/GraphBLAS/Source/assign/GB_subassign_26.c @@ -0,0 +1,184 @@ +//------------------------------------------------------------------------------ +// GB_subassign_26: C(:,j1:j2) = A ; append columns, no S +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// JIT: needed. + +// Method 26: C(:,j1:j2) = A ; append columns, no S + +// M: NULL +// Mask_comp: false +// C_replace: false +// accum: NULL +// A: matrix +// S: constructed + +// C: hypersparse +// A: sparse + +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" +#undef GB_FREE_ALL +#define GB_FREE_ALL ; +#define GB_MEM_CHUNK (1024*1024) + +GrB_Info GB_subassign_26 +( + GrB_Matrix C, + // input: + const int64_t Jcolon [3], // j1:j2, with an increment of 1 + const GrB_Matrix A, + GB_Werk Werk +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + ASSERT (GB_IS_HYPERSPARSE (C)) ; + ASSERT (GB_IS_SPARSE (A)) ; + ASSERT (!GB_any_aliased (C, A)) ; // NO ALIAS of C==A + ASSERT (!GB_PENDING (A)) ; // FUTURE: could tolerate pending tuples + ASSERT (!GB_ZOMBIES (A)) ; // FUTURE: could tolerate zombies + ASSERT (A->type == C->type) ; // no typecasting + ASSERT (!A->iso) ; // FUTURE: handle iso case + ASSERT (!C->iso) ; // FUTURE: handle iso case + + //-------------------------------------------------------------------------- + // get inputs + //-------------------------------------------------------------------------- + + GrB_Info info ; + const size_t csize = C->type->size ; + int64_t cnvec = C->nvec ; + int64_t cnz = C->nvals ; + + int64_t *restrict Ap = A->p ; + int64_t *restrict Ai = A->i ; + GB_void *restrict Ax = (GB_void *) A->x ; + int64_t anz = A->nvals ; + + int64_t j1 = Jcolon [GxB_BEGIN] ; + int64_t j2 = Jcolon [GxB_END ] ; + ASSERT (Jcolon [GxB_INC] == 1) ; + int64_t nJ = j2 - j1 + 1 ; + ASSERT (nJ == A->vdim) ; + + //-------------------------------------------------------------------------- + // Method 26: C(:,j1:j2) = A ; append column(s), no S. + //-------------------------------------------------------------------------- + + // Time: Optimal. Work is O(nnz(A)). + + //-------------------------------------------------------------------------- + // resize C if necessary + //-------------------------------------------------------------------------- + + int64_t cnz_new = cnz + anz ; + + if (cnvec + nJ > C->plen) + { + // double the size of C->h and C->p if needed + int64_t plen_new = GB_IMIN (C->vdim, 2*(C->plen + nJ)) ; + GB_OK (GB_hyper_realloc (C, plen_new, Werk)) ; + } + + if (cnz_new > GB_nnz_max (C)) + { + // double the size of C->i and C->x if needed + GB_OK (GB_ix_realloc (C, 2*cnz_new + 1)) ; + } + + int64_t *restrict Cp = C->p ; + int64_t *restrict Ch = C->h ; + int64_t *restrict Ci = C->i ; + GB_void *restrict Cx = (GB_void *) C->x ; + + //-------------------------------------------------------------------------- + // determine any parallelism to use + //-------------------------------------------------------------------------- + + ASSERT (cnvec == 0 || Ch [cnvec-1] == j1-1) ; + + bool phase1_parallel = (nJ > GB_CHUNK_DEFAULT) ; + bool phase2_parallel = (anz * (sizeof (int64_t) + csize) > GB_MEM_CHUNK) ; + int nthreads_max ; + double chunk ; + + if (phase1_parallel || phase2_parallel) + { + nthreads_max = GB_Context_nthreads_max ( ) ; + chunk = GB_Context_chunk ( ) ; + } + + //-------------------------------------------------------------------------- + // phase1: compute Cp, Ch, # of new nonempty vectors, and matrix properties + //-------------------------------------------------------------------------- + + int64_t anvec_nonempty = 0 ; + #define COMPUTE_CP_AND_CH \ + for (k = 0 ; k < nJ ; k++) \ + { \ + int64_t apk = Ap [k] ; \ + int64_t anzk = Ap [k+1] - apk ; \ + Ch [cnvec + k] = j1 + k ; \ + Cp [cnvec + k] = cnz + apk ; \ + anvec_nonempty += (anzk > 0) ; \ + } + + int nthreads = (phase1_parallel) ? + GB_nthreads (nJ, chunk, nthreads_max) : 1 ; + int64_t k ; + if (nthreads > 1) + { + // compute Cp and Ch in parallel + #pragma omp parallel for num_threads(nthreads) schedule(static) \ + reduction(+:anvec_nonempty) + COMPUTE_CP_AND_CH ; + } + else + { + // compute Cp and Ch in a single thread + COMPUTE_CP_AND_CH ; + } + + if (C->nvec_nonempty >= 0) + { + C->nvec_nonempty += anvec_nonempty ; + } + C->nvec += nJ ; + Cp [C->nvec] = cnz_new ; + C->nvals = cnz_new ; + C->jumbled = C->jumbled || A->jumbled ; + + //-------------------------------------------------------------------------- + // phase2: copy the indices and values + //-------------------------------------------------------------------------- + + nthreads = (phase2_parallel) ? GB_nthreads (anz, chunk, nthreads_max) : 1 ; + if (nthreads > 1) + { + // copy Ci and Cx with parallel memcpy's + GB_memcpy (Ci + cnz, Ai, anz * sizeof (int64_t), nthreads) ; + GB_memcpy (Cx + cnz * csize, Ax, anz * csize, nthreads) ; + } + else + { + // copy Ci and Cx with single-threaded memcpy's + memcpy (Ci + cnz, Ai, anz * sizeof (int64_t)) ; + memcpy (Cx + cnz * csize, Ax, anz * csize) ; + } + + //-------------------------------------------------------------------------- + // return result + //-------------------------------------------------------------------------- + + return (GrB_SUCCESS) ; +} + diff --git a/GraphBLAS/Source/GB_subassign_IxJ_slice.c b/GraphBLAS/Source/assign/GB_subassign_IxJ_slice.c similarity index 99% rename from GraphBLAS/Source/GB_subassign_IxJ_slice.c rename to GraphBLAS/Source/assign/GB_subassign_IxJ_slice.c index b93f5de1af..a73dad4cb9 100644 --- a/GraphBLAS/Source/GB_subassign_IxJ_slice.c +++ b/GraphBLAS/Source/assign/GB_subassign_IxJ_slice.c @@ -43,7 +43,7 @@ // Instead, Methods 05 and 07 slice the matrix M, and Methods 09 and 11 slice // the matrix addition M+S. -#include "GB_subassign_methods.h" +#include "assign/GB_subassign_methods.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ diff --git a/GraphBLAS/Source/GB_subassign_IxJ_slice.h b/GraphBLAS/Source/assign/GB_subassign_IxJ_slice.h similarity index 100% rename from GraphBLAS/Source/GB_subassign_IxJ_slice.h rename to GraphBLAS/Source/assign/GB_subassign_IxJ_slice.h diff --git a/GraphBLAS/Source/GB_subassign_dense.h b/GraphBLAS/Source/assign/GB_subassign_dense.h similarity index 98% rename from GraphBLAS/Source/GB_subassign_dense.h rename to GraphBLAS/Source/assign/GB_subassign_dense.h index 70fc318f83..3486361708 100644 --- a/GraphBLAS/Source/GB_subassign_dense.h +++ b/GraphBLAS/Source/assign/GB_subassign_dense.h @@ -10,7 +10,7 @@ #ifndef GB_SUBASSIGN_DENSE_H #define GB_SUBASSIGN_DENSE_H -#include "GB_ek_slice.h" +#include "slice/GB_ek_slice.h" //------------------------------------------------------------------------------ // GB_subassign_23: C(:,:) += A where C is dense and A is sparse or dense diff --git a/GraphBLAS/Source/GB_subassign_methods.h b/GraphBLAS/Source/assign/GB_subassign_methods.h similarity index 96% rename from GraphBLAS/Source/GB_subassign_methods.h rename to GraphBLAS/Source/assign/GB_subassign_methods.h index d5dd02c4ef..10373961c8 100644 --- a/GraphBLAS/Source/GB_subassign_methods.h +++ b/GraphBLAS/Source/assign/GB_subassign_methods.h @@ -2,7 +2,7 @@ // GB_subassign_methods.h: definitions for GB_subassign methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -10,11 +10,11 @@ #ifndef GB_SUBASSIGN_METHODS_H #define GB_SUBASSIGN_METHODS_H -#include "GB_add.h" -#include "GB_ij.h" -#include "GB_Pending.h" -#include "GB_subassign_IxJ_slice.h" -#include "GB_unused.h" +#include "ewise/GB_add.h" +#include "ij/GB_ij.h" +#include "pending/GB_Pending.h" +#include "assign/GB_subassign_IxJ_slice.h" +#include "include/GB_unused.h" //------------------------------------------------------------------------------ // GB_subassign_symbolic: S = C(I,J) @@ -568,5 +568,18 @@ GrB_Info GB_subassign_08n_slice GB_Werk Werk ) ; +//------------------------------------------------------------------------------ +// GB_subassign_26: C(:,j) = A, append column, no S +//------------------------------------------------------------------------------ + +GrB_Info GB_subassign_26 +( + GrB_Matrix C, + // input: + const int64_t Jcolon [3], // j1:j2, with an increment of 1 + const GrB_Matrix A, + GB_Werk Werk +) ; + #endif diff --git a/GraphBLAS/Source/GB_subassign_one_slice.c b/GraphBLAS/Source/assign/GB_subassign_one_slice.c similarity index 98% rename from GraphBLAS/Source/GB_subassign_one_slice.c rename to GraphBLAS/Source/assign/GB_subassign_one_slice.c index 1f597d3928..8bc90a23b0 100644 --- a/GraphBLAS/Source/GB_subassign_one_slice.c +++ b/GraphBLAS/Source/assign/GB_subassign_one_slice.c @@ -25,8 +25,8 @@ // C: not bitmap -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_WORKSPACE #define GB_FREE_WORKSPACE \ @@ -166,7 +166,7 @@ GrB_Info GB_subassign_one_slice GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (Coarse, Mp, mnvec, ntasks1, false) ; + GB_p_slice (Coarse, Mp, mnvec, ntasks1, false) ; //-------------------------------------------------------------------------- // construct all tasks, both coarse and fine diff --git a/GraphBLAS/Source/GB_subassign_scalar.c b/GraphBLAS/Source/assign/GB_subassign_scalar.c similarity index 98% rename from GraphBLAS/Source/GB_subassign_scalar.c rename to GraphBLAS/Source/assign/GB_subassign_scalar.c index d382647ae4..9822374edb 100644 --- a/GraphBLAS/Source/GB_subassign_scalar.c +++ b/GraphBLAS/Source/assign/GB_subassign_scalar.c @@ -17,8 +17,8 @@ // Compare with GB_assign_scalar, which uses M and C_replace differently -#include "GB_subassign.h" -#include "GB_get_mask.h" +#include "assign/GB_subassign.h" +#include "mask/GB_get_mask.h" GrB_Info GB_subassign_scalar // C(Rows,Cols) += x ( diff --git a/GraphBLAS/Source/GB_subassign_symbolic.c b/GraphBLAS/Source/assign/GB_subassign_symbolic.c similarity index 98% rename from GraphBLAS/Source/GB_subassign_symbolic.c rename to GraphBLAS/Source/assign/GB_subassign_symbolic.c index e013bdaa57..78945e0d5d 100644 --- a/GraphBLAS/Source/GB_subassign_symbolic.c +++ b/GraphBLAS/Source/assign/GB_subassign_symbolic.c @@ -7,9 +7,9 @@ //------------------------------------------------------------------------------ -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" -#include "GB_subref.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" +#include "extract/GB_subref.h" #undef GB_FREE_ALL #define GB_FREE_ALL GB_phybix_free (S) ; diff --git a/GraphBLAS/Source/GB_subassign_zombie.c b/GraphBLAS/Source/assign/GB_subassign_zombie.c similarity index 96% rename from GraphBLAS/Source/GB_subassign_zombie.c rename to GraphBLAS/Source/assign/GB_subassign_zombie.c index 186ccf6323..24d516da48 100644 --- a/GraphBLAS/Source/GB_subassign_zombie.c +++ b/GraphBLAS/Source/assign/GB_subassign_zombie.c @@ -22,12 +22,12 @@ // C->iso is not affected. -#include "GB_subassign_methods.h" -#include "GB_assign_shared_definitions.h" +#include "assign/GB_subassign_methods.h" +#include "assign/include/GB_assign_shared_definitions.h" #undef GB_FREE_ALL #define GB_FREE_ALL GB_Matrix_free (&S) ; -#include "GB_static_header.h" +#include "matrix/GB_static_header.h" GrB_Info GB_subassign_zombie ( diff --git a/GraphBLAS/Source/GB_subassigner.c b/GraphBLAS/Source/assign/GB_subassigner.c similarity index 97% rename from GraphBLAS/Source/GB_subassigner.c rename to GraphBLAS/Source/assign/GB_subassigner.c index 45038d1d8d..4ca37c3cb0 100644 --- a/GraphBLAS/Source/GB_subassigner.c +++ b/GraphBLAS/Source/assign/GB_subassigner.c @@ -55,10 +55,10 @@ // C->x and C->iso have already been computed if C is iso on output, by // GB_assign_prep, so if C->iso is true, there is no numeric work to do. -#include "GB_subassign.h" -#include "GB_subassign_methods.h" -#include "GB_subassign_dense.h" -#include "GB_bitmap_assign.h" +#include "assign/GB_subassign.h" +#include "assign/GB_subassign_methods.h" +#include "assign/GB_subassign_dense.h" +#include "assign/GB_bitmap_assign.h" #undef GB_FREE_ALL #define GB_FREE_ALL GB_phybix_free (C) ; @@ -438,7 +438,7 @@ GrB_Info GB_subassigner // C(I,J)<#M> = A or accum (C (I,J), A) break ; //---------------------------------------------------------------------- - // assignment using S_Extraction method, no mask M + // assignment using S_Extraction method (except method 26), no mask M //---------------------------------------------------------------------- // ===================== ============== @@ -446,6 +446,7 @@ GrB_Info GB_subassigner // C(I,J)<#M> = A or accum (C (I,J), A) // ===================== ============== // - - - - - S 01: C(I,J) = x, with S // - - - - A S 02: C(I,J) = A, with S + // - - - - A - 26: C(:,j1:j2) = A, append cols, no S // - - - + - S 03: C(I,J) += x, with S // - - - + A S 04: C(I,J) += A, with S @@ -471,6 +472,17 @@ GrB_Info GB_subassigner // C(I,J)<#M> = A or accum (C (I,J), A) } break ; + case GB_SUBASSIGN_METHOD_26 : + { + // Method 26: C(:,j1:j2) = A ; append column(s), no S. + GBURBLE ("Method 26: C(:,j1:j2) = Z ; append") ; + ASSERT (Ikind == GB_ALL) ; + ASSERT (Jkind == GB_RANGE) ; + ASSERT (nJ >= 1) ; + GB_OK (GB_subassign_26 (C, Jcolon, A, Werk)) ; + } + break ; + case GB_SUBASSIGN_METHOD_02 : { // Method 02: C(I,J) = A ; using S diff --git a/GraphBLAS/Source/GB_subassigner_method.c b/GraphBLAS/Source/assign/GB_subassigner_method.c similarity index 88% rename from GraphBLAS/Source/GB_subassigner_method.c rename to GraphBLAS/Source/assign/GB_subassigner_method.c index f042752e07..ba2b4a0d3c 100644 --- a/GraphBLAS/Source/GB_subassigner_method.c +++ b/GraphBLAS/Source/assign/GB_subassigner_method.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_subassign.h" +#include "assign/GB_subassign.h" int GB_subassigner_method // return method to use in GB_subassigner ( @@ -22,8 +22,10 @@ int GB_subassigner_method // return method to use in GB_subassigner const bool Mask_struct, // if true, use the only structure of M const GrB_BinaryOp accum, // optional accum for Z=accum(C(I,J),A) const GrB_Matrix A, // input matrix (NULL for scalar expansion) - const int Ikind, - const int Jkind, + const int Ikind, // I: just the kind + const int Jkind, // J: kind, length, and colon + const int64_t nJ, + const int64_t Jcolon [3], const bool scalar_expansion, // if true, expand scalar to A const void *scalar, const GrB_Type scalar_type // type of the scalar, or NULL @@ -48,6 +50,7 @@ int GB_subassigner_method // return method to use in GB_subassigner bool A_is_bitmap = GB_IS_BITMAP (A) ; bool A_is_full = GB_IS_FULL (A) ; + bool A_is_sparse = GB_IS_SPARSE (A) ; int64_t anz = GB_nnz (A) ; // these properties of C are not affected by wait(C): @@ -108,91 +111,20 @@ int GB_subassigner_method // return method to use in GB_subassigner // C_Mask_matrix: C(I,J) = A or += A bool C_Mask_matrix = (!scalar_expansion && simple_mask) ; - bool S_Extraction ; - bool method_06d = false ; - bool method_25 = false ; - - if (C_splat_scalar) - { - // Method 21: C(:,:) = x where x is a scalar; C becomes full - S_Extraction = false ; - } - else if (C_splat_matrix) - { - // Method 24: C(:,:) = A - S_Extraction = false ; - } - else if (C_dense_update) - { - // Methods 22 and 23: C(:,:) += x or A where C is full - S_Extraction = false ; - } - else if (C_Mask_scalar) - { - // Method 05*, or 07: C(I,J) = or += scalar; C_replace false - S_Extraction = false ; - } - else if (C_Mask_matrix) - { - // C(I,J) = A or += A - if (accum != NULL) - { - // Method 08n: C(I,J) += A, no S. Cannot use M or A as bitmap. - // Method 08s: C(I,J) += A, with S. Can use M or A as bitmap. - // if S_Extraction is true, Method 08s is used (with S). - // Method 08n is not used if any matrix is bitmap. - // If C is bitmap, GB_bitmap_assign_M_accum is used instead. - S_Extraction = M_is_bitmap || A_is_bitmap ; - } - else - { - // C(I,J) = A ; use 06s (with S) or 06n (without S) - // method 06s (with S) is faster when nnz (A) < nnz (M). - if ((C_is_full || C_is_bitmap) && whole_C_matrix && M_is_A) - { - // Method 06d: C = A - method_06d = true ; - S_Extraction = false ; - } - else if (C_is_empty && whole_C_matrix && Mask_struct && - (A_is_full || A_is_bitmap)) - { - // Method 25: C = A, where M is structural, A is - // full, and C starts out empty. The pattern of C will be the - // same as M, and the subassign method is extremely simple. - method_25 = true ; - S_Extraction = false ; - } - else - { - // Method 06n (no S) or Method 06s (with S): - // Method 06n is not used if M or A are bitmap. If M and A are - // aliased and Method 06d is not used, then 06s is used instead - // of 06n since M==A implies nnz(A) == nnz(M). - S_Extraction = anz < GB_nnz (M) || M_is_bitmap || A_is_bitmap ; - } - } - } - else - { - // all other methods require S - S_Extraction = true ; - } - //========================================================================== // submatrix assignment C(I,J) = accum (C(I,J),A): meta-algorithm //========================================================================== - // There are up to 128 combinations of options, but not all must be - // implemented, because they are either identical to another method - // (C_replace is effectively false if M=NULL and Mask_comp=false), or they - // are not used (the last option, whether or not S is constructed, is - // determined here; it is not a user input). The first 5 options are - // determined by the input. The table below has been pruned to remove + // There are many combinations of options, but not all must be implemented, + // because they are either identical to another method (C_replace is + // effectively false if M=NULL and Mask_comp=false), or they are not used. + // The last option, whether or not S is constructed, is determined here; it + // is not a user input. The table below has been pruned to remove // combinations that are not used, or equivalent to other entries in the - // table. Only 22 unique combinations of the 128 combinations are needed, - // with additional special cases when C(:,:) is full. + // table. + // Primary options: + // // M present or NULL // Mask_comp true or false // Mask_struct structural or valued mask @@ -201,8 +133,11 @@ int GB_subassigner_method // return method to use in GB_subassigner // A scalar (x) or matrix (A) // S constructed or not + // Other options handle special cases such as aliasing of input matrices + // (methods 06d and 05f), or other properties (methods 21 to 26). + // C(I,J)<(M,comp,repl)> ( = , += ) (A, scalar), (with or without S); - // I and J can be anything for any of these methods (":", colon, or list). + // I and J can be anything for most of these methods (":", colon, or list). // See the "No work to do..." comment above: // If M is not present, Mask_comp true, C_replace false: no work to do. @@ -220,6 +155,7 @@ int GB_subassigner_method // return method to use in GB_subassigner // - - - - - S 01: C(I,J) = x, with S // - - - - A S 02: C(I,J) = A, with S + // - - - - A - 26: C(:,j1:j2) = A, append cols, no S // - - - + - S 03: C(I,J) += x, with S // - - - + A S 04: C(I,J) += A, with S // - - r uses methods 01, 02, 03, 04 @@ -272,6 +208,7 @@ int GB_subassigner_method // return method to use in GB_subassigner // For the single case C(I,J)=A, two methods can be used: 06n and 06s. int subassign_method = -1 ; + bool S_Extraction ; if (C_splat_scalar) { @@ -290,10 +227,10 @@ int GB_subassigner_method // return method to use in GB_subassigner ASSERT (M == NULL) ; // no mask present ASSERT (accum == NULL) ; // accum is not present ASSERT (!C_replace) ; // C_replace is effectively false - ASSERT (!S_Extraction) ; // S is not used ASSERT (scalar_expansion) ; // x is a scalar // Method 21: C = x where x is a scalar; C becomes full + S_Extraction = false ; // S is not used subassign_method = GB_SUBASSIGN_METHOD_21 ; } @@ -314,10 +251,10 @@ int GB_subassigner_method // return method to use in GB_subassigner ASSERT (M == NULL) ; // no mask present ASSERT (accum == NULL) ; // accum is not present ASSERT (!C_replace) ; // C_replace is effectively false - ASSERT (!S_Extraction) ; // S is not used ASSERT (!scalar_expansion) ; // A is a matrix // Method 24: C = A + S_Extraction = false ; // S is not used subassign_method = GB_SUBASSIGN_METHOD_24 ; } @@ -339,8 +276,8 @@ int GB_subassigner_method // return method to use in GB_subassigner ASSERT (M == NULL) ; // no mask present ASSERT (accum != NULL) ; // accum is present ASSERT (!C_replace) ; // C_replace is false - ASSERT (!S_Extraction) ; // S is not used + S_Extraction = false ; // S is not used if (scalar_expansion) { // Method 22: C(:,:) += x where C is full @@ -372,8 +309,8 @@ int GB_subassigner_method // return method to use in GB_subassigner ASSERT (scalar_expansion) ; // A is a scalar ASSERT (M != NULL && !Mask_comp) ; // mask M present, not compl. ASSERT (!C_replace) ; // C_replace is false - ASSERT (!S_Extraction) ; // S is not used + S_Extraction = false ; // S is not used if (accum == NULL) { if (C_is_M && whole_C_matrix && Mask_struct) @@ -428,6 +365,12 @@ int GB_subassigner_method // return method to use in GB_subassigner if (accum != NULL) { + // Method 08n: C(I,J) += A, no S. Cannot use M or A as bitmap. + // Method 08s: C(I,J) += A, with S. Can use M or A as bitmap. + // if S_Extraction is true, Method 08s is used (with S). + // Method 08n is not used if any matrix is bitmap. + // If C is bitmap, GB_bitmap_assign_M_accum is used instead. + S_Extraction = M_is_bitmap || A_is_bitmap ; if (S_Extraction) { // Method 08s: C(I,J) += A ; with S @@ -440,28 +383,48 @@ int GB_subassigner_method // return method to use in GB_subassigner subassign_method = GB_SUBASSIGN_METHOD_08n ; } } - else if (method_06d) - { - // Method 06d: C(:,:) = A ; no S, C full - subassign_method = GB_SUBASSIGN_METHOD_06d ; - ASSERT ((C_is_full || C_is_bitmap) && whole_C_matrix && M_is_A) ; - } - else if (method_25) - { - // Method 25: C = A, C empty; A is full or bitmap - subassign_method = GB_SUBASSIGN_METHOD_25 ; - } - else if (!S_Extraction) - { - // Method 06n: C(I,J) = A ; no S - // If M or A are bitmap, this method is not used; - // 06s is used instead. - subassign_method = GB_SUBASSIGN_METHOD_06n ; - } else - { - // Method 06s: C(I,J) = A ; using S - subassign_method = GB_SUBASSIGN_METHOD_06s ; + { + // Methods 06d, 25, 06s, or 06n: no accumulator + if ((C_is_full || C_is_bitmap) && whole_C_matrix && M_is_A) + { + // Method 06d: C(:,:) = A ; no S, C full or bitmap + S_Extraction = false ; + subassign_method = GB_SUBASSIGN_METHOD_06d ; + ASSERT ((C_is_full || C_is_bitmap) && whole_C_matrix && M_is_A); + } + else if (C_is_empty && whole_C_matrix && Mask_struct && + (A_is_full || A_is_bitmap)) + { + // Method 25: C = A, where M is structural, A is full or + // bitmap, and C starts out empty. The pattern of C will be + // the same as M, and the subassign method is extremely simple. + // S is not used. + S_Extraction = false ; + subassign_method = GB_SUBASSIGN_METHOD_25 ; + } + else + { + // C(I,J) = A ; use 06s (with S) or 06n (without S) + // method 06s (with S) is faster when nnz (A) < nnz (M). + // Method 06n (no S) or Method 06s (with S): + // Method 06n is not used if M or A are bitmap. If M and A are + // aliased and Method 06d is not used, then 06s is used instead + // of 06n since M==A implies nnz(A) == nnz(M). + S_Extraction = anz < GB_nnz (M) || M_is_bitmap || A_is_bitmap ; + if (!S_Extraction) + { + // Method 06n: C(I,J) = A ; no S + // If M or A are bitmap, this method is not used; + // 06s is used instead. + subassign_method = GB_SUBASSIGN_METHOD_06n ; + } + else + { + // Method 06s: C(I,J) = A ; using S + subassign_method = GB_SUBASSIGN_METHOD_06s ; + } + } } } @@ -469,7 +432,7 @@ int GB_subassigner_method // return method to use in GB_subassigner { //---------------------------------------------------------------------- - // assignment using S_Extraction method, no mask M + // assignment primarily using S_Extraction method, no mask M //---------------------------------------------------------------------- // ===================== ============== @@ -477,15 +440,16 @@ int GB_subassigner_method // return method to use in GB_subassigner // ===================== ============== // - - - - - S 01: C(I,J) = x, with S // - - - - A S 02: C(I,J) = A, with S + // - - - - A - 26: C(:,j1:j2) = A, append cols, no S // - - - + - S 03: C(I,J) += x, with S // - - - + A S 04: C(I,J) += A, with S ASSERT (!Mask_comp) ; ASSERT (!C_replace) ; - ASSERT (S_Extraction) ; // S is used if (scalar_expansion) { + S_Extraction = true ; // S is used if (accum == NULL) { // Method 01: C(I,J) = scalar ; using S @@ -500,13 +464,34 @@ int GB_subassigner_method // return method to use in GB_subassigner else { if (accum == NULL) - { - // Method 02: C(I,J) = A ; using S - subassign_method = GB_SUBASSIGN_METHOD_02 ; + { + if (Ikind == GB_ALL && GB_IS_HYPERSPARSE (C) && GB_IS_SPARSE (A) + && (Jkind == GB_RANGE) && (nJ >= 1) + && (Jcolon [0] == + ((C->nvec == 0) ? 0 : (C->h [C->nvec-1] + 1))) + && (C->type == A->type) + && !(A->iso) // FUTURE: allow A to be iso + && !(C->iso)) // FUTURE: allow C to be iso + { + // Method 26: C(:,j1:j2) = A ; append columns. No S. + // C must be hypersparse, and the last column currently in + // the hyperlist of C must be j1-1. A must be sparse. No + // typecasting. Method 26 is a special case of Method 02. + // FUTURE: extend to iso cases + S_Extraction = false ; // S not used + subassign_method = GB_SUBASSIGN_METHOD_26 ; + } + else + { + // Method 02: C(I,J) = A ; using S + S_Extraction = true ; // S is used + subassign_method = GB_SUBASSIGN_METHOD_02 ; + } } else { // Method 04: C(I,J) += A ; using S + S_Extraction = true ; // S is used subassign_method = GB_SUBASSIGN_METHOD_04 ; } } @@ -531,8 +516,8 @@ int GB_subassigner_method // return method to use in GB_subassigner ASSERT (!C_Mask_scalar) ; ASSERT (C_replace || Mask_comp) ; - ASSERT (S_Extraction) ; // S is used + S_Extraction = true ; // S is used if (accum == NULL) { if (Mask_comp && C_replace) @@ -591,8 +576,8 @@ int GB_subassigner_method // return method to use in GB_subassigner // M c r + A S 20: C(I,J) += A, with S ASSERT (Mask_comp || C_replace) ; - ASSERT (S_Extraction) ; // S is used + S_Extraction = true ; // S is used if (accum == NULL) { if (Mask_comp && C_replace) @@ -647,7 +632,8 @@ int GB_subassigner_method // return method to use in GB_subassigner bool A_iso = scalar_expansion // all scalars are iso || (A != NULL && A->iso) // or A is iso || (anz == 1 && !A_is_bitmap) ; // or A is effectively iso - if (A_iso) + if (A_iso && + subassign_method != GB_SUBASSIGN_METHOD_26 /* FUTURE */) { //------------------------------------------------------------------ @@ -744,6 +730,8 @@ int GB_subassigner_method // return method to use in GB_subassigner //-------------------------------------------------------------- case GB_SUBASSIGN_METHOD_02 : // C(I,J) = A +// FUTURE: handle iso case for method 26 +// case GB_SUBASSIGN_METHOD_26: // C(:,j) = A, append column case GB_SUBASSIGN_METHOD_06s : // C(I,J) = A ; with S case GB_SUBASSIGN_METHOD_14 : // C(I,J) = A case GB_SUBASSIGN_METHOD_10 : // C(I,J) = A @@ -900,6 +888,12 @@ int GB_subassigner_method // return method to use in GB_subassigner ASSERT (!A_is_bitmap) ; break ; + case GB_SUBASSIGN_METHOD_26 : // C(:,j) = A, append column, no S + // Method 26, C is hypersparse, A is sparse: no bitmap method used + ASSERT (!C_is_bitmap) ; + ASSERT (!A_is_bitmap) ; + break ; + // case GB_SUBASSIGN_METHOD_BITMAP: default :; subassign_method = GB_SUBASSIGN_METHOD_BITMAP ; diff --git a/GraphBLAS/Source/GrB_Col_assign.c b/GraphBLAS/Source/assign/GrB_Col_assign.c similarity index 96% rename from GraphBLAS/Source/GrB_Col_assign.c rename to GraphBLAS/Source/assign/GrB_Col_assign.c index 445d89a3e2..a01247ca1c 100644 --- a/GraphBLAS/Source/GrB_Col_assign.c +++ b/GraphBLAS/Source/assign/GrB_Col_assign.c @@ -9,9 +9,9 @@ // Compare with GxB_Col_subassign, which uses the M and C_replace differently -#include "GB_assign.h" -#include "GB_bitmap_assign.h" -#include "GB_get_mask.h" +#include "assign/GB_assign.h" +#include "assign/GB_bitmap_assign.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_Col_assign // C(Rows,col) = accum (C(Rows,col),u) ( diff --git a/GraphBLAS/Source/GrB_Matrix_assign.c b/GraphBLAS/Source/assign/GrB_Matrix_assign.c similarity index 96% rename from GraphBLAS/Source/GrB_Matrix_assign.c rename to GraphBLAS/Source/assign/GrB_Matrix_assign.c index 3b6c4b6aa4..7f5de36b0e 100644 --- a/GraphBLAS/Source/GrB_Matrix_assign.c +++ b/GraphBLAS/Source/assign/GrB_Matrix_assign.c @@ -7,9 +7,9 @@ //------------------------------------------------------------------------------ -#include "GB_assign.h" -#include "GB_bitmap_assign.h" -#include "GB_get_mask.h" +#include "assign/GB_assign.h" +#include "assign/GB_bitmap_assign.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_Matrix_assign // C(Rows,Cols) += A or A' ( diff --git a/GraphBLAS/Source/GrB_Matrix_assign_scalar.c b/GraphBLAS/Source/assign/GrB_Matrix_assign_scalar.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_assign_scalar.c rename to GraphBLAS/Source/assign/GrB_Matrix_assign_scalar.c index 7d7924ddd7..003e75ba27 100644 --- a/GraphBLAS/Source/GrB_Matrix_assign_scalar.c +++ b/GraphBLAS/Source/assign/GrB_Matrix_assign_scalar.c @@ -20,9 +20,9 @@ // The actual work is done in GB_assign_scalar.c. #define GB_FREE_ALL ; -#include "GB_assign.h" -#include "GB_ij.h" -#include "GB_get_mask.h" +#include "assign/GB_assign.h" +#include "ij/GB_ij.h" +#include "mask/GB_get_mask.h" #define GB_ASSIGN_SCALAR(prefix,type,T,ampersand) \ GrB_Info GB_EVAL3 (prefix, _Matrix_assign_, T) /* C(Rows,Cols) += x */ \ @@ -78,7 +78,7 @@ GB_ASSIGN_SCALAR (GrB, void * , UDT , ) #undef GB_FREE_ALL #define GB_FREE_ALL GB_Matrix_free (&S) ; -#include "GB_static_header.h" +#include "matrix/GB_static_header.h" GrB_Info GrB_Matrix_assign_Scalar // C(I,J) = accum (C(I,J),s) ( diff --git a/GraphBLAS/Source/GrB_Row_assign.c b/GraphBLAS/Source/assign/GrB_Row_assign.c similarity index 96% rename from GraphBLAS/Source/GrB_Row_assign.c rename to GraphBLAS/Source/assign/GrB_Row_assign.c index 2d087c3f19..bb41480f4c 100644 --- a/GraphBLAS/Source/GrB_Row_assign.c +++ b/GraphBLAS/Source/assign/GrB_Row_assign.c @@ -9,9 +9,9 @@ // Compare with GxB_Row_subassign, which uses M and C_replace differently -#include "GB_assign.h" -#include "GB_bitmap_assign.h" -#include "GB_get_mask.h" +#include "assign/GB_assign.h" +#include "assign/GB_bitmap_assign.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_Row_assign // C(row,Cols) += u' ( diff --git a/GraphBLAS/Source/GrB_Vector_assign.c b/GraphBLAS/Source/assign/GrB_Vector_assign.c similarity index 96% rename from GraphBLAS/Source/GrB_Vector_assign.c rename to GraphBLAS/Source/assign/GrB_Vector_assign.c index 31d96326d1..eee523b360 100644 --- a/GraphBLAS/Source/GrB_Vector_assign.c +++ b/GraphBLAS/Source/assign/GrB_Vector_assign.c @@ -9,9 +9,9 @@ // Compare with GxB_Vector_subassign, which uses M and C_replace differently -#include "GB_assign.h" -#include "GB_bitmap_assign.h" -#include "GB_get_mask.h" +#include "assign/GB_assign.h" +#include "assign/GB_bitmap_assign.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_Vector_assign // w(Rows) = accum (w(Rows),u) ( diff --git a/GraphBLAS/Source/GrB_Vector_assign_scalar.c b/GraphBLAS/Source/assign/GrB_Vector_assign_scalar.c similarity index 98% rename from GraphBLAS/Source/GrB_Vector_assign_scalar.c rename to GraphBLAS/Source/assign/GrB_Vector_assign_scalar.c index 14eef2d4cb..33ff589375 100644 --- a/GraphBLAS/Source/GrB_Vector_assign_scalar.c +++ b/GraphBLAS/Source/assign/GrB_Vector_assign_scalar.c @@ -12,9 +12,9 @@ // with each entry in u equal to x. #define GB_FREE_ALL ; -#include "GB_assign.h" -#include "GB_ij.h" -#include "GB_get_mask.h" +#include "assign/GB_assign.h" +#include "ij/GB_ij.h" +#include "mask/GB_get_mask.h" #define GB_ASSIGN_SCALAR(prefix,type,T,ampersand) \ GrB_Info GB_EVAL3 (prefix, _Vector_assign_, T) /* w(Rows)=accum(w(Rows),x)*/\ @@ -70,7 +70,7 @@ GB_ASSIGN_SCALAR (GrB, void * , UDT , ) #undef GB_FREE_ALL #define GB_FREE_ALL GB_Matrix_free (&S) ; -#include "GB_static_header.h" +#include "matrix/GB_static_header.h" GrB_Info GrB_Vector_assign_Scalar // w(I) = accum (w(I),s) ( diff --git a/GraphBLAS/Source/GxB_Col_subassign.c b/GraphBLAS/Source/assign/GxB_Col_subassign.c similarity index 97% rename from GraphBLAS/Source/GxB_Col_subassign.c rename to GraphBLAS/Source/assign/GxB_Col_subassign.c index d4f687c86f..71e893b2c8 100644 --- a/GraphBLAS/Source/GxB_Col_subassign.c +++ b/GraphBLAS/Source/assign/GxB_Col_subassign.c @@ -9,8 +9,8 @@ // Compare with GrB_Col_assign, which uses M and C_replace differently -#include "GB_subassign.h" -#include "GB_get_mask.h" +#include "assign/GB_subassign.h" +#include "mask/GB_get_mask.h" GrB_Info GxB_Col_subassign // C(Rows,col) = accum (C(Rows,col),u) ( diff --git a/GraphBLAS/Source/GxB_Matrix_subassign.c b/GraphBLAS/Source/assign/GxB_Matrix_subassign.c similarity index 97% rename from GraphBLAS/Source/GxB_Matrix_subassign.c rename to GraphBLAS/Source/assign/GxB_Matrix_subassign.c index fd9d9b33b3..dee56b231d 100644 --- a/GraphBLAS/Source/GxB_Matrix_subassign.c +++ b/GraphBLAS/Source/assign/GxB_Matrix_subassign.c @@ -9,8 +9,8 @@ // Compare with GrB_Matrix_assign, which uses M and C_replace differently -#include "GB_subassign.h" -#include "GB_get_mask.h" +#include "assign/GB_subassign.h" +#include "mask/GB_get_mask.h" GrB_Info GxB_Matrix_subassign // C(Rows,Cols) += A or A' ( diff --git a/GraphBLAS/Source/GxB_Matrix_subassign_scalar.c b/GraphBLAS/Source/assign/GxB_Matrix_subassign_scalar.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_subassign_scalar.c rename to GraphBLAS/Source/assign/GxB_Matrix_subassign_scalar.c index 3dfea76704..79edc1468a 100644 --- a/GraphBLAS/Source/GxB_Matrix_subassign_scalar.c +++ b/GraphBLAS/Source/assign/GxB_Matrix_subassign_scalar.c @@ -18,9 +18,9 @@ // which uses M and C_Replace differently. #define GB_FREE_ALL ; -#include "GB_subassign.h" -#include "GB_ij.h" -#include "GB_get_mask.h" +#include "assign/GB_subassign.h" +#include "ij/GB_ij.h" +#include "mask/GB_get_mask.h" #define GB_ASSIGN_SCALAR(type,T,ampersand) \ GrB_Info GB_EVAL2 (GXB (Matrix_subassign_), T) /* C(Rows,Cols) += x */ \ @@ -76,7 +76,7 @@ GB_ASSIGN_SCALAR (void * , UDT , ) #undef GB_FREE_ALL #define GB_FREE_ALL GB_Matrix_free (&S) ; -#include "GB_static_header.h" +#include "matrix/GB_static_header.h" GrB_Info GxB_Matrix_subassign_Scalar // C(I,J) = accum (C(I,J),s) ( diff --git a/GraphBLAS/Source/GxB_Row_subassign.c b/GraphBLAS/Source/assign/GxB_Row_subassign.c similarity index 97% rename from GraphBLAS/Source/GxB_Row_subassign.c rename to GraphBLAS/Source/assign/GxB_Row_subassign.c index 381b304423..1f62f5c194 100644 --- a/GraphBLAS/Source/GxB_Row_subassign.c +++ b/GraphBLAS/Source/assign/GxB_Row_subassign.c @@ -9,8 +9,8 @@ // Compare with GrB_Row_assign, which uses the M and C_replace differently -#include "GB_subassign.h" -#include "GB_get_mask.h" +#include "assign/GB_subassign.h" +#include "mask/GB_get_mask.h" GrB_Info GxB_Row_subassign // C(row,Cols) += u' ( diff --git a/GraphBLAS/Source/GxB_Vector_subassign.c b/GraphBLAS/Source/assign/GxB_Vector_subassign.c similarity index 97% rename from GraphBLAS/Source/GxB_Vector_subassign.c rename to GraphBLAS/Source/assign/GxB_Vector_subassign.c index 1d12262ed8..a85f203c07 100644 --- a/GraphBLAS/Source/GxB_Vector_subassign.c +++ b/GraphBLAS/Source/assign/GxB_Vector_subassign.c @@ -9,8 +9,8 @@ // Compare with GrB_Vector_assign, which uses M and C_replace differently -#include "GB_subassign.h" -#include "GB_get_mask.h" +#include "assign/GB_subassign.h" +#include "mask/GB_get_mask.h" GrB_Info GxB_Vector_subassign // w(Rows) = accum (w(Rows),u) ( diff --git a/GraphBLAS/Source/GxB_Vector_subassign_scalar.c b/GraphBLAS/Source/assign/GxB_Vector_subassign_scalar.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_subassign_scalar.c rename to GraphBLAS/Source/assign/GxB_Vector_subassign_scalar.c index 1e22ed2144..f93d3d0acd 100644 --- a/GraphBLAS/Source/GxB_Vector_subassign_scalar.c +++ b/GraphBLAS/Source/assign/GxB_Vector_subassign_scalar.c @@ -14,9 +14,9 @@ // The actual work is done in GB_subassign_scalar.c. #define GB_FREE_ALL ; -#include "GB_subassign.h" -#include "GB_ij.h" -#include "GB_get_mask.h" +#include "assign/GB_subassign.h" +#include "ij/GB_ij.h" +#include "mask/GB_get_mask.h" #define GB_ASSIGN_SCALAR(type,T,ampersand) \ GrB_Info GB_EVAL2 (GXB (Vector_subassign_), T) /* w(I) = accum (w(I),x) */ \ @@ -73,7 +73,7 @@ GB_ASSIGN_SCALAR (void * , UDT , ) #undef GB_FREE_ALL #define GB_FREE_ALL GB_Matrix_free (&S) ; -#include "GB_static_header.h" +#include "matrix/GB_static_header.h" GrB_Info GxB_Vector_subassign_Scalar // w(I) = accum (w(I),s) ( diff --git a/GraphBLAS/Source/dodiff b/GraphBLAS/Source/assign/dodiff similarity index 100% rename from GraphBLAS/Source/dodiff rename to GraphBLAS/Source/assign/dodiff diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_A_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_A_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_A_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_A_template.c diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_A_whole_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_A_whole_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_A_whole_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_A_whole_template.c diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_C_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_C_template.c similarity index 96% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_C_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_C_template.c index 263d67223e..264f761457 100644 --- a/GraphBLAS/Source/Factories/GB_bitmap_assign_C_template.c +++ b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_C_template.c @@ -86,7 +86,7 @@ case GB_ASSIGN : { // iterate over all of C(:,:). - #include "GB_bitmap_assign_C_whole_template.c" + #include "assign/factory/GB_bitmap_assign_C_whole_template.c" } break ; #endif @@ -105,7 +105,7 @@ GB_GET_MIJ (mij, pA) ; /* mij = Mask (pA) */ \ GB_CIJ_WORK (pC) ; /* operate on C(iC,jC) */ \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } break ; #endif diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_C_whole_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_C_whole_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_C_whole_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_C_whole_template.c diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_IxJ_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_IxJ_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_IxJ_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_IxJ_template.c diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_M_all_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_all_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_M_all_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_all_template.c diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_M_col_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_col_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_M_col_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_col_template.c diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_M_row_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_row_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_M_row_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_row_template.c diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_M_sub_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_sub_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_M_sub_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_sub_template.c diff --git a/GraphBLAS/Source/Factories/GB_bitmap_assign_M_template.c b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_template.c similarity index 86% rename from GraphBLAS/Source/Factories/GB_bitmap_assign_M_template.c rename to GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_template.c index 0fe57f2378..a1a63e19ad 100644 --- a/GraphBLAS/Source/Factories/GB_bitmap_assign_M_template.c +++ b/GraphBLAS/Source/assign/factory/GB_bitmap_assign_M_template.c @@ -27,20 +27,20 @@ switch (assign_kind) { case GB_ROW_ASSIGN : // row assignment: C(iC,J), where M is a row vector - #include "GB_bitmap_assign_M_row_template.c" + #include "assign/factory/GB_bitmap_assign_M_row_template.c" break ; case GB_COL_ASSIGN : // column assignment: C(I,jC), where M is a column vector - #include "GB_bitmap_assign_M_col_template.c" + #include "assign/factory/GB_bitmap_assign_M_col_template.c" break ; case GB_ASSIGN : // GrB_assign: C(I,J), where M is the same size as C - #include "GB_bitmap_assign_M_all_template.c" + #include "assign/factory/GB_bitmap_assign_M_all_template.c" break ; #ifndef GB_NO_SUBASSIGN_CASE case GB_SUBASSIGN : // GxB_subassign: C(I,J), where M is the same size as C(I,J) and A - #include "GB_bitmap_assign_M_sub_template.c" + #include "assign/factory/GB_bitmap_assign_M_sub_template.c" break ; #endif default: ; diff --git a/GraphBLAS/Source/Shared/GB_assign_shared_definitions.h b/GraphBLAS/Source/assign/include/GB_assign_shared_definitions.h similarity index 99% rename from GraphBLAS/Source/Shared/GB_assign_shared_definitions.h rename to GraphBLAS/Source/assign/include/GB_assign_shared_definitions.h index ae5ff10df6..94e8e5670c 100644 --- a/GraphBLAS/Source/Shared/GB_assign_shared_definitions.h +++ b/GraphBLAS/Source/assign/include/GB_assign_shared_definitions.h @@ -9,7 +9,7 @@ // macros for the construction of the GB_subassign kernels -#include "GB_kernel_shared_definitions.h" +#include "include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // definitions redefined as needed diff --git a/GraphBLAS/Source/Template/GB_bitmap_scatter.h b/GraphBLAS/Source/assign/include/GB_bitmap_scatter.h similarity index 100% rename from GraphBLAS/Source/Template/GB_bitmap_scatter.h rename to GraphBLAS/Source/assign/include/GB_bitmap_scatter.h diff --git a/GraphBLAS/Source/Shared/GB_index.h b/GraphBLAS/Source/assign/include/GB_index.h similarity index 100% rename from GraphBLAS/Source/Shared/GB_index.h rename to GraphBLAS/Source/assign/include/GB_index.h diff --git a/GraphBLAS/Source/Template/GB_subassign_05d_template.c b/GraphBLAS/Source/assign/template/GB_subassign_05d_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_subassign_05d_template.c rename to GraphBLAS/Source/assign/template/GB_subassign_05d_template.c diff --git a/GraphBLAS/Source/Template/GB_subassign_06d_template.c b/GraphBLAS/Source/assign/template/GB_subassign_06d_template.c similarity index 99% rename from GraphBLAS/Source/Template/GB_subassign_06d_template.c rename to GraphBLAS/Source/assign/template/GB_subassign_06d_template.c index 940829c08c..db5b4cb6b5 100644 --- a/GraphBLAS/Source/Template/GB_subassign_06d_template.c +++ b/GraphBLAS/Source/assign/template/GB_subassign_06d_template.c @@ -102,7 +102,7 @@ int64_t cnvals = C->nvals ; // for C bitmap - // future:: divide this Templates into sub-Templates (Mask_struct, etc) + // future:: divide this template into sub-template (Mask_struct, etc) if (Mask_struct) { diff --git a/GraphBLAS/Source/Template/GB_subassign_22_template.c b/GraphBLAS/Source/assign/template/GB_subassign_22_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_subassign_22_template.c rename to GraphBLAS/Source/assign/template/GB_subassign_22_template.c diff --git a/GraphBLAS/Source/Template/GB_subassign_23_template.c b/GraphBLAS/Source/assign/template/GB_subassign_23_template.c similarity index 99% rename from GraphBLAS/Source/Template/GB_subassign_23_template.c rename to GraphBLAS/Source/assign/template/GB_subassign_23_template.c index 6205b53408..6c1eabbc92 100644 --- a/GraphBLAS/Source/Template/GB_subassign_23_template.c +++ b/GraphBLAS/Source/assign/template/GB_subassign_23_template.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_unused.h" +#include "include/GB_unused.h" #undef GB_FREE_ALL #define GB_FREE_ALL \ diff --git a/GraphBLAS/Source/Template/GB_subassign_25_template.c b/GraphBLAS/Source/assign/template/GB_subassign_25_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_subassign_25_template.c rename to GraphBLAS/Source/assign/template/GB_subassign_25_template.c diff --git a/GraphBLAS/Source/GB_binop.h b/GraphBLAS/Source/binaryop/GB_binop.h similarity index 100% rename from GraphBLAS/Source/GB_binop.h rename to GraphBLAS/Source/binaryop/GB_binop.h diff --git a/GraphBLAS/Source/GB_binop_builtin.c b/GraphBLAS/Source/binaryop/GB_binop_builtin.c similarity index 98% rename from GraphBLAS/Source/GB_binop_builtin.c rename to GraphBLAS/Source/binaryop/GB_binop_builtin.c index 0980c6c265..07526d604e 100644 --- a/GraphBLAS/Source/GB_binop_builtin.c +++ b/GraphBLAS/Source/binaryop/GB_binop_builtin.c @@ -18,8 +18,8 @@ // operator, as needed. #include "GB.h" -#include "GB_binop.h" -#include "GB_unused.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" bool GB_binop_builtin // true if binary operator is builtin ( diff --git a/GraphBLAS/Source/GB_binop_new.c b/GraphBLAS/Source/binaryop/GB_binop_new.c similarity index 98% rename from GraphBLAS/Source/GB_binop_new.c rename to GraphBLAS/Source/binaryop/GB_binop_new.c index 3860ebb6b4..d970ac9b7f 100644 --- a/GraphBLAS/Source/GB_binop_new.c +++ b/GraphBLAS/Source/binaryop/GB_binop_new.c @@ -15,7 +15,7 @@ // uninitialized. #include "GB.h" -#include "GB_binop.h" +#include "binaryop/GB_binop.h" GrB_Info GB_binop_new ( diff --git a/GraphBLAS/Source/GB_binop_pattern.c b/GraphBLAS/Source/binaryop/GB_binop_pattern.c similarity index 98% rename from GraphBLAS/Source/GB_binop_pattern.c rename to GraphBLAS/Source/binaryop/GB_binop_pattern.c index 01daf68405..459750fd0b 100644 --- a/GraphBLAS/Source/GB_binop_pattern.c +++ b/GraphBLAS/Source/binaryop/GB_binop_pattern.c @@ -12,7 +12,7 @@ // operator for C=A*B, or the ewise operator for eWiseMult. #include "GB.h" -#include "GB_binop.h" +#include "binaryop/GB_binop.h" void GB_binop_pattern ( diff --git a/GraphBLAS/Source/GB_binop_rename.c b/GraphBLAS/Source/binaryop/GB_binop_rename.c similarity index 99% rename from GraphBLAS/Source/GB_binop_rename.c rename to GraphBLAS/Source/binaryop/GB_binop_rename.c index 14133f6beb..ffbc5e2702 100644 --- a/GraphBLAS/Source/GB_binop_rename.c +++ b/GraphBLAS/Source/binaryop/GB_binop_rename.c @@ -12,8 +12,8 @@ // be applied, and some of them can be remapped into binary ops (with bind2nd). #include "GB.h" -#include "GB_binop.h" -#include "GB_unop.h" +#include "binaryop/GB_binop.h" +#include "unaryop/GB_unop.h" void GB_binop_rename // rename a bound binary op or an idxunop ( diff --git a/GraphBLAS/Source/GB_binop_second.c b/GraphBLAS/Source/binaryop/GB_binop_second.c similarity index 97% rename from GraphBLAS/Source/GB_binop_second.c rename to GraphBLAS/Source/binaryop/GB_binop_second.c index 6c76996f53..a03bf1619a 100644 --- a/GraphBLAS/Source/GB_binop_second.c +++ b/GraphBLAS/Source/binaryop/GB_binop_second.c @@ -8,8 +8,8 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_binop.h" -#include "GB_unused.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" GrB_BinaryOp GB_binop_second // return SECOND operator, or NULL on error ( diff --git a/GraphBLAS/Source/GB_binop_to_monoid.c b/GraphBLAS/Source/binaryop/GB_binop_to_monoid.c similarity index 99% rename from GraphBLAS/Source/GB_binop_to_monoid.c rename to GraphBLAS/Source/binaryop/GB_binop_to_monoid.c index 6cf3f0a1fe..aeca0225f8 100644 --- a/GraphBLAS/Source/GB_binop_to_monoid.c +++ b/GraphBLAS/Source/binaryop/GB_binop_to_monoid.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_binop.h" +#include "binaryop/GB_binop.h" GrB_Monoid GB_binop_to_monoid // return the corresponding monoid, or NULL ( diff --git a/GraphBLAS/Source/GB_boolean_rename.c b/GraphBLAS/Source/binaryop/GB_boolean_rename.c similarity index 99% rename from GraphBLAS/Source/GB_boolean_rename.c rename to GraphBLAS/Source/binaryop/GB_boolean_rename.c index 9d7548a886..d0a5651b7f 100644 --- a/GraphBLAS/Source/GB_boolean_rename.c +++ b/GraphBLAS/Source/binaryop/GB_boolean_rename.c @@ -34,7 +34,7 @@ // is 1/x, is simply 'true' for all x. #include "GB.h" -#include "GB_binop.h" +#include "binaryop/GB_binop.h" GB_Opcode GB_boolean_rename // renamed opcode ( diff --git a/GraphBLAS/Source/GB_boolean_rename_op.c b/GraphBLAS/Source/binaryop/GB_boolean_rename_op.c similarity index 98% rename from GraphBLAS/Source/GB_boolean_rename_op.c rename to GraphBLAS/Source/binaryop/GB_boolean_rename_op.c index 6399ae15eb..ff3b336def 100644 --- a/GraphBLAS/Source/GB_boolean_rename_op.c +++ b/GraphBLAS/Source/binaryop/GB_boolean_rename_op.c @@ -14,7 +14,7 @@ // reflect the renaming. #include "GB.h" -#include "GB_binop.h" +#include "binaryop/GB_binop.h" GrB_BinaryOp GB_boolean_rename_op // return renamed op ( diff --git a/GraphBLAS/Source/GB_flip_binop.c b/GraphBLAS/Source/binaryop/GB_flip_binop.c similarity index 99% rename from GraphBLAS/Source/GB_flip_binop.c rename to GraphBLAS/Source/binaryop/GB_flip_binop.c index 783709af86..a6730e1a6e 100644 --- a/GraphBLAS/Source/GB_flip_binop.c +++ b/GraphBLAS/Source/binaryop/GB_flip_binop.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_binop.h" +#include "binaryop/GB_binop.h" GrB_BinaryOp GB_flip_binop // flip a binary operator ( diff --git a/GraphBLAS/Source/GrB_BinaryOp_free.c b/GraphBLAS/Source/binaryop/GrB_BinaryOp_free.c similarity index 100% rename from GraphBLAS/Source/GrB_BinaryOp_free.c rename to GraphBLAS/Source/binaryop/GrB_BinaryOp_free.c diff --git a/GraphBLAS/Source/GrB_BinaryOp_new.c b/GraphBLAS/Source/binaryop/GrB_BinaryOp_new.c similarity index 100% rename from GraphBLAS/Source/GrB_BinaryOp_new.c rename to GraphBLAS/Source/binaryop/GrB_BinaryOp_new.c diff --git a/GraphBLAS/Source/GxB_BinaryOp_new.c b/GraphBLAS/Source/binaryop/GxB_BinaryOp_new.c similarity index 98% rename from GraphBLAS/Source/GxB_BinaryOp_new.c rename to GraphBLAS/Source/binaryop/GxB_BinaryOp_new.c index 6b2866810f..f66b7d9724 100644 --- a/GraphBLAS/Source/GxB_BinaryOp_new.c +++ b/GraphBLAS/Source/binaryop/GxB_BinaryOp_new.c @@ -14,8 +14,8 @@ // If the function pointer is NULL, the function is compiled with the JIT. #include "GB.h" -#include "GB_binop.h" -#include "GB_stringify.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_stringify.h" GrB_Info GxB_BinaryOp_new ( diff --git a/GraphBLAS/Source/GxB_BinaryOp_xtype.c b/GraphBLAS/Source/binaryop/GxB_BinaryOp_xtype.c similarity index 100% rename from GraphBLAS/Source/GxB_BinaryOp_xtype.c rename to GraphBLAS/Source/binaryop/GxB_BinaryOp_xtype.c diff --git a/GraphBLAS/Source/GxB_BinaryOp_xtype_name.c b/GraphBLAS/Source/binaryop/GxB_BinaryOp_xtype_name.c similarity index 100% rename from GraphBLAS/Source/GxB_BinaryOp_xtype_name.c rename to GraphBLAS/Source/binaryop/GxB_BinaryOp_xtype_name.c diff --git a/GraphBLAS/Source/GxB_BinaryOp_ytype.c b/GraphBLAS/Source/binaryop/GxB_BinaryOp_ytype.c similarity index 100% rename from GraphBLAS/Source/GxB_BinaryOp_ytype.c rename to GraphBLAS/Source/binaryop/GxB_BinaryOp_ytype.c diff --git a/GraphBLAS/Source/GxB_BinaryOp_ytype_name.c b/GraphBLAS/Source/binaryop/GxB_BinaryOp_ytype_name.c similarity index 100% rename from GraphBLAS/Source/GxB_BinaryOp_ytype_name.c rename to GraphBLAS/Source/binaryop/GxB_BinaryOp_ytype_name.c diff --git a/GraphBLAS/Source/GxB_BinaryOp_ztype.c b/GraphBLAS/Source/binaryop/GxB_BinaryOp_ztype.c similarity index 100% rename from GraphBLAS/Source/GxB_BinaryOp_ztype.c rename to GraphBLAS/Source/binaryop/GxB_BinaryOp_ztype.c diff --git a/GraphBLAS/Source/GxB_BinaryOp_ztype_name.c b/GraphBLAS/Source/binaryop/GxB_BinaryOp_ztype_name.c similarity index 100% rename from GraphBLAS/Source/GxB_BinaryOp_ztype_name.c rename to GraphBLAS/Source/binaryop/GxB_BinaryOp_ztype_name.c diff --git a/GraphBLAS/Source/Factories/GB_binop_factory.c b/GraphBLAS/Source/binaryop/factory/GB_binop_factory.c similarity index 98% rename from GraphBLAS/Source/Factories/GB_binop_factory.c rename to GraphBLAS/Source/binaryop/factory/GB_binop_factory.c index 373a21b978..1ec015e91b 100644 --- a/GraphBLAS/Source/Factories/GB_binop_factory.c +++ b/GraphBLAS/Source/binaryop/factory/GB_binop_factory.c @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GB_binop_factory: switch factory for built-in methods for C=binop(A,B) +// GB_binop_factory.c: switch factory for built-in methods for C=binop(A,B) //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. @@ -347,9 +347,14 @@ case GB_EQ_binop_code : // z = (x == y) //---------------------------------------------------------------------- + // For eq, ge, gt, le, lt, ne: z is bool, while the type of + // x and y can be non-boolean. Some factory kernels require the + // types of x and z to match (subassign_22 and subassign_23). + switch (xcode) { case GB_BOOL_code : GB_BINOP_WORKER (_eq, _bool ) + #ifndef GB_XTYPE_AND_ZTYPE_MUST_MATCH case GB_INT8_code : GB_BINOP_WORKER (_eq, _int8 ) case GB_INT16_code : GB_BINOP_WORKER (_eq, _int16 ) case GB_INT32_code : GB_BINOP_WORKER (_eq, _int32 ) @@ -365,10 +370,13 @@ case GB_FC32_code : GB_BINOP_WORKER (_eq, _fc32 ) case GB_FC64_code : GB_BINOP_WORKER (_eq, _fc64 ) #endif + #endif default: ; } break ; +#ifndef GB_XTYPE_AND_ZTYPE_MUST_MATCH + //---------------------------------------------------------------------- case GB_NE_binop_code : // z = (x != y) //---------------------------------------------------------------------- @@ -395,6 +403,8 @@ } break ; +#endif + //---------------------------------------------------------------------- case GB_LOR_binop_code : // z = x || y //---------------------------------------------------------------------- @@ -555,6 +565,7 @@ switch (xcode) { case GB_BOOL_code : GB_BINOP_WORKER (_gt, _bool ) + #ifndef GB_XTYPE_AND_ZTYPE_MUST_MATCH case GB_INT8_code : GB_BINOP_WORKER (_gt, _int8 ) case GB_INT16_code : GB_BINOP_WORKER (_gt, _int16 ) case GB_INT32_code : GB_BINOP_WORKER (_gt, _int32 ) @@ -565,6 +576,7 @@ case GB_UINT64_code : GB_BINOP_WORKER (_gt, _uint64) case GB_FP32_code : GB_BINOP_WORKER (_gt, _fp32 ) case GB_FP64_code : GB_BINOP_WORKER (_gt, _fp64 ) + #endif default: ; } break ; @@ -577,6 +589,7 @@ switch (xcode) { case GB_BOOL_code : GB_BINOP_WORKER (_lt, _bool ) + #ifndef GB_XTYPE_AND_ZTYPE_MUST_MATCH case GB_INT8_code : GB_BINOP_WORKER (_lt, _int8 ) case GB_INT16_code : GB_BINOP_WORKER (_lt, _int16 ) case GB_INT32_code : GB_BINOP_WORKER (_lt, _int32 ) @@ -587,6 +600,7 @@ case GB_UINT64_code : GB_BINOP_WORKER (_lt, _uint64) case GB_FP32_code : GB_BINOP_WORKER (_lt, _fp32 ) case GB_FP64_code : GB_BINOP_WORKER (_lt, _fp64 ) + #endif default: ; } break ; @@ -599,6 +613,7 @@ switch (xcode) { case GB_BOOL_code : GB_BINOP_WORKER (_ge, _bool ) + #ifndef GB_XTYPE_AND_ZTYPE_MUST_MATCH case GB_INT8_code : GB_BINOP_WORKER (_ge, _int8 ) case GB_INT16_code : GB_BINOP_WORKER (_ge, _int16 ) case GB_INT32_code : GB_BINOP_WORKER (_ge, _int32 ) @@ -609,6 +624,7 @@ case GB_UINT64_code : GB_BINOP_WORKER (_ge, _uint64) case GB_FP32_code : GB_BINOP_WORKER (_ge, _fp32 ) case GB_FP64_code : GB_BINOP_WORKER (_ge, _fp64 ) + #endif default: ; } break ; @@ -621,6 +637,7 @@ switch (xcode) { case GB_BOOL_code : GB_BINOP_WORKER (_le, _bool ) + #ifndef GB_XTYPE_AND_ZTYPE_MUST_MATCH case GB_INT8_code : GB_BINOP_WORKER (_le, _int8 ) case GB_INT16_code : GB_BINOP_WORKER (_le, _int16 ) case GB_INT32_code : GB_BINOP_WORKER (_le, _int32 ) @@ -631,6 +648,7 @@ case GB_UINT64_code : GB_BINOP_WORKER (_le, _uint64) case GB_FP32_code : GB_BINOP_WORKER (_le, _fp32 ) case GB_FP64_code : GB_BINOP_WORKER (_le, _fp64 ) + #endif default: ; } break ; @@ -739,6 +757,8 @@ } break ; +#ifndef GB_XTYPE_AND_ZTYPE_MUST_MATCH + //---------------------------------------------------------------------- case GB_CMPLX_binop_code : // z = cmplx (x,y) //---------------------------------------------------------------------- @@ -751,6 +771,8 @@ } break ; +#endif + //---------------------------------------------------------------------- case GB_BGET_binop_code : // z = bitget (x,y) //---------------------------------------------------------------------- @@ -922,4 +944,5 @@ #undef GB_NO_FIRST #undef GB_NO_SECOND #undef GB_NO_PAIR +#undef GB_XTYPE_AND_ZTYPE_MUST_MATCH diff --git a/GraphBLAS/Source/GB_build.c b/GraphBLAS/Source/builder/GB_build.c similarity index 98% rename from GraphBLAS/Source/GB_build.c rename to GraphBLAS/Source/builder/GB_build.c index fc417e2cd9..37a3f6e9da 100644 --- a/GraphBLAS/Source/GB_build.c +++ b/GraphBLAS/Source/builder/GB_build.c @@ -95,7 +95,7 @@ // The input arrays I, J, and X are not modified. #define GB_FREE_ALL GrB_Matrix_free (&T) ; -#include "GB_build.h" +#include "builder/GB_build.h" GrB_Info GB_build // build matrix ( @@ -321,10 +321,10 @@ GrB_Info GB_build // build matrix // created an iso-valued matrix T, but this is not yet known. X_iso is // false for these methods. Since it has not yet been conformed to its // final sparsity structure, the matrix T is hypersparse, not bitmap. It - // has no zombies or pending tuples, so GB_check_if_iso does need to handle + // has no zombies or pending tuples, so GB_all_entries_are_iso does need to handle // those cases. T->x [0] is the new iso value of T. - if (!X_iso && GB_check_if_iso (T)) + if (!X_iso && GB_all_entries_are_iso (T)) { // All entries in T are the same; convert T to iso GBURBLE ("(post iso) ") ; diff --git a/GraphBLAS/Source/GB_build.h b/GraphBLAS/Source/builder/GB_build.h similarity index 100% rename from GraphBLAS/Source/GB_build.h rename to GraphBLAS/Source/builder/GB_build.h diff --git a/GraphBLAS/Source/GB_builder.c b/GraphBLAS/Source/builder/GB_builder.c similarity index 98% rename from GraphBLAS/Source/GB_builder.c rename to GraphBLAS/Source/builder/GB_builder.c index 976dc85359..65d989be26 100644 --- a/GraphBLAS/Source/GB_builder.c +++ b/GraphBLAS/Source/builder/GB_builder.c @@ -105,12 +105,12 @@ // This method always returns T as hypersparse, and T is iso if and only if Sx // is iso. -#include "GB_build.h" -#include "GB_sort.h" -#include "GB_binop.h" -#include "GB_stringify.h" +#include "builder/GB_build.h" +#include "sort/GB_sort.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_bld__include.h" +#include "FactoryKernels/GB_bld__include.h" #endif #define GB_I_WORK(t) (((t) < 0) ? -1 : I_work [t]) @@ -246,7 +246,7 @@ GrB_Info GB_builder // build a matrix from tuples // Each thread handles about the same number of tuples. This partition // depends only on nvals. - GB_eslice (tstart_slice, nvals, nthreads) ; + GB_e_slice (tstart_slice, nvals, nthreads) ; // tstart_slice [tid]: first tuple in slice tid // tnvec_slice [tid]: # of vectors that start in a slice. If a vector @@ -1204,7 +1204,7 @@ GrB_Info GB_builder // build a matrix from tuples // T and Sx are iso; set iso value and delete duplicates memcpy (Tx, Sx, tsize) ; #define GB_ISO_BUILD - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" info = GrB_SUCCESS ; } @@ -1246,7 +1246,7 @@ GrB_Info GB_builder // build a matrix from tuples { opcode = GB_boolean_rename (opcode) ; } - #include "GB_bld_factory.c" + #include "builder/factory/GB_bld_factory.c" } #endif } @@ -1294,7 +1294,7 @@ GrB_Info GB_builder // build a matrix from tuples // Tx [p] += (ttype) Sx [k], but 2nd op and no typecasting #undef GB_BLD_DUP #define GB_BLD_DUP(Tx,p,Sx,k) GB_BLD_COPY(Tx,p,Sx,k) - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" } else @@ -1308,7 +1308,7 @@ GrB_Info GB_builder // build a matrix from tuples #undef GB_BLD_DUP #define GB_BLD_DUP(Tx,p,Sx,k) \ fdup (Tx +((p)*tsize), Tx +((p)*tsize), Sx+((k)*tsize)); - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" } info = GrB_SUCCESS ; @@ -1383,7 +1383,7 @@ GrB_Info GB_builder // build a matrix from tuples // Tx [p] += (ttype) Sx [k], but 2nd op, with typecasting #undef GB_BLD_DUP #define GB_BLD_DUP(Tx,p,Sx,k) GB_BLD_COPY(Tx,p,Sx,k) - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" } else @@ -1410,7 +1410,7 @@ GrB_Info GB_builder // build a matrix from tuples cast_Z_to_T (Tx +((p)*tsize), zwork, zsize) ; \ } - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" } } diff --git a/GraphBLAS/Source/GB_hyper_hash_build.c b/GraphBLAS/Source/builder/GB_hyper_hash_build.c similarity index 99% rename from GraphBLAS/Source/GB_hyper_hash_build.c rename to GraphBLAS/Source/builder/GB_hyper_hash_build.c index 78e9946ccc..d9576f59fe 100644 --- a/GraphBLAS/Source/GB_hyper_hash_build.c +++ b/GraphBLAS/Source/builder/GB_hyper_hash_build.c @@ -22,7 +22,7 @@ GB_phybix_free (A) ; \ } -#include "GB_build.h" +#include "builder/GB_build.h" GrB_Info GB_hyper_hash_build // construct A->Y if not already constructed ( diff --git a/GraphBLAS/Source/GrB_Matrix_build.c b/GraphBLAS/Source/builder/GrB_Matrix_build.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_build.c rename to GraphBLAS/Source/builder/GrB_Matrix_build.c index b0d72714e4..18a736189d 100644 --- a/GraphBLAS/Source/GrB_Matrix_build.c +++ b/GraphBLAS/Source/builder/GrB_Matrix_build.c @@ -12,7 +12,7 @@ // If dup is a valid binary operator, it is used to reduce any duplicates to // a single value. -#include "GB_build.h" +#include "builder/GB_build.h" #define GB_MATRIX_BUILD(prefix,type,T,xtype) \ GrB_Info GB_EVAL3 (prefix, _Matrix_build_, T) /* build a matrix from tuples */\ diff --git a/GraphBLAS/Source/GrB_Vector_build.c b/GraphBLAS/Source/builder/GrB_Vector_build.c similarity index 98% rename from GraphBLAS/Source/GrB_Vector_build.c rename to GraphBLAS/Source/builder/GrB_Vector_build.c index 776f962ebc..811c040db7 100644 --- a/GraphBLAS/Source/GrB_Vector_build.c +++ b/GraphBLAS/Source/builder/GrB_Vector_build.c @@ -12,7 +12,7 @@ // If dup is a valid binary operator, it is used to reduce any duplicates to // a single value. -#include "GB_build.h" +#include "builder/GB_build.h" #define GB_VECTOR_BUILD(prefix,type,T,xtype) \ GrB_Info GB_EVAL3 (prefix, _Vector_build_, T) /* build a vector from tuples*/ \ diff --git a/GraphBLAS/Source/GxB_Matrix_build_Scalar.c b/GraphBLAS/Source/builder/GxB_Matrix_build_Scalar.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_build_Scalar.c rename to GraphBLAS/Source/builder/GxB_Matrix_build_Scalar.c index c054287487..2c92582d39 100644 --- a/GraphBLAS/Source/GxB_Matrix_build_Scalar.c +++ b/GraphBLAS/Source/builder/GxB_Matrix_build_Scalar.c @@ -13,7 +13,7 @@ // duplicate indices are ignored, which is not an error condition. The I and J // arrays are of size nvals, just like GrB_Matrix_build_*. -#include "GB_build.h" +#include "builder/GB_build.h" #define GB_FREE_ALL ; GrB_Info GxB_Matrix_build_Scalar diff --git a/GraphBLAS/Source/GxB_Vector_build_Scalar.c b/GraphBLAS/Source/builder/GxB_Vector_build_Scalar.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_build_Scalar.c rename to GraphBLAS/Source/builder/GxB_Vector_build_Scalar.c index 3bb0eec9d3..73ce52e569 100644 --- a/GraphBLAS/Source/GxB_Vector_build_Scalar.c +++ b/GraphBLAS/Source/builder/GxB_Vector_build_Scalar.c @@ -13,7 +13,7 @@ // duplicate indices are ignored, which is not an error condition. The I array // is of size nvals, just like GrB_Vector_build_*. -#include "GB_build.h" +#include "builder/GB_build.h" #define GB_FREE_ALL ; GrB_Info GxB_Vector_build_Scalar // build a vector from (i,scalar) tuples diff --git a/GraphBLAS/Source/Factories/GB_bld_factory.c b/GraphBLAS/Source/builder/factory/GB_bld_factory.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bld_factory.c rename to GraphBLAS/Source/builder/factory/GB_bld_factory.c diff --git a/GraphBLAS/Source/Template/GB_bld_template.c b/GraphBLAS/Source/builder/template/GB_bld_template.c similarity index 98% rename from GraphBLAS/Source/Template/GB_bld_template.c rename to GraphBLAS/Source/builder/template/GB_bld_template.c index 1d8876aee2..b885a26df7 100644 --- a/GraphBLAS/Source/Template/GB_bld_template.c +++ b/GraphBLAS/Source/builder/template/GB_bld_template.c @@ -13,12 +13,13 @@ // Sx and Tx are either both iso or both non-iso. For the iso case, // GB_ISO_BUILD is defined, and K_work is NULL. The iso case is not handled by -// the FactoryKernels/GB_bld__* workers, since it doesn't access the values at all. +// the FactoryKernels/GB_bld__* workers, since it doesn't access the values at +// all. { // k unused for some uses of this template - #include "GB_unused.h" + #include "include/GB_unused.h" if (ndupl == 0) { diff --git a/GraphBLAS/Source/builtin/GB_builtin.c b/GraphBLAS/Source/builtin/GB_builtin.c new file mode 100644 index 0000000000..b120666af0 --- /dev/null +++ b/GraphBLAS/Source/builtin/GB_builtin.c @@ -0,0 +1,1032 @@ +//------------------------------------------------------------------------------ +// GB_builtin.c: built-in types, functions, operators, and other externs +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// This file defines the predefined built-in types, descriptors, unary +// operators, index_unary operators, binary operators, monoids, and semirings. + +#include "GB.h" +#include "math/GB_math.h" +#include "builtin/GB_builtin.h" + +//------------------------------------------------------------------------------ +// compiler flags +//------------------------------------------------------------------------------ + +#if GB_COMPILER_ICC || GB_COMPILER_ICX + // disable icc warnings + // 144: initialize with incompatible pointer + #pragma warning (disable: 144 ) +#elif GB_COMPILER_GCC + // disable gcc warnings + #pragma GCC diagnostic ignored "-Wincompatible-pointer-types" +#elif GB_COMPILER_MSC + // disable MS Visual Studio warnings + GB_PRAGMA (warning (disable : 4146 )) +#endif + +//------------------------------------------------------------------------------ +// built-in types +//------------------------------------------------------------------------------ + +#define GB_TYPEDEF(prefix,type,ctype,name) \ + struct GB_Type_opaque GB_OPAQUE (type) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + sizeof (ctype), /* sizeof the type */ \ + GB_ ## type ## _code, /* type code */ \ + 0, name, /* name_len and name */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } ; \ + GrB_Type prefix ## _ ## type = & GB_OPAQUE (type) + +GB_TYPEDEF (GrB, BOOL , bool , "bool" ) ; +GB_TYPEDEF (GrB, INT8 , int8_t , "int8_t" ) ; +GB_TYPEDEF (GrB, INT16 , int16_t , "int16_t" ) ; +GB_TYPEDEF (GrB, INT32 , int32_t , "int32_t" ) ; +GB_TYPEDEF (GrB, INT64 , int64_t , "int64_t" ) ; +GB_TYPEDEF (GrB, UINT8 , uint8_t , "uint8_t" ) ; +GB_TYPEDEF (GrB, UINT16, uint16_t , "uint16_t" ) ; +GB_TYPEDEF (GrB, UINT32, uint32_t , "uint32_t" ) ; +GB_TYPEDEF (GrB, UINT64, uint64_t , "uint64_t" ) ; +GB_TYPEDEF (GrB, FP32 , float , "float" ) ; +GB_TYPEDEF (GrB, FP64 , double , "double" ) ; +GB_TYPEDEF (GxB, FC32 , GxB_FC32_t, "GxB_FC32_t") ; +GB_TYPEDEF (GxB, FC64 , GxB_FC64_t, "GxB_FC64_t") ; + +//------------------------------------------------------------------------------ +// built-in descriptors +//------------------------------------------------------------------------------ + +#define o ((GrB_Desc_Value) GxB_DEFAULT) + +#define GB_DESC(name,out,mask,in0,in1) \ + struct GB_Descriptor_opaque GB_OPAQUE (desc_ ## name) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + "", 0, /* logger */ \ + (GrB_Desc_Value) (out), \ + (GrB_Desc_Value) (mask), \ + (GrB_Desc_Value) (in0), \ + (GrB_Desc_Value) (in1), \ + o, /* default: axb */ \ + 0, /* default compression */ \ + 0, /* no sort */ \ + 0 /* import */ \ + } ; \ + GrB_Descriptor GRB (DESC_ ## name) = & GB_OPAQUE (desc_ ## name) ; + +// name outp structure complement in0 in1 + +// GrB_NULL , o , o + o , o , o +GB_DESC (T1 , o , o + o , o , GrB_TRAN ) +GB_DESC (T0 , o , o + o , GrB_TRAN, o ) +GB_DESC (T0T1 , o , o + o , GrB_TRAN, GrB_TRAN ) + +GB_DESC (C , o , o + GrB_COMP, o , o ) +GB_DESC (CT1 , o , o + GrB_COMP, o , GrB_TRAN ) +GB_DESC (CT0 , o , o + GrB_COMP, GrB_TRAN, o ) +GB_DESC (CT0T1 , o , o + GrB_COMP, GrB_TRAN, GrB_TRAN ) + +GB_DESC (S , o , GrB_STRUCTURE + o , o , o ) +GB_DESC (ST1 , o , GrB_STRUCTURE + o , o , GrB_TRAN ) +GB_DESC (ST0 , o , GrB_STRUCTURE + o , GrB_TRAN, o ) +GB_DESC (ST0T1 , o , GrB_STRUCTURE + o , GrB_TRAN, GrB_TRAN ) + +GB_DESC (SC , o , GrB_STRUCTURE + GrB_COMP, o , o ) +GB_DESC (SCT1 , o , GrB_STRUCTURE + GrB_COMP, o , GrB_TRAN ) +GB_DESC (SCT0 , o , GrB_STRUCTURE + GrB_COMP, GrB_TRAN, o ) +GB_DESC (SCT0T1 , o , GrB_STRUCTURE + GrB_COMP, GrB_TRAN, GrB_TRAN ) + +GB_DESC (R , GrB_REPLACE, o + o , o , o ) +GB_DESC (RT1 , GrB_REPLACE, o + o , o , GrB_TRAN ) +GB_DESC (RT0 , GrB_REPLACE, o + o , GrB_TRAN, o ) +GB_DESC (RT0T1 , GrB_REPLACE, o + o , GrB_TRAN, GrB_TRAN ) + +GB_DESC (RC , GrB_REPLACE, o + GrB_COMP, o , o ) +GB_DESC (RCT1 , GrB_REPLACE, o + GrB_COMP, o , GrB_TRAN ) +GB_DESC (RCT0 , GrB_REPLACE, o + GrB_COMP, GrB_TRAN, o ) +GB_DESC (RCT0T1 , GrB_REPLACE, o + GrB_COMP, GrB_TRAN, GrB_TRAN ) + +GB_DESC (RS , GrB_REPLACE, GrB_STRUCTURE + o , o , o ) +GB_DESC (RST1 , GrB_REPLACE, GrB_STRUCTURE + o , o , GrB_TRAN ) +GB_DESC (RST0 , GrB_REPLACE, GrB_STRUCTURE + o , GrB_TRAN, o ) +GB_DESC (RST0T1 , GrB_REPLACE, GrB_STRUCTURE + o , GrB_TRAN, GrB_TRAN ) + +GB_DESC (RSC , GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, o , o ) +GB_DESC (RSCT1 , GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, o , GrB_TRAN ) +GB_DESC (RSCT0 , GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, GrB_TRAN, o ) +GB_DESC (RSCT0T1, GrB_REPLACE, GrB_STRUCTURE + GrB_COMP, GrB_TRAN, GrB_TRAN ) + +#undef o + +//------------------------------------------------------------------------------ +// GB_OP: construct the name of an operator +//------------------------------------------------------------------------------ + +#define GB_OP(op) GB_EVAL3 (op, _, GB_XTYPE) + +//------------------------------------------------------------------------------ +// helper macros to define unary operators +//------------------------------------------------------------------------------ + +#define GB_OP1zx(op,name,z_t,ztype,x_t,xtype) \ + extern void GB_FUNC_T (op, xtype) (z_t *z, const x_t *x) ; \ + struct GB_UnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (ztype), /* ztype */ \ + & GB_OPAQUE (xtype), /* xtype */ \ + NULL, /* ytype */ \ + (GxB_unary_function) (& GB_FUNC_T (op, xtype)), NULL, NULL, \ + name, 0, /* name and name_len */ \ + GB_ ## op ## _unop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } + +#define GRB_OP1z(op,name,z_t,ztype) \ + GB_OP1zx (op, name, z_t, ztype, GB_TYPE, GB_XTYPE) ; \ + GrB_UnaryOp GRB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +#define GRB_OP1(op,name) GRB_OP1z (op, name, GB_TYPE, GB_XTYPE) + +#define GXB_OP1z(op,name,z_t,ztype) \ + GB_OP1zx (op, name, z_t, ztype, GB_TYPE, GB_XTYPE) ; \ + GrB_UnaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +#define GXB_OP1(op,name) GXB_OP1z (op, name, GB_TYPE, GB_XTYPE) + +#define GXB_OP1_RENAME(op) \ + GrB_UnaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +//------------------------------------------------------------------------------ +// helper macros to define binary operators +//------------------------------------------------------------------------------ + +#define GB_OP2zxy(op,name,z_t,ztype,x_t,xtype,y_t,ytype) \ + extern void GB_FUNC_T(op,xtype) (z_t *z, const x_t *x, const y_t *y) ; \ + struct GB_BinaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (ztype), /* ztype */ \ + & GB_OPAQUE (xtype), \ + & GB_OPAQUE (ytype), \ + NULL, NULL, (GxB_binary_function) (& GB_FUNC_T (op, xtype)), \ + name, 0, /* name and name_len */ \ + GB_ ## op ## _binop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } + +#define GRB_OP2z(op,name,z_t,ztype) \ + GB_OP2zxy (op, name, z_t, ztype, GB_TYPE, GB_XTYPE, GB_TYPE, GB_XTYPE) ; \ + GrB_BinaryOp GRB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +#define GRB_OP2(op,name) GRB_OP2z (op, name, GB_TYPE, GB_XTYPE) + +#define GXB_OP2z(op,name,z_t,ztype) \ + GB_OP2zxy (op, name, z_t, ztype, GB_TYPE, GB_XTYPE, GB_TYPE, GB_XTYPE) ; \ + GrB_BinaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +#define GXB_OP2(op,name) GXB_OP2z (op, name, GB_TYPE, GB_XTYPE) + +#define GXB_OP2shift(op,name) \ + GB_OP2zxy (op, name, GB_TYPE, GB_XTYPE, GB_TYPE, GB_XTYPE, int8_t, INT8) ; \ + GrB_BinaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +//------------------------------------------------------------------------------ +// positional unary and binary operators +//------------------------------------------------------------------------------ + +// The function pointer inside a positional operator cannot be called directly, +// since it does not depend on the values of its two arguments. The operator +// can only be implemented via its opcode. + +// helper macros to define positional unary operators +#define GXB_OP1_POS(op,name,type) \ + struct GB_UnaryOp_opaque GB_OPAQUE (op ## _ ## type) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (type), /* ztype */ \ + & GB_OPAQUE (type), /* xtype */ \ + NULL, /* ytype */ \ + NULL, NULL, NULL, /* no function pointer */ \ + name, 0, /* name and name_len */ \ + GB_ ## op ## _unop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } ; \ + GrB_UnaryOp GXB (op ## _ ## type) = & GB_OPAQUE (op ## _ ## type) + +// helper macros to define positional binary operators +#define GXB_OP2_POS(op,name,type) \ + struct GB_BinaryOp_opaque GB_OPAQUE (op ## _ ## type) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (type), /* ztype */ \ + & GB_OPAQUE (type), /* xtype */ \ + & GB_OPAQUE (type), /* ytype */ \ + NULL, NULL, NULL, /* no function pointer */ \ + name, 0, /* name and name_len */ \ + GB_ ## op ## _binop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } ; \ + GrB_BinaryOp GXB (op ## _ ## type) = & GB_OPAQUE (op ## _ ## type) + +GXB_OP1_POS (POSITIONI , "positioni" , INT32) ; +GXB_OP1_POS (POSITIONI , "positioni" , INT64) ; +GXB_OP1_POS (POSITIONI1, "positioni1", INT32) ; +GXB_OP1_POS (POSITIONI1, "positioni1", INT64) ; +GXB_OP1_POS (POSITIONJ , "positionj" , INT32) ; +GXB_OP1_POS (POSITIONJ , "positionj" , INT64) ; +GXB_OP1_POS (POSITIONJ1, "positionj1", INT32) ; +GXB_OP1_POS (POSITIONJ1, "positionj1", INT64) ; + +GXB_OP2_POS (FIRSTI , "firsti" , INT32) ; +GXB_OP2_POS (FIRSTI , "firsti" , INT64) ; +GXB_OP2_POS (FIRSTI1 , "firsti1" , INT32) ; +GXB_OP2_POS (FIRSTI1 , "firsti1" , INT64) ; +GXB_OP2_POS (FIRSTJ , "firstj" , INT32) ; +GXB_OP2_POS (FIRSTJ , "firstj" , INT64) ; +GXB_OP2_POS (FIRSTJ1 , "firstj1" , INT32) ; +GXB_OP2_POS (FIRSTJ1 , "firstj1" , INT64) ; + +GXB_OP2_POS (SECONDI , "secondi" , INT32) ; +GXB_OP2_POS (SECONDI , "secondi" , INT64) ; +GXB_OP2_POS (SECONDI1 , "secondi1" , INT32) ; +GXB_OP2_POS (SECONDI1 , "secondi1" , INT64) ; +GXB_OP2_POS (SECONDJ , "secondj" , INT32) ; +GXB_OP2_POS (SECONDJ , "secondj" , INT64) ; +GXB_OP2_POS (SECONDJ1 , "secondj1" , INT32) ; +GXB_OP2_POS (SECONDJ1 , "secondj1" , INT64) ; + +//------------------------------------------------------------------------------ +// built-in index_unary operators +//------------------------------------------------------------------------------ + +// IndexUnaryOps that depend on i,j,y but not A(i,j), and result has +// the same type as the scalar y: ROWINDEX, COLINDEX, DIAGINDEX +#define GRB_IDXOP_POSITIONAL(op,name) \ + extern void GB_FUNC_T(op,GB_XTYPE) (GB_TYPE *z, const void *unused, \ + GrB_Index i, GrB_Index j, const GB_TYPE *y) ; \ + struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (GB_XTYPE), /* ztype */ \ + NULL, /* xtype */ \ + & GB_OPAQUE (GB_XTYPE), /* ytype */ \ + NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ + name, 0, /* name and name_len */ \ + GB_ ## op ## _idxunop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } ; \ + GrB_IndexUnaryOp GRB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +// GxB_IndexUnaryOps that depend on i,j,y but not A(i,j), and result has +// the same type as the scalar y: FLIPDIAGINDEX +#define GXB_IDXOP_POSITIONAL(op,name) \ + extern void GB_FUNC_T(op,GB_XTYPE) (GB_TYPE *z, const void *unused, \ + GrB_Index i, GrB_Index j, const GB_TYPE *y) ; \ + struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (GB_XTYPE), /* ztype */ \ + NULL, /* xtype */ \ + & GB_OPAQUE (GB_XTYPE), /* ytype */ \ + NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ + name, 0, /* name and name_len */ \ + GB_ ## op ## _idxunop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } ; \ + GrB_IndexUnaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +// IndexUnaryOps that depend on i,j, and y but not A(i,j), and result is +// bool: TRIL, TRIU, DIAG, OFFDIAG, COLLE, COLGT, ROWLE, ROWGT. +// No suffix on the GrB name. +#define GRB_IDXOP_POSITIONAL_BOOL(op,name) \ + extern void GB_FUNC_T(op,GB_XTYPE) (bool *z, const void *unused, \ + GrB_Index i, GrB_Index j, const GB_TYPE *y) ; \ + struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (BOOL), /* ztype */ \ + NULL, /* xtype */ \ + & GB_OPAQUE (GB_XTYPE), /* ytype */ \ + NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ + name, 0, /* name and name_len */ \ + GB_ ## op ## _idxunop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } ; \ + GrB_IndexUnaryOp GRB (op) = & GB_OPAQUE (GB_OP (op)) + +// GrB_IndexUnaryOps that depend on A(i,j), and result is bool: VALUE* ops +#define GRB_IDXOP_VALUE(op,name) \ + extern void GB_FUNC_T(op,GB_XTYPE) (bool *z, const GB_TYPE *x, \ + GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) ; \ + struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (BOOL), /* ztype */ \ + & GB_OPAQUE (GB_XTYPE), /* xtype */ \ + & GB_OPAQUE (GB_XTYPE), /* ytype */ \ + NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ + name, 0, /* name and name_len */ \ + GB_ ## op ## _idxunop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } ; \ + GrB_IndexUnaryOp GRB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +// GxB* IndexUnaryOps that depend on A(i,j), result is bool: VALUE* complex ops +#define GXB_IDXOP_VALUE(op,name) \ + extern void GB_FUNC_T(op,GB_XTYPE) (bool *z, const GB_TYPE *x, \ + GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) ; \ + struct GB_IndexUnaryOp_opaque GB_OPAQUE (GB_OP (op)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (BOOL), /* ztype */ \ + & GB_OPAQUE (GB_XTYPE), /* xtype */ \ + & GB_OPAQUE (GB_XTYPE), /* ytype */ \ + NULL, (GxB_index_unary_function) (& GB_FUNC_T (op, GB_XTYPE)), NULL,\ + name, 0, /* name and name_len */ \ + GB_ ## op ## _idxunop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } ; \ + GrB_IndexUnaryOp GXB (GB_OP (op)) = & GB_OPAQUE (GB_OP (op)) + +//------------------------------------------------------------------------------ +// built-in select operators (DEPRECATED: do not use in any code) +//------------------------------------------------------------------------------ + +#define GXB_SEL(op,name) \ + struct GB_SelectOp_opaque GB_OPAQUE (op) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (BOOL), /* ztype */ \ + NULL, /* xtype */ \ + NULL, /* thunk type */ \ + NULL, NULL, NULL, /* no function pointer */ \ + name, 0, /* name and name_len */ \ + GB_ ## op ## _selop_code, /* opcode */ \ + NULL, 0, 0 /* defn, alloc, hash */ \ + } ; \ + GxB_SelectOp GXB (op) = & GB_OPAQUE (op) + +GXB_SEL (TRIL , "tril" ) ; +GXB_SEL (TRIU , "triu" ) ; +GXB_SEL (DIAG , "diag" ) ; +GXB_SEL (OFFDIAG , "offdiag" ) ; + +GXB_SEL (NONZERO , "nonzero" ) ; +GXB_SEL (EQ_ZERO , "eq_zero" ) ; +GXB_SEL (GT_ZERO , "gt_zero" ) ; +GXB_SEL (GE_ZERO , "ge_zero" ) ; +GXB_SEL (LT_ZERO , "lt_zero" ) ; +GXB_SEL (LE_ZERO , "le_zero" ) ; + +GXB_SEL (NE_THUNK , "ne_thunk") ; +GXB_SEL (EQ_THUNK , "eq_thunk") ; +GXB_SEL (GT_THUNK , "gt_thunk") ; +GXB_SEL (GE_THUNK , "ge_thunk") ; +GXB_SEL (LT_THUNK , "lt_thunk") ; +GXB_SEL (LE_THUNK , "le_thunk") ; + +//------------------------------------------------------------------------------ +// define all built-in operators +//------------------------------------------------------------------------------ + +#define GB_TYPE bool +#define GB_XTYPE BOOL +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE int8_t +#define GB_XTYPE INT8 +#define GB_SIGNED_INT +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE uint8_t +#define GB_XTYPE UINT8 +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE int16_t +#define GB_XTYPE INT16 +#define GB_SIGNED_INT +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE uint16_t +#define GB_XTYPE UINT16 +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE int32_t +#define GB_XTYPE INT32 +#define GB_SIGNED_INT +#define GB_SIGNED_INDEX +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE uint32_t +#define GB_XTYPE UINT32 +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE int64_t +#define GB_XTYPE INT64 +#define GB_SIGNED_INT +#define GB_SIGNED_INDEX +#define GB_SIGNED_INDEX64 +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE uint64_t +#define GB_XTYPE UINT64 +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE float +#define GB_XTYPE FP32 +#define GB_FLOAT +#define GB_FLOATING_POINT +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE double +#define GB_XTYPE FP64 +#define GB_DOUBLE +#define GB_FLOATING_POINT +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE GxB_FC32_t +#define GB_XTYPE FC32 +#define GB_FLOAT_COMPLEX +#define GB_COMPLEX +#define GB_FLOATING_POINT +#include "builtin/factory/GB_builtin_template.c" + +#define GB_TYPE GxB_FC64_t +#define GB_XTYPE FC64 +#define GB_DOUBLE_COMPLEX +#define GB_COMPLEX +#define GB_FLOATING_POINT +#include "builtin/factory/GB_builtin_template.c" + +//------------------------------------------------------------------------------ +// special cases for functions and operators +//------------------------------------------------------------------------------ + +// 5 special cases: +// purely boolean operators: these do not have _BOOL in their name +// They are not created by the templates above. +GrB_UnaryOp GrB_LNOT = & GB_OPAQUE (LNOT_BOOL) ; +GrB_BinaryOp GrB_LOR = & GB_OPAQUE (LOR_BOOL) ; +GrB_BinaryOp GrB_LAND = & GB_OPAQUE (LAND_BOOL) ; +GrB_BinaryOp GrB_LXOR = & GB_OPAQUE (LXOR_BOOL) ; +GrB_BinaryOp GrB_LXNOR = & GB_OPAQUE (EQ_BOOL) ; + +// Special case for GrB_Matrix_build and GrB_Vector_build: this operator is +// not valid to use in any other methods. +struct GB_BinaryOp_opaque GB_OPAQUE (IGNORE_DUP) = +{ + GB_MAGIC2, 0, // magic and header_size + NULL, 0, // no user_name for GrB_get/GrB_set + NULL, // ztype + NULL, // xtype + NULL, // ytype + NULL, NULL, NULL, // no function pointer + "ignore_dup", 0, // name and name_len + GB_NOP_code, // opcode + NULL, 0, 0 // defn, alloc, and hash +} ; +GrB_BinaryOp GxB_IGNORE_DUP = & GB_OPAQUE (IGNORE_DUP) ; + +// GrB_ONEB_T: identical to GxB_PAIR_T +GrB_BinaryOp GrB_ONEB_BOOL = & GB_OPAQUE (PAIR_BOOL) ; +GrB_BinaryOp GrB_ONEB_INT8 = & GB_OPAQUE (PAIR_INT8) ; +GrB_BinaryOp GrB_ONEB_INT16 = & GB_OPAQUE (PAIR_INT16) ; +GrB_BinaryOp GrB_ONEB_INT32 = & GB_OPAQUE (PAIR_INT32) ; +GrB_BinaryOp GrB_ONEB_INT64 = & GB_OPAQUE (PAIR_INT64) ; +GrB_BinaryOp GrB_ONEB_UINT8 = & GB_OPAQUE (PAIR_UINT8) ; +GrB_BinaryOp GrB_ONEB_UINT16 = & GB_OPAQUE (PAIR_UINT16) ; +GrB_BinaryOp GrB_ONEB_UINT32 = & GB_OPAQUE (PAIR_UINT32) ; +GrB_BinaryOp GrB_ONEB_UINT64 = & GB_OPAQUE (PAIR_UINT64) ; +GrB_BinaryOp GrB_ONEB_FP32 = & GB_OPAQUE (PAIR_FP32) ; +GrB_BinaryOp GrB_ONEB_FP64 = & GB_OPAQUE (PAIR_FP64) ; +GrB_BinaryOp GxB_ONEB_FC32 = & GB_OPAQUE (PAIR_FC32) ; +GrB_BinaryOp GxB_ONEB_FC64 = & GB_OPAQUE (PAIR_FC64) ; + +// nonzombie function for generic case +extern void GB_nonzombie_func (bool *z, const void *x, + int64_t i, GrB_Index j, const void *y) ; + +// GxB_NONZOMBIE: internal use only +struct GB_IndexUnaryOp_opaque GB_OPAQUE (NONZOMBIE) = +{ + GB_MAGIC, 0, // magic and header_size + NULL, 0, // no user_name for GrB_get/GrB_set + & GB_OPAQUE (BOOL), // ztype + NULL, // xtype + & GB_OPAQUE (INT64), // ytype + NULL, (GxB_index_unary_function) &GB_nonzombie_func, NULL, + "nonzombie", 0, // name and name_len + GB_NONZOMBIE_idxunop_code, // opcode + NULL, 0, 0 // defn, alloc, hash +} ; +GrB_IndexUnaryOp GxB_NONZOMBIE = & GB_OPAQUE (NONZOMBIE) ; + +//------------------------------------------------------------------------------ +// GrB_ALL +//------------------------------------------------------------------------------ + +// The GrB_ALL pointer is never dereferenced. It is passed in as an argument to +// indicate that all indices are to be used, as in the colon in C = A(:,j). + +GrB_Index GB_OPAQUE (ALL) = 0 ; +const GrB_Index *GrB_ALL = & GB_OPAQUE (ALL) ; + +// the default hyper_switch is defined in GB_defaults.h +const double GxB_HYPER_DEFAULT = GB_HYPER_SWITCH_DEFAULT ; + +// set GxB_HYPER_SWITCH to either of these to ensure matrix is always, or never, +// stored in hypersparse format, respectively. +const double GxB_ALWAYS_HYPER = GB_ALWAYS_HYPER ; +const double GxB_NEVER_HYPER = GB_NEVER_HYPER ; +const GxB_Format_Value GxB_FORMAT_DEFAULT = GxB_BY_ROW ; + +//------------------------------------------------------------------------------ +// predefined built-in monoids +//------------------------------------------------------------------------------ + +#if defined (GxB_HAVE_COMPLEX_MSVC) +#define GB_FC32_ONE {1.0f, 0.0f} +#define GB_FC64_ONE {1.0 , 0.0 } +#define GB_FC32_ZERO {0.0f, 0.0f} +#define GB_FC64_ZERO {0.0 , 0.0 } +#else +#define GB_FC32_ONE GxB_CMPLXF (1,0) +#define GB_FC64_ONE GxB_CMPLX (1,0) +#define GB_FC32_ZERO GxB_CMPLXF (0,0) +#define GB_FC64_ZERO GxB_CMPLX (0,0) +#endif + +// helper macro to define built-in monoids (no terminal value) +#define GB_MONOID_DEF(op,ztype,identity) \ + ztype GB_OPAQUE (GB_EVAL2 (identity_, op)) = identity ; \ + struct GB_Monoid_opaque GB_OPAQUE (GB_EVAL2 (op, _MONOID)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (op), /* additive operator */ \ + & GB_OPAQUE (GB_EVAL2 (identity_, op)), /* identity */ \ + NULL, /* terminal */ \ + 0, 0, 0 /* alloc id & term, hash */ \ + } ; \ + GrB_Monoid GXB (GB_EVAL2 (op, _MONOID)) = \ + & GB_OPAQUE (GB_EVAL2 (op, _MONOID)) ; + +// helper macro to define built-in monoids (with terminal value) +#define GB_MONOID_DEFT(op,ztype,identity,terminal) \ + ztype GB_OPAQUE (GB_EVAL2 (identity_, op)) = identity ; \ + ztype GB_OPAQUE (GB_EVAL2 (terminal_, op)) = terminal ; \ + struct GB_Monoid_opaque GB_OPAQUE (GB_EVAL2 (op, _MONOID)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (op), /* additive operator */ \ + & GB_OPAQUE (GB_EVAL2 (identity_, op)), /* identity */ \ + & GB_OPAQUE (GB_EVAL2 (terminal_, op)), /* terminal */ \ + 0, 0, 0 /* alloc id & term, hash */ \ + } ; \ + GrB_Monoid GXB (GB_EVAL2 (op, _MONOID)) = \ + & GB_OPAQUE (GB_EVAL2 (op, _MONOID)) ; + +// macro to construct GrB_* monoids in the updated specification +#define GB_MONOID_GRB(op,type) \ +GrB_Monoid GRB (GB_EVAL3 (op, _MONOID_, type)) = \ + & GB_OPAQUE (GB_EVAL4 (op, _, type, _MONOID)) ; + +// MIN monoids: +GB_MONOID_DEFT ( MIN_INT8 , int8_t , INT8_MAX , INT8_MIN ) +GB_MONOID_DEFT ( MIN_INT16 , int16_t , INT16_MAX , INT16_MIN ) +GB_MONOID_DEFT ( MIN_INT32 , int32_t , INT32_MAX , INT32_MIN ) +GB_MONOID_DEFT ( MIN_INT64 , int64_t , INT64_MAX , INT64_MIN ) +GB_MONOID_DEFT ( MIN_UINT8 , uint8_t , UINT8_MAX , 0 ) +GB_MONOID_DEFT ( MIN_UINT16 , uint16_t , UINT16_MAX , 0 ) +GB_MONOID_DEFT ( MIN_UINT32 , uint32_t , UINT32_MAX , 0 ) +GB_MONOID_DEFT ( MIN_UINT64 , uint64_t , UINT64_MAX , 0 ) +GB_MONOID_DEF ( MIN_FP32 , float , INFINITY ) +GB_MONOID_DEF ( MIN_FP64 , double , INFINITY ) + +GB_MONOID_GRB ( MIN, INT8 ) +GB_MONOID_GRB ( MIN, INT16 ) +GB_MONOID_GRB ( MIN, INT32 ) +GB_MONOID_GRB ( MIN, INT64 ) +GB_MONOID_GRB ( MIN, UINT8 ) +GB_MONOID_GRB ( MIN, UINT16 ) +GB_MONOID_GRB ( MIN, UINT32 ) +GB_MONOID_GRB ( MIN, UINT64 ) +GB_MONOID_GRB ( MIN, FP32 ) +GB_MONOID_GRB ( MIN, FP64 ) + +// MAX monoids: +GB_MONOID_DEFT ( MAX_INT8 , int8_t , INT8_MIN , INT8_MAX ) +GB_MONOID_DEFT ( MAX_INT16 , int16_t , INT16_MIN , INT16_MAX ) +GB_MONOID_DEFT ( MAX_INT32 , int32_t , INT32_MIN , INT32_MAX ) +GB_MONOID_DEFT ( MAX_INT64 , int64_t , INT64_MIN , INT64_MAX ) +GB_MONOID_DEFT ( MAX_UINT8 , uint8_t , 0 , UINT8_MAX ) +GB_MONOID_DEFT ( MAX_UINT16 , uint16_t , 0 , UINT16_MAX) +GB_MONOID_DEFT ( MAX_UINT32 , uint32_t , 0 , UINT32_MAX) +GB_MONOID_DEFT ( MAX_UINT64 , uint64_t , 0 , UINT64_MAX) +GB_MONOID_DEF ( MAX_FP32 , float , -INFINITY ) +GB_MONOID_DEF ( MAX_FP64 , double , -INFINITY ) + +GB_MONOID_GRB ( MAX, INT8 ) +GB_MONOID_GRB ( MAX, INT16 ) +GB_MONOID_GRB ( MAX, INT32 ) +GB_MONOID_GRB ( MAX, INT64 ) +GB_MONOID_GRB ( MAX, UINT8 ) +GB_MONOID_GRB ( MAX, UINT16 ) +GB_MONOID_GRB ( MAX, UINT32 ) +GB_MONOID_GRB ( MAX, UINT64 ) +GB_MONOID_GRB ( MAX, FP32 ) +GB_MONOID_GRB ( MAX, FP64 ) + +// PLUS monoids: +GB_MONOID_DEF ( PLUS_INT8 , int8_t , 0 ) +GB_MONOID_DEF ( PLUS_INT16 , int16_t , 0 ) +GB_MONOID_DEF ( PLUS_INT32 , int32_t , 0 ) +GB_MONOID_DEF ( PLUS_INT64 , int64_t , 0 ) +GB_MONOID_DEF ( PLUS_UINT8 , uint8_t , 0 ) +GB_MONOID_DEF ( PLUS_UINT16 , uint16_t , 0 ) +GB_MONOID_DEF ( PLUS_UINT32 , uint32_t , 0 ) +GB_MONOID_DEF ( PLUS_UINT64 , uint64_t , 0 ) +GB_MONOID_DEF ( PLUS_FP32 , float , 0 ) +GB_MONOID_DEF ( PLUS_FP64 , double , 0 ) +GB_MONOID_DEF ( PLUS_FC32 , GxB_FC32_t, GB_FC32_ZERO) +GB_MONOID_DEF ( PLUS_FC64 , GxB_FC64_t, GB_FC64_ZERO) + +GB_MONOID_GRB ( PLUS, INT8 ) +GB_MONOID_GRB ( PLUS, INT16 ) +GB_MONOID_GRB ( PLUS, INT32 ) +GB_MONOID_GRB ( PLUS, INT64 ) +GB_MONOID_GRB ( PLUS, UINT8 ) +GB_MONOID_GRB ( PLUS, UINT16 ) +GB_MONOID_GRB ( PLUS, UINT32 ) +GB_MONOID_GRB ( PLUS, UINT64 ) +GB_MONOID_GRB ( PLUS, FP32 ) +GB_MONOID_GRB ( PLUS, FP64 ) + +// TIMES monoids: +GB_MONOID_DEFT ( TIMES_INT8 , int8_t , 1 , 0) +GB_MONOID_DEFT ( TIMES_INT16 , int16_t , 1 , 0) +GB_MONOID_DEFT ( TIMES_INT32 , int32_t , 1 , 0) +GB_MONOID_DEFT ( TIMES_INT64 , int64_t , 1 , 0) +GB_MONOID_DEFT ( TIMES_UINT8 , uint8_t , 1 , 0) +GB_MONOID_DEFT ( TIMES_UINT16 , uint16_t , 1 , 0) +GB_MONOID_DEFT ( TIMES_UINT32 , uint32_t , 1 , 0) +GB_MONOID_DEFT ( TIMES_UINT64 , uint64_t , 1 , 0) +GB_MONOID_DEF ( TIMES_FP32 , float , 1 ) +GB_MONOID_DEF ( TIMES_FP64 , double , 1 ) +GB_MONOID_DEF ( TIMES_FC32 , GxB_FC32_t, GB_FC32_ONE ) +GB_MONOID_DEF ( TIMES_FC64 , GxB_FC64_t, GB_FC64_ONE ) + +GB_MONOID_GRB ( TIMES, INT8 ) +GB_MONOID_GRB ( TIMES, INT16 ) +GB_MONOID_GRB ( TIMES, INT32 ) +GB_MONOID_GRB ( TIMES, INT64 ) +GB_MONOID_GRB ( TIMES, UINT8 ) +GB_MONOID_GRB ( TIMES, UINT16 ) +GB_MONOID_GRB ( TIMES, UINT32 ) +GB_MONOID_GRB ( TIMES, UINT64 ) +GB_MONOID_GRB ( TIMES, FP32 ) +GB_MONOID_GRB ( TIMES, FP64 ) + +// ANY monoids: +GB_MONOID_DEFT ( ANY_INT8 , int8_t , 0 , 0) +GB_MONOID_DEFT ( ANY_INT16 , int16_t , 0 , 0) +GB_MONOID_DEFT ( ANY_INT32 , int32_t , 0 , 0) +GB_MONOID_DEFT ( ANY_INT64 , int64_t , 0 , 0) +GB_MONOID_DEFT ( ANY_UINT8 , uint8_t , 0 , 0) +GB_MONOID_DEFT ( ANY_UINT16 , uint16_t , 0 , 0) +GB_MONOID_DEFT ( ANY_UINT32 , uint32_t , 0 , 0) +GB_MONOID_DEFT ( ANY_UINT64 , uint64_t , 0 , 0) +GB_MONOID_DEFT ( ANY_FP32 , float , 0 , 0) +GB_MONOID_DEFT ( ANY_FP64 , double , 0 , 0) +GB_MONOID_DEFT ( ANY_FC32 , GxB_FC32_t, GB_FC32_ZERO, GB_FC32_ZERO) +GB_MONOID_DEFT ( ANY_FC64 , GxB_FC64_t, GB_FC64_ZERO, GB_FC64_ZERO) + +// Boolean monoids: +GB_MONOID_DEFT ( ANY_BOOL , bool , false , false) +GB_MONOID_DEFT ( LOR_BOOL , bool , false , true ) +GB_MONOID_DEFT ( LAND_BOOL , bool , true , false) +GB_MONOID_DEF ( LXOR_BOOL , bool , false ) +GB_MONOID_DEF ( EQ_BOOL , bool , true ) +// GrB_LXNOR_BOOL_MONIOD is the same as GrB_EQ_BOOL_MONIOD: +GrB_Monoid GxB_LXNOR_BOOL_MONOID = & GB_OPAQUE (EQ_BOOL_MONOID) ; + +GB_MONOID_GRB ( LOR , BOOL ) +GB_MONOID_GRB ( LAND , BOOL ) +GB_MONOID_GRB ( LXOR , BOOL ) +GrB_Monoid GrB_LXNOR_MONOID_BOOL = & GB_OPAQUE (EQ_BOOL_MONOID) ; + +// BOR monoids (bitwise or): +GB_MONOID_DEFT ( BOR_UINT8 , uint8_t , 0, 0xFF ) +GB_MONOID_DEFT ( BOR_UINT16 , uint16_t , 0, 0xFFFF ) +GB_MONOID_DEFT ( BOR_UINT32 , uint32_t , 0, 0xFFFFFFFF ) +GB_MONOID_DEFT ( BOR_UINT64 , uint64_t , 0, 0xFFFFFFFFFFFFFFFF ) + +// BAND monoids (bitwise and): +GB_MONOID_DEFT ( BAND_UINT8 , uint8_t , 0xFF , 0 ) +GB_MONOID_DEFT ( BAND_UINT16 , uint16_t , 0xFFFF , 0 ) +GB_MONOID_DEFT ( BAND_UINT32 , uint32_t , 0xFFFFFFFF , 0 ) +GB_MONOID_DEFT ( BAND_UINT64 , uint64_t , 0xFFFFFFFFFFFFFFFF, 0 ) + +// BXOR monoids (bitwise xor): +GB_MONOID_DEF ( BXOR_UINT8 , uint8_t , 0) +GB_MONOID_DEF ( BXOR_UINT16 , uint16_t , 0) +GB_MONOID_DEF ( BXOR_UINT32 , uint32_t , 0) +GB_MONOID_DEF ( BXOR_UINT64 , uint64_t , 0) + +// BXNOR monoids (bitwise xnor): +GB_MONOID_DEF ( BXNOR_UINT8 , uint8_t , 0xFF ) +GB_MONOID_DEF ( BXNOR_UINT16 , uint16_t , 0xFFFF ) +GB_MONOID_DEF ( BXNOR_UINT32 , uint32_t , 0xFFFFFFFF ) +GB_MONOID_DEF ( BXNOR_UINT64 , uint64_t , 0xFFFFFFFFFFFFFFFF ) + +//------------------------------------------------------------------------------ +// predefined built-in semirings +//------------------------------------------------------------------------------ + +#define GB_SEMIRING_NAME(add,mult) \ + GB_EVAL5 (add, _, mult, _, GB_XTYPE) + +// helper macro to define semirings: all x,y,z types the same +#define GXB_SEMIRING(add,mult) \ + struct GB_Semiring_opaque GB_OPAQUE (GB_SEMIRING_NAME(add, mult)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (GB_EVAL4 (add, _, GB_XTYPE, _MONOID)), \ + & GB_OPAQUE (GB_EVAL3 (mult, _, GB_XTYPE)), \ + NULL, 0, 0, 0 /* name, name_len, name_size, hash */ \ + } ; \ + GrB_Semiring GXB (GB_SEMIRING_NAME (add, mult)) = \ + & GB_OPAQUE (GB_SEMIRING_NAME (add, mult)) ; + +// helper macro to define semirings: x,y types the same, z boolean +#define GB_SEMIRING_COMPARE_DEFINE(add,mult) \ + struct GB_Semiring_opaque GB_OPAQUE (GB_SEMIRING_NAME(add, mult)) = \ + { \ + GB_MAGIC, 0, /* magic and header_size */ \ + NULL, 0, /* no user_name for GrB_get/GrB_set */ \ + & GB_OPAQUE (GB_EVAL2 (add, _BOOL_MONOID)), \ + & GB_OPAQUE (GB_EVAL3 (mult, _, GB_XTYPE)), \ + NULL, 0, 0, 0 /* name, name_len, name_size, hash */ \ + } ; + +#define GXB_SEMIRING_COMPARE(add,mult) \ + GB_SEMIRING_COMPARE_DEFINE (add, mult) \ + GrB_Semiring GXB (GB_SEMIRING_NAME (add, mult)) = \ + & GB_OPAQUE (GB_SEMIRING_NAME (add, mult)) ; + +#define GB_XTYPE BOOL +#define GB_BOOLEAN +#include "builtin/factory/GB_semiring_template.c" + +#define GB_XTYPE INT8 +#include "builtin/factory/GB_semiring_template.c" + +#define GB_XTYPE UINT8 +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_semiring_template.c" + +#define GB_XTYPE INT16 +#include "builtin/factory/GB_semiring_template.c" + +#define GB_XTYPE UINT16 +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_semiring_template.c" + +#define GB_XTYPE INT32 +#define GB_POSITIONAL +#include "builtin/factory/GB_semiring_template.c" + +#define GB_UNSIGNED_INT +#define GB_XTYPE UINT32 +#include "builtin/factory/GB_semiring_template.c" + +#define GB_POSITIONAL +#define GB_XTYPE INT64 +#include "builtin/factory/GB_semiring_template.c" + +#define GB_UNSIGNED_INT +#define GB_XTYPE UINT64 +#include "builtin/factory/GB_semiring_template.c" + +#define GB_XTYPE FP32 +#include "builtin/factory/GB_semiring_template.c" + +#define GB_XTYPE FP64 +#include "builtin/factory/GB_semiring_template.c" + +#define GB_COMPLEX +#define GB_XTYPE FC32 +#include "builtin/factory/GB_semiring_template.c" + +#define GB_COMPLEX +#define GB_XTYPE FC64 +#include "builtin/factory/GB_semiring_template.c" + +//------------------------------------------------------------------------------ +// 124 predefined built-in semirings in the v1.3 C API +//------------------------------------------------------------------------------ + +// These predefined semirings have been added to the spec, as of v1.3. +// They are identical to the GxB* semirings of the same name, except for +// GrB_LXNOR_LOR_SEMIRING_BOOL, which is identical to GxB_EQ_LOR_BOOL. + +#define GRB_SEMIRING(add,mult,xtype) \ +GrB_Semiring GRB (GB_EVAL5 (add, _, mult, _SEMIRING_, xtype)) = \ + & GB_OPAQUE (GB_EVAL5 (add, _, mult, _, xtype)) ; + + //-------------------------------------------------------------------------- + // 4 boolean semirings + //-------------------------------------------------------------------------- + + GRB_SEMIRING (LOR, LAND, BOOL) + GRB_SEMIRING (LAND, LOR, BOOL) + GRB_SEMIRING (LXOR, LAND, BOOL) + GrB_Semiring GRB (LXNOR_LOR_SEMIRING_BOOL) = & GB_OPAQUE (EQ_LOR_BOOL) ; + + //-------------------------------------------------------------------------- + // 20 semirings with PLUS monoids + //-------------------------------------------------------------------------- + + GRB_SEMIRING (PLUS, TIMES, INT8) + GRB_SEMIRING (PLUS, TIMES, INT16) + GRB_SEMIRING (PLUS, TIMES, INT32) + GRB_SEMIRING (PLUS, TIMES, INT64) + GRB_SEMIRING (PLUS, TIMES, UINT8) + GRB_SEMIRING (PLUS, TIMES, UINT16) + GRB_SEMIRING (PLUS, TIMES, UINT32) + GRB_SEMIRING (PLUS, TIMES, UINT64) + GRB_SEMIRING (PLUS, TIMES, FP32) + GRB_SEMIRING (PLUS, TIMES, FP64) + + GRB_SEMIRING (PLUS, MIN, INT8) + GRB_SEMIRING (PLUS, MIN, INT16) + GRB_SEMIRING (PLUS, MIN, INT32) + GRB_SEMIRING (PLUS, MIN, INT64) + GRB_SEMIRING (PLUS, MIN, UINT8) + GRB_SEMIRING (PLUS, MIN, UINT16) + GRB_SEMIRING (PLUS, MIN, UINT32) + GRB_SEMIRING (PLUS, MIN, UINT64) + GRB_SEMIRING (PLUS, MIN, FP32) + GRB_SEMIRING (PLUS, MIN, FP64) + + //-------------------------------------------------------------------------- + // 50 semirings with MIN monoids + //-------------------------------------------------------------------------- + + GRB_SEMIRING (MIN, PLUS, INT8) + GRB_SEMIRING (MIN, PLUS, INT16) + GRB_SEMIRING (MIN, PLUS, INT32) + GRB_SEMIRING (MIN, PLUS, INT64) + GRB_SEMIRING (MIN, PLUS, UINT8) + GRB_SEMIRING (MIN, PLUS, UINT16) + GRB_SEMIRING (MIN, PLUS, UINT32) + GRB_SEMIRING (MIN, PLUS, UINT64) + GRB_SEMIRING (MIN, PLUS, FP32) + GRB_SEMIRING (MIN, PLUS, FP64) + + GRB_SEMIRING (MIN, TIMES, INT8) + GRB_SEMIRING (MIN, TIMES, INT16) + GRB_SEMIRING (MIN, TIMES, INT32) + GRB_SEMIRING (MIN, TIMES, INT64) + GRB_SEMIRING (MIN, TIMES, UINT8) + GRB_SEMIRING (MIN, TIMES, UINT16) + GRB_SEMIRING (MIN, TIMES, UINT32) + GRB_SEMIRING (MIN, TIMES, UINT64) + GRB_SEMIRING (MIN, TIMES, FP32) + GRB_SEMIRING (MIN, TIMES, FP64) + + GRB_SEMIRING (MIN, FIRST, INT8) + GRB_SEMIRING (MIN, FIRST, INT16) + GRB_SEMIRING (MIN, FIRST, INT32) + GRB_SEMIRING (MIN, FIRST, INT64) + GRB_SEMIRING (MIN, FIRST, UINT8) + GRB_SEMIRING (MIN, FIRST, UINT16) + GRB_SEMIRING (MIN, FIRST, UINT32) + GRB_SEMIRING (MIN, FIRST, UINT64) + GRB_SEMIRING (MIN, FIRST, FP32) + GRB_SEMIRING (MIN, FIRST, FP64) + + GRB_SEMIRING (MIN, SECOND, INT8) + GRB_SEMIRING (MIN, SECOND, INT16) + GRB_SEMIRING (MIN, SECOND, INT32) + GRB_SEMIRING (MIN, SECOND, INT64) + GRB_SEMIRING (MIN, SECOND, UINT8) + GRB_SEMIRING (MIN, SECOND, UINT16) + GRB_SEMIRING (MIN, SECOND, UINT32) + GRB_SEMIRING (MIN, SECOND, UINT64) + GRB_SEMIRING (MIN, SECOND, FP32) + GRB_SEMIRING (MIN, SECOND, FP64) + + GRB_SEMIRING (MIN, MAX, INT8) + GRB_SEMIRING (MIN, MAX, INT16) + GRB_SEMIRING (MIN, MAX, INT32) + GRB_SEMIRING (MIN, MAX, INT64) + GRB_SEMIRING (MIN, MAX, UINT8) + GRB_SEMIRING (MIN, MAX, UINT16) + GRB_SEMIRING (MIN, MAX, UINT32) + GRB_SEMIRING (MIN, MAX, UINT64) + GRB_SEMIRING (MIN, MAX, FP32) + GRB_SEMIRING (MIN, MAX, FP64) + + //-------------------------------------------------------------------------- + // 50 semirings with MAX monoids + //-------------------------------------------------------------------------- + + GRB_SEMIRING (MAX, PLUS, INT8) + GRB_SEMIRING (MAX, PLUS, INT16) + GRB_SEMIRING (MAX, PLUS, INT32) + GRB_SEMIRING (MAX, PLUS, INT64) + GRB_SEMIRING (MAX, PLUS, UINT8) + GRB_SEMIRING (MAX, PLUS, UINT16) + GRB_SEMIRING (MAX, PLUS, UINT32) + GRB_SEMIRING (MAX, PLUS, UINT64) + GRB_SEMIRING (MAX, PLUS, FP32) + GRB_SEMIRING (MAX, PLUS, FP64) + + GRB_SEMIRING (MAX, TIMES, INT8) + GRB_SEMIRING (MAX, TIMES, INT16) + GRB_SEMIRING (MAX, TIMES, INT32) + GRB_SEMIRING (MAX, TIMES, INT64) + GRB_SEMIRING (MAX, TIMES, UINT8) + GRB_SEMIRING (MAX, TIMES, UINT16) + GRB_SEMIRING (MAX, TIMES, UINT32) + GRB_SEMIRING (MAX, TIMES, UINT64) + GRB_SEMIRING (MAX, TIMES, FP32) + GRB_SEMIRING (MAX, TIMES, FP64) + + GRB_SEMIRING (MAX, FIRST, INT8) + GRB_SEMIRING (MAX, FIRST, INT16) + GRB_SEMIRING (MAX, FIRST, INT32) + GRB_SEMIRING (MAX, FIRST, INT64) + GRB_SEMIRING (MAX, FIRST, UINT8) + GRB_SEMIRING (MAX, FIRST, UINT16) + GRB_SEMIRING (MAX, FIRST, UINT32) + GRB_SEMIRING (MAX, FIRST, UINT64) + GRB_SEMIRING (MAX, FIRST, FP32) + GRB_SEMIRING (MAX, FIRST, FP64) + + GRB_SEMIRING (MAX, SECOND, INT8) + GRB_SEMIRING (MAX, SECOND, INT16) + GRB_SEMIRING (MAX, SECOND, INT32) + GRB_SEMIRING (MAX, SECOND, INT64) + GRB_SEMIRING (MAX, SECOND, UINT8) + GRB_SEMIRING (MAX, SECOND, UINT16) + GRB_SEMIRING (MAX, SECOND, UINT32) + GRB_SEMIRING (MAX, SECOND, UINT64) + GRB_SEMIRING (MAX, SECOND, FP32) + GRB_SEMIRING (MAX, SECOND, FP64) + + GRB_SEMIRING (MAX, MIN, INT8) + GRB_SEMIRING (MAX, MIN, INT16) + GRB_SEMIRING (MAX, MIN, INT32) + GRB_SEMIRING (MAX, MIN, INT64) + GRB_SEMIRING (MAX, MIN, UINT8) + GRB_SEMIRING (MAX, MIN, UINT16) + GRB_SEMIRING (MAX, MIN, UINT32) + GRB_SEMIRING (MAX, MIN, UINT64) + GRB_SEMIRING (MAX, MIN, FP32) + GRB_SEMIRING (MAX, MIN, FP64) + +//------------------------------------------------------------------------------ +// GxB_CONTEXT_WORLD +//------------------------------------------------------------------------------ + +struct GB_Context_opaque GB_OPAQUE (CONTEXT_WORLD) = +{ + GB_MAGIC, // magic: initialized + 0, // header_size: statically allocated + NULL, 0, // no user_name for GrB_get/GrB_set + // revised by GxB_Context_get/set: + (double) GB_CHUNK_DEFAULT, // chunk + 1, // nthreads_max + -1, // gpu_id +} ; + +GxB_Context GxB_CONTEXT_WORLD = & GB_OPAQUE (CONTEXT_WORLD) ; + diff --git a/GraphBLAS/Source/builtin/GB_builtin.h b/GraphBLAS/Source/builtin/GB_builtin.h new file mode 100644 index 0000000000..aa0d64991a --- /dev/null +++ b/GraphBLAS/Source/builtin/GB_builtin.h @@ -0,0 +1,130 @@ +//------------------------------------------------------------------------------ +// GB_builtin.h: built-in unary and binary operators +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#ifdef __cplusplus +#error "not used for C++" +#endif + +#ifndef GB_OPS_H +#define GB_OPS_H + +//------------------------------------------------------------------------------ +// define all built-in unary and binary operators +//------------------------------------------------------------------------------ + +// nonzombie function for generic case +inline void GB_nonzombie_func (bool *z, const void *x, + int64_t i, GrB_Index j, const void *y) +{ + (*z) = (i >= 0) ; +} + +#define GB_FUNC_T(op,xtype) GB (GB_EVAL4 (_func_, op, _, xtype)) +#define GB_FUNC(op) GB_FUNC_T (op, GB_XTYPE) + +#define GB_TYPE bool +#define GB_XTYPE BOOL +#define GB_BITS 1 +#define GB_REAL +#define GB_BOOLEAN +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE int8_t +#define GB_XTYPE INT8 +#define GB_BITS 8 +#define GB_REAL +#define GB_SIGNED_INT +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE int16_t +#define GB_XTYPE INT16 +#define GB_BITS 16 +#define GB_REAL +#define GB_SIGNED_INT +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE int32_t +#define GB_XTYPE INT32 +#define GB_BITS 32 +#define GB_REAL +#define GB_SIGNED_INT +#define GB_SIGNED_INDEX +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE int64_t +#define GB_XTYPE INT64 +#define GB_BITS 64 +#define GB_REAL +#define GB_SIGNED_INT +#define GB_SIGNED_INDEX +#define GB_SIGNED_INDEX64 +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE uint8_t +#define GB_XTYPE UINT8 +#define GB_BITS 8 +#define GB_REAL +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE uint16_t +#define GB_XTYPE UINT16 +#define GB_BITS 16 +#define GB_REAL +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE uint32_t +#define GB_XTYPE UINT32 +#define GB_BITS 32 +#define GB_REAL +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE uint64_t +#define GB_XTYPE UINT64 +#define GB_BITS 64 +#define GB_REAL +#define GB_UNSIGNED_INT +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE float +#define GB_XTYPE FP32 +#define GB_BITS 32 +#define GB_REAL +#define GB_FLOATING_POINT +#define GB_FLOAT +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE double +#define GB_XTYPE FP64 +#define GB_BITS 64 +#define GB_REAL +#define GB_FLOATING_POINT +#define GB_DOUBLE +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE GxB_FC32_t +#define GB_XTYPE FC32 +#define GB_BITS 64 +#define GB_COMPLEX +#define GB_FLOATING_POINT +#define GB_FLOAT_COMPLEX +#include "builtin/factory/GB_builtin_template.h" + +#define GB_TYPE GxB_FC64_t +#define GB_XTYPE FC64 +#define GB_BITS 128 +#define GB_COMPLEX +#define GB_FLOATING_POINT +#define GB_DOUBLE_COMPLEX +#include "builtin/factory/GB_builtin_template.h" + +#endif + diff --git a/GraphBLAS/Source/builtin/factory/GB_builtin_template.c b/GraphBLAS/Source/builtin/factory/GB_builtin_template.c new file mode 100644 index 0000000000..30273c7e1a --- /dev/null +++ b/GraphBLAS/Source/builtin/factory/GB_builtin_template.c @@ -0,0 +1,321 @@ +//------------------------------------------------------------------------------ +// GB_builtin_template.c: built-in unary and binary functions and operators +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// This file is #include'd many times in GB_builtin.c to define the built-in +// unary and binary operators. In that file, GB_TYPE is a built-in C type +// (bool, int8_t, uint64_t, double, etc) for the inputs x and y, and GB_XTYPE +// is corresponding GraphBLAS type, without the prefix (BOOL, INT8, etc). + +//------------------------------------------------------------------------------ +// unary functions z=f(x) where z and x have the same type +//------------------------------------------------------------------------------ + +GXB_OP1 (ONE, "one") ; + +#if defined ( GB_COMPLEX ) + + // complex types + GXB_OP1 (IDENTITY , "identity" ) ; + GXB_OP1 (AINV , "ainv" ) ; + GXB_OP1 (MINV , "minv" ) ; + +#else + + // real types + GRB_OP1 (IDENTITY , "identity" ) ; + GRB_OP1 (AINV , "ainv" ) ; + GRB_OP1 (MINV , "minv" ) ; + + // z=abs(x), z and x have the same type + GRB_OP1 (ABS , "abs" ) ; + + // GxB_ABS_* is now GrB_ABS_*, and GxB_ABS_* is historical. + // The new name is preferred. The old name will be kept for historical + // compatibility. + GXB_OP1_RENAME (ABS) ; + + // LNOT is only defined for real types, not complex + GXB_OP1 (LNOT , "not" ) ; + +#endif + +#if defined ( GB_FLOATING_POINT ) + + GXB_OP1 (SQRT , "sqrt" ) ; + GXB_OP1 (LOG , "log" ) ; + GXB_OP1 (EXP , "exp" ) ; + + GXB_OP1 (SIN , "sin" ) ; + GXB_OP1 (COS , "cos" ) ; + GXB_OP1 (TAN , "tan" ) ; + + GXB_OP1 (ASIN , "asin" ) ; + GXB_OP1 (ACOS , "acos" ) ; + GXB_OP1 (ATAN , "atan" ) ; + + GXB_OP1 (SINH , "sinh" ) ; + GXB_OP1 (COSH , "cosh" ) ; + GXB_OP1 (TANH , "tanh" ) ; + + GXB_OP1 (ASINH , "asinh" ) ; + GXB_OP1 (ACOSH , "acosh" ) ; + GXB_OP1 (ATANH , "atanh" ) ; + + GXB_OP1 (SIGNUM , "signum" ) ; + GXB_OP1 (CEIL , "ceil" ) ; + GXB_OP1 (FLOOR , "floor" ) ; + GXB_OP1 (ROUND , "round" ) ; + GXB_OP1 (TRUNC , "trunc" ) ; + + GXB_OP1 (EXP2 , "exp2" ) ; + GXB_OP1 (EXPM1 , "expm1" ) ; + GXB_OP1 (LOG10 , "log10" ) ; + GXB_OP1 (LOG1P , "log1p" ) ; + GXB_OP1 (LOG2 , "log2" ) ; + + #if defined ( GB_COMPLEX ) + // complex only + GXB_OP1 (CONJ , "conj" ) ; + #else + // real only + GXB_OP1 (LGAMMA , "lgamma" ) ; + GXB_OP1 (TGAMMA , "tgamma" ) ; + GXB_OP1 (ERF , "erf" ) ; + GXB_OP1 (ERFC , "erfc" ) ; + GXB_OP1 (CBRT , "cbrt" ) ; + GXB_OP1 (FREXPX , "frexpx" ) ; + GXB_OP1 (FREXPE , "frexpe" ) ; + #endif + +#endif + +#if defined ( GB_SIGNED_INT ) || defined ( GB_UNSIGNED_INT ) + + // bitwise complement + GRB_OP1 (BNOT , "bnot" ) ; + +#endif + +//------------------------------------------------------------------------------ +// unary functions z=f(x) where z and x can have different types +//------------------------------------------------------------------------------ + +#if defined ( GB_FLOAT ) + + // z = f(x) where x is float, and z is bool + GXB_OP1z (ISINF , "isinf" , bool , BOOL ) ; + GXB_OP1z (ISNAN , "isnan" , bool , BOOL ) ; + GXB_OP1z (ISFINITE , "isfinite" , bool , BOOL ) ; + +#elif defined ( GB_DOUBLE ) + + // z = f(x) where x is double, and z is bool + GXB_OP1z (ISINF , "isinf" , bool , BOOL ) ; + GXB_OP1z (ISNAN , "isnan" , bool , BOOL ) ; + GXB_OP1z (ISFINITE , "isfinite" , bool , BOOL ) ; + +#elif defined ( GB_FLOAT_COMPLEX ) + + // z = f(x) where x is float complex, and the type of z is listed below: + GXB_OP1z (ABS , "abs" , float , FP32) ; + GXB_OP1z (ISINF , "isinf" , bool , BOOL) ; + GXB_OP1z (ISNAN , "isnan" , bool , BOOL) ; + GXB_OP1z (ISFINITE , "isfinite" , bool , BOOL ) ; + + GXB_OP1z (CREAL , "creal" , float , FP32) ; + GXB_OP1z (CIMAG , "cimag" , float , FP32) ; + GXB_OP1z (CARG , "carg" , float , FP32) ; + +#elif defined ( GB_DOUBLE_COMPLEX ) + + // z = f(x) where x is double complex, and the type of z is listed below: + GXB_OP1z (ABS , "abs" , double , FP64) ; + GXB_OP1z (ISINF , "isinf" , bool , BOOL) ; + GXB_OP1z (ISNAN , "isnan" , bool , BOOL) ; + GXB_OP1z (ISFINITE , "isfinite" , bool , BOOL ) ; + + GXB_OP1z (CREAL , "creal" , double , FP64) ; + GXB_OP1z (CIMAG , "cimag" , double , FP64) ; + GXB_OP1z (CARG , "carg" , double , FP64) ; + +#endif + +//------------------------------------------------------------------------------ +// binary functions z=f(x,y) where z, x, and y all have the same type +//------------------------------------------------------------------------------ + +GXB_OP2 (RMINUS , "rminus") ; +GXB_OP2 (RDIV , "rdiv" ) ; +GXB_OP2 (PAIR , "pair" ) ; +GXB_OP2 (ANY , "any" ) ; +GXB_OP2 (ISEQ , "iseq" ) ; +GXB_OP2 (ISNE , "isne" ) ; +GXB_OP2 (POW , "pow" ) ; + +#if defined ( GB_COMPLEX ) + + // complex types + GXB_OP2 (FIRST , "first" ) ; + GXB_OP2 (SECOND , "second") ; + GXB_OP2 (PLUS , "plus" ) ; + GXB_OP2 (MINUS , "minus" ) ; + GXB_OP2 (TIMES , "times" ) ; + GXB_OP2 (DIV , "div" ) ; + +#else + + // real types + GRB_OP2 (FIRST , "first" ) ; + GRB_OP2 (SECOND , "second") ; + GRB_OP2 (PLUS , "plus" ) ; + GRB_OP2 (MINUS , "minus" ) ; + GRB_OP2 (TIMES , "times" ) ; + GRB_OP2 (DIV , "div" ) ; + + GRB_OP2 (MIN , "min" ) ; + GRB_OP2 (MAX , "max" ) ; + + GXB_OP2 (LOR , "or" ) ; + GXB_OP2 (LAND , "and" ) ; + GXB_OP2 (LXOR , "xor" ) ; + + GXB_OP2 (ISGT , "isgt") ; + GXB_OP2 (ISLT , "islt") ; + GXB_OP2 (ISGE , "isge") ; + GXB_OP2 (ISLE , "isle") ; + +#endif + +#if defined (GB_FLOAT) || defined (GB_DOUBLE) + + // these operators are only defined for float and double + GXB_OP2 (ATAN2 , "atan2" ) ; + GXB_OP2 (HYPOT , "hypot" ) ; + GXB_OP2 (FMOD , "fmod" ) ; + GXB_OP2 (REMAINDER, "remainder") ; + GXB_OP2 (COPYSIGN , "copysign" ) ; + GXB_OP2 (LDEXP , "ldexp" ) ; + +#endif + +#if defined ( GB_SIGNED_INT ) || defined ( GB_UNSIGNED_INT ) + + // bitwise binary operators + GRB_OP2 (BOR , "bitor" ) ; + GRB_OP2 (BAND , "bitand" ) ; + GRB_OP2 (BXOR , "bitxor" ) ; + GRB_OP2 (BXNOR , "bitxnor" ) ; + + GXB_OP2 (BGET , "bitget" ) ; + GXB_OP2 (BSET , "bitset" ) ; + GXB_OP2 (BCLR , "bitclear" ) ; + + GXB_OP2shift (BSHIFT, "bitshift") ; + +#endif + +//------------------------------------------------------------------------------ +// binary functions z=f(x,y) where z, x, and y can have different types +//------------------------------------------------------------------------------ + +#if defined ( GB_FLOAT ) + + // z = cmplx(x,y) where z is float complex, x and y are float + GXB_OP2z (CMPLX, "cmplx", GxB_FC32_t, FC32) ; + +#endif + +#if defined ( GB_DOUBLE ) + + // z = cmplx(x,y) where z is double complex, x and y are double + GXB_OP2z (CMPLX, "cmplx", GxB_FC64_t, FC64) ; + +#endif + +#if defined ( GB_COMPLEX ) + + // complex types + GXB_OP2z (EQ, "eq", bool, BOOL) ; + GXB_OP2z (NE, "ne", bool, BOOL) ; + +#else + + // real types + GRB_OP2z (EQ, "eq", bool, BOOL) ; + GRB_OP2z (NE, "ne", bool, BOOL) ; + GRB_OP2z (GT, "gt", bool, BOOL) ; + GRB_OP2z (LT, "lt", bool, BOOL) ; + GRB_OP2z (LE, "le", bool, BOOL) ; + GRB_OP2z (GE, "ge", bool, BOOL) ; + +#endif + +//------------------------------------------------------------------------------ +// index_unary functions z=f(x,i,j,y) +//------------------------------------------------------------------------------ + +#if defined ( GB_SIGNED_INDEX ) + + // z = f (x, i, j, y) where z and y have type int32 or int64 + GRB_IDXOP_POSITIONAL (ROWINDEX, "rowindex" ) ; + GRB_IDXOP_POSITIONAL (COLINDEX, "colindex" ) ; + GRB_IDXOP_POSITIONAL (DIAGINDEX, "diagindex") ; + GXB_IDXOP_POSITIONAL (FLIPDIAGINDEX, "flipdiagindex") ; + +#endif + +#if defined ( GB_SIGNED_INDEX64 ) + + // z = f (x, i, j, y) where z is bool; y has type int64 only + GRB_IDXOP_POSITIONAL_BOOL (TRIL, "tril" ) ; + GRB_IDXOP_POSITIONAL_BOOL (TRIU, "triu" ) ; + GRB_IDXOP_POSITIONAL_BOOL (DIAG, "diag" ) ; + GRB_IDXOP_POSITIONAL_BOOL (OFFDIAG, "offdiag" ) ; + GRB_IDXOP_POSITIONAL_BOOL (COLLE, "colle" ) ; + GRB_IDXOP_POSITIONAL_BOOL (COLGT, "colgt" ) ; + GRB_IDXOP_POSITIONAL_BOOL (ROWLE, "rowle" ) ; + GRB_IDXOP_POSITIONAL_BOOL (ROWGT, "rowgt" ) ; + +#endif + +#if defined ( GB_COMPLEX ) + + // z = f (x, i, j, y) where z is bool; y is complex + GXB_IDXOP_VALUE (VALUEEQ, "valueeq") ; + GXB_IDXOP_VALUE (VALUENE, "valuene") ; + +#else + + // z = f (x, i, j, y) where z is bool; y is real + GRB_IDXOP_VALUE (VALUEEQ, "valueeq") ; + GRB_IDXOP_VALUE (VALUENE, "valuene") ; + GRB_IDXOP_VALUE (VALUELT, "valuelt") ; + GRB_IDXOP_VALUE (VALUELE, "valuele") ; + GRB_IDXOP_VALUE (VALUEGT, "valuegt") ; + GRB_IDXOP_VALUE (VALUEGE, "valuege") ; + +#endif + +//------------------------------------------------------------------------------ +// clear macros for next use of this file +//------------------------------------------------------------------------------ + +#undef GB_TYPE +#undef GB_XTYPE +#undef GB_FLOATING_POINT +#undef GB_COMPLEX +#undef GB_FLOAT +#undef GB_DOUBLE +#undef GB_FLOAT_COMPLEX +#undef GB_DOUBLE_COMPLEX +#undef GB_SIGNED_INT +#undef GB_UNSIGNED_INT +#undef GB_SIGNED_INDEX +#undef GB_SIGNED_INDEX64 + diff --git a/GraphBLAS/Source/builtin/factory/GB_builtin_template.h b/GraphBLAS/Source/builtin/factory/GB_builtin_template.h new file mode 100644 index 0000000000..281463a074 --- /dev/null +++ b/GraphBLAS/Source/builtin/factory/GB_builtin_template.h @@ -0,0 +1,1252 @@ +//------------------------------------------------------------------------------ +// GB_builtin_template.h: define the unary and binary functions and operators +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// This file is #include'd many times in GB_builtin.h to define the unary and +// binary functions. + +#define GB_UNOP_STRUCT(op,xtype) \ + GB_GLOBAL struct GB_UnaryOp_opaque GB_OPAQUE (GB_EVAL3 (op, _, xtype)) + +#define GB_BINOP_STRUCT(op,xtype) \ + GB_GLOBAL struct GB_BinaryOp_opaque GB_OPAQUE (GB_EVAL3 (op, _, xtype)) + +#define GB_IDXOP_STRUCT(op,xtype) \ + GB_GLOBAL struct GB_IndexUnaryOp_opaque \ + GB_OPAQUE (GB_EVAL3 (op, _, xtype)) + +//------------------------------------------------------------------------------ +// z = one (x) +//------------------------------------------------------------------------------ + +GB_UNOP_STRUCT (ONE,GB_XTYPE) ; +inline void GB_FUNC (ONE) (GB_TYPE *z, const GB_TYPE *x) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GxB_CMPLXF (1,0) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GxB_CMPLX (1,0) ; + #else + (*z) = ((GB_TYPE) 1) ; + #endif +} + +//------------------------------------------------------------------------------ +// z = identity (x) +//------------------------------------------------------------------------------ + +GB_UNOP_STRUCT (IDENTITY, GB_XTYPE) ; +inline void GB_FUNC (IDENTITY) (GB_TYPE *z, const GB_TYPE *x) +{ + (*z) = (*x) ; +} + +//------------------------------------------------------------------------------ +// z = ainv (x) +//------------------------------------------------------------------------------ + +GB_UNOP_STRUCT (AINV, GB_XTYPE) ; +inline void GB_FUNC (AINV) (GB_TYPE *z, const GB_TYPE *x) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_ainv (*x) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_ainv (*x) ; + #elif defined ( GB_BOOLEAN ) + (*z) = (*x) ; + #else + // integer (signed or unsigned). unsigned int remains unsigned. + (*z) = -(*x) ; + #endif +} + +//------------------------------------------------------------------------------ +// z = minv (x) +//------------------------------------------------------------------------------ + +GB_UNOP_STRUCT (MINV, GB_XTYPE) ; +inline void GB_FUNC (MINV) (GB_TYPE *z, const GB_TYPE *x) +{ + #if defined ( GB_BOOLEAN ) + (*z) = true ; + #elif defined ( GB_SIGNED_INT ) + #if ( GB_BITS == 8) + (*z) = GB_idiv_int8 (1, (*x)) ; + #elif ( GB_BITS == 16) + (*z) = GB_idiv_int16 (1, (*x)) ; + #elif ( GB_BITS == 32) + (*z) = GB_idiv_int32 (1, (*x)) ; + #elif ( GB_BITS == 64) + (*z) = GB_idiv_int64 (1, (*x)) ; + #endif + #elif defined ( GB_UNSIGNED_INT ) + #if ( GB_BITS == 8) + (*z) = GB_idiv_uint8 (1, (*x)) ; + #elif ( GB_BITS == 16) + (*z) = GB_idiv_uint16 (1, (*x)) ; + #elif ( GB_BITS == 32) + (*z) = GB_idiv_uint32 (1, (*x)) ; + #elif ( GB_BITS == 64) + (*z) = GB_idiv_uint64 (1, (*x)) ; + #endif + #elif defined ( GB_FLOAT ) + (*z) = 1 / (*x) ; + #elif defined ( GB_DOUBLE ) + (*z) = 1 / (*x) ; + #elif defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_div (GxB_CMPLXF (1,0), *x) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_div (GxB_CMPLX (1,0), *x) ; + #endif +} + +//------------------------------------------------------------------------------ +// z = abs (x) +//------------------------------------------------------------------------------ + +GB_UNOP_STRUCT (ABS, GB_XTYPE) ; + +#if defined ( GB_REAL ) + + // GrB_ABS_* for non-complex types + inline void GB_FUNC (ABS) (GB_TYPE *z, const GB_TYPE *x) + { + #if defined ( GB_BOOLEAN ) + (*z) = (*x) ; + #elif defined ( GB_SIGNED_INT ) + (*z) = GB_IABS ((*x)) ; + #elif defined ( GB_UNSIGNED_INT ) + (*z) = (*x) ; + #elif defined ( GB_FLOAT ) + (*z) = fabsf (*x) ; + #elif defined ( GB_DOUBLE ) + (*z) = fabs (*x) ; + #endif + } + +#else + + // GxB_ABS_FC* for complex types + #if defined ( GB_FLOAT_COMPLEX ) + inline void GB_FUNC (ABS) (float *z, const GB_TYPE *x) + { + (*z) = GB_cabsf (*x) ; + } + #else + inline void GB_FUNC (ABS) (double *z, const GB_TYPE *x) + { + (*z) = GB_cabs (*x) ; + } + #endif + +#endif + +//------------------------------------------------------------------------------ +// z = lnot (x), for real types only +//------------------------------------------------------------------------------ + +#if defined ( GB_REAL ) + + GB_UNOP_STRUCT (LNOT, GB_XTYPE) ; + inline void GB_FUNC (LNOT) (GB_TYPE *z, const GB_TYPE *x) + { + #if defined ( GB_BOOLEAN ) + (*z) = ! (*x) ; + #else + (*z) = ! ((*x) != 0) ; + #endif + } + +#endif + +//------------------------------------------------------------------------------ +// z = bnot (x), bitwise complement, for integer types only +//------------------------------------------------------------------------------ + +#if defined ( GB_SIGNED_INT ) || defined ( GB_UNSIGNED_INT ) + + GB_UNOP_STRUCT (BNOT, GB_XTYPE) ; + inline void GB_FUNC (BNOT) (GB_TYPE *z, const GB_TYPE *x) + { + (*z) = ~ (*x) ; + } + +#endif + +//------------------------------------------------------------------------------ +// z = frexpx (x) and z = frexpe (x) +//------------------------------------------------------------------------------ + +#if defined ( GB_FLOAT ) + + GB_UNOP_STRUCT (FREXPX, GB_XTYPE) ; + inline void GB_FUNC (FREXPX) (float *z, const float *x) + { + (*z) = GB_frexpxf (*x) ; + } + + GB_UNOP_STRUCT (FREXPE, GB_XTYPE) ; + inline void GB_FUNC (FREXPE) (float *z, const float *x) + { + (*z) = GB_frexpef (*x) ; + } + +#elif defined ( GB_DOUBLE ) + + GB_UNOP_STRUCT (FREXPX, GB_XTYPE) ; + inline void GB_FUNC (FREXPX) (double *z, const double *x) + { + (*z) = GB_frexpx (*x) ; + } + + GB_UNOP_STRUCT (FREXPE, GB_XTYPE) ; + inline void GB_FUNC (FREXPE) (double *z, const double *x) + { + (*z) = GB_frexpe (*x) ; + } + +#endif + +//------------------------------------------------------------------------------ +// unary operators for floating-point types +//------------------------------------------------------------------------------ + +// For these operators, the input and output types are the same. + +#undef GB_OP +#define GB_OP(op,func) \ + GB_UNOP_STRUCT (op, GB_XTYPE) ; \ + inline void GB_FUNC (op) (GB_TYPE *z, const GB_TYPE *x) \ + { \ + (*z) = func (*x) ; \ + } + +#if defined ( GB_FLOAT ) + + //-------------------------------------------------------------------------- + // float + //-------------------------------------------------------------------------- + + GB_OP (SQRT , sqrtf ) + GB_OP (LOG , logf ) + GB_OP (EXP , expf ) + + GB_OP (SIN , sinf ) + GB_OP (COS , cosf ) + GB_OP (TAN , tanf ) + + GB_OP (ASIN , asinf ) + GB_OP (ACOS , acosf ) + GB_OP (ATAN , atanf ) + + GB_OP (SINH , sinhf ) + GB_OP (COSH , coshf ) + GB_OP (TANH , tanhf ) + + GB_OP (ASINH , asinhf ) + GB_OP (ACOSH , acoshf ) + GB_OP (ATANH , atanhf ) + + GB_OP (SIGNUM, GB_signumf ) + GB_OP (CEIL , ceilf ) + GB_OP (FLOOR , floorf ) + GB_OP (ROUND , roundf ) + GB_OP (TRUNC , truncf ) + + GB_OP (EXP2 , exp2f ) + GB_OP (EXPM1 , expm1f ) + GB_OP (LOG10 , log10f ) + GB_OP (LOG1P , log1pf ) + GB_OP (LOG2 , log2f ) + + // real only + GB_OP (LGAMMA, lgammaf ) + GB_OP (TGAMMA, tgammaf ) + GB_OP (ERF , erff ) + GB_OP (ERFC , erfcf ) + GB_OP (CBRT , cbrtf ) + +#elif defined ( GB_DOUBLE ) + + //-------------------------------------------------------------------------- + // double + //-------------------------------------------------------------------------- + + GB_OP (SQRT , sqrt ) + GB_OP (LOG , log ) + GB_OP (EXP , exp ) + + GB_OP (SIN , sin ) + GB_OP (COS , cos ) + GB_OP (TAN , tan ) + + GB_OP (ASIN , asin ) + GB_OP (ACOS , acos ) + GB_OP (ATAN , atan ) + + GB_OP (SINH , sinh ) + GB_OP (COSH , cosh ) + GB_OP (TANH , tanh ) + + GB_OP (ASINH , asinh ) + GB_OP (ACOSH , acosh ) + GB_OP (ATANH , atanh ) + + GB_OP (SIGNUM, GB_signum ) + GB_OP (CEIL , ceil ) + GB_OP (FLOOR , floor ) + GB_OP (ROUND , round ) + GB_OP (TRUNC , trunc ) + + GB_OP (EXP2 , exp2 ) + GB_OP (EXPM1 , expm1 ) + GB_OP (LOG10 , log10 ) + GB_OP (LOG1P , log1p ) + GB_OP (LOG2 , log2 ) + + // real only + GB_OP (LGAMMA, lgamma ) + GB_OP (TGAMMA, tgamma ) + GB_OP (ERF , erf ) + GB_OP (ERFC , erfc ) + GB_OP (CBRT , cbrt ) + +#elif defined ( GB_FLOAT_COMPLEX ) + + //-------------------------------------------------------------------------- + // float complex + //-------------------------------------------------------------------------- + + GB_OP (SQRT , GB_csqrtf ) + GB_OP (LOG , GB_clogf ) + GB_OP (EXP , GB_cexpf ) + + GB_OP (SIN , GB_csinf ) + GB_OP (COS , GB_ccosf ) + GB_OP (TAN , GB_ctanf ) + + GB_OP (ASIN , GB_casinf ) + GB_OP (ACOS , GB_cacosf ) + GB_OP (ATAN , GB_catanf ) + + GB_OP (SINH , GB_csinhf ) + GB_OP (COSH , GB_ccoshf ) + GB_OP (TANH , GB_ctanhf ) + + GB_OP (ASINH , GB_casinhf ) + GB_OP (ACOSH , GB_cacoshf ) + GB_OP (ATANH , GB_catanhf ) + + GB_OP (SIGNUM, GB_csignumf ) + GB_OP (CEIL , GB_cceilf ) + GB_OP (FLOOR , GB_cfloorf ) + GB_OP (ROUND , GB_croundf ) + GB_OP (TRUNC , GB_ctruncf ) + + GB_OP (EXP2 , GB_cexp2f ) + GB_OP (EXPM1 , GB_cexpm1f ) + GB_OP (LOG10 , GB_clog10f ) + GB_OP (LOG1P , GB_clog1pf ) + GB_OP (LOG2 , GB_clog2f ) + + GB_OP (CONJ , GB_conjf ) + +#elif defined ( GB_DOUBLE_COMPLEX ) + + //-------------------------------------------------------------------------- + // double complex + //-------------------------------------------------------------------------- + + GB_OP (SQRT , GB_csqrt ) + GB_OP (LOG , GB_clog ) + GB_OP (EXP , GB_cexp ) + + GB_OP (SIN , GB_csin ) + GB_OP (COS , GB_ccos ) + GB_OP (TAN , GB_ctan ) + + GB_OP (ASIN , GB_casin ) + GB_OP (ACOS , GB_cacos ) + GB_OP (ATAN , GB_catan ) + + GB_OP (SINH , GB_csinh ) + GB_OP (COSH , GB_ccosh ) + GB_OP (TANH , GB_ctanh ) + + GB_OP (ASINH , GB_casinh ) + GB_OP (ACOSH , GB_cacosh ) + GB_OP (ATANH , GB_catanh ) + + GB_OP (SIGNUM, GB_csignum ) + GB_OP (CEIL , GB_cceil ) + GB_OP (FLOOR , GB_cfloor ) + GB_OP (ROUND , GB_cround ) + GB_OP (TRUNC , GB_ctrunc ) + + GB_OP (EXP2 , GB_cexp2 ) + GB_OP (EXPM1 , GB_cexpm1 ) + GB_OP (LOG10 , GB_clog10 ) + GB_OP (LOG1P , GB_clog1p ) + GB_OP (LOG2 , GB_clog2 ) + + GB_OP (CONJ , GB_conj ) + +#endif + +//------------------------------------------------------------------------------ +// unary operators z=f(x) where z and x have different types +//------------------------------------------------------------------------------ + +// x is float, double, float complex, or double complex + +#undef GB_OP +#define GB_OP(op,expression,z_t,x_t) \ + GB_UNOP_STRUCT(op, GB_XTYPE) ; \ + inline void GB_FUNC (op) (z_t *z, const x_t *x) \ + { \ + (*z) = expression ; \ + } + +#if defined ( GB_FLOAT ) + + GB_OP (ISINF , (isinf (*x)) , bool, float) + GB_OP (ISNAN , (isnan (*x)) , bool, float) + GB_OP (ISFINITE , (isfinite (*x)) , bool, float) + +#elif defined ( GB_DOUBLE ) + + GB_OP (ISINF , (isinf (*x)) , bool, double) + GB_OP (ISNAN , (isnan (*x)) , bool, double) + GB_OP (ISFINITE , (isfinite (*x)) , bool, double) + +#elif defined ( GB_FLOAT_COMPLEX ) + + GB_OP (ISINF , GB_cisinff (*x) , bool, GxB_FC32_t) + GB_OP (ISNAN , GB_cisnanf (*x) , bool, GxB_FC32_t) + GB_OP (ISFINITE , GB_cisfinitef (*x), bool, GxB_FC32_t) + + // complex only + GB_OP (CREAL , GB_crealf (*x), float, GxB_FC32_t) + GB_OP (CIMAG , GB_cimagf (*x), float, GxB_FC32_t) + GB_OP (CARG , GB_cargf (*x), float, GxB_FC32_t) + +#elif defined ( GB_DOUBLE_COMPLEX ) + + GB_OP (ISINF , GB_cisinf (*x) , bool, GxB_FC64_t) + GB_OP (ISNAN , GB_cisnan (*x) , bool, GxB_FC64_t) + GB_OP (ISFINITE , GB_cisfinite (*x) , bool, GxB_FC64_t) + + // complex only + GB_OP (CREAL , GB_creal (*x), double, GxB_FC64_t) + GB_OP (CIMAG , GB_cimag (*x), double, GxB_FC64_t) + GB_OP (CARG , GB_carg (*x), double, GxB_FC64_t) + +#endif + +//------------------------------------------------------------------------------ +// binary functions z=f(x,y) where x,y,z have the same type, for all types +//------------------------------------------------------------------------------ + +// first, second, pair, any, plus, minus, rminus, times, div, rdiv, pow + +#define GB_Z_X_Y_ARGS GB_TYPE *z, const GB_TYPE *x, const GB_TYPE *y + +GB_BINOP_STRUCT (FIRST, GB_XTYPE) ; +inline void GB_FUNC (FIRST) (GB_Z_X_Y_ARGS) +{ + (*z) = (*x) ; +} + +GB_BINOP_STRUCT (SECOND, GB_XTYPE) ; +inline void GB_FUNC (SECOND) (GB_Z_X_Y_ARGS) +{ + (*z) = (*y) ; +} + +GB_BINOP_STRUCT (PAIR, GB_XTYPE) ; +inline void GB_FUNC (PAIR) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GxB_CMPLXF (1, 0) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GxB_CMPLX (1, 0) ; + #else + (*z) = 1 ; + #endif +} + +GB_BINOP_STRUCT (ANY, GB_XTYPE) ; +inline void GB_FUNC (ANY) (GB_Z_X_Y_ARGS) // same as SECOND +{ + (*z) = (*y) ; +} + +GB_BINOP_STRUCT (PLUS, GB_XTYPE) ; +inline void GB_FUNC (PLUS) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_add (*x,*y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_add (*x,*y) ; + #else + (*z) = (*x) + (*y) ; + #endif +} + +GB_BINOP_STRUCT (MINUS, GB_XTYPE) ; +inline void GB_FUNC (MINUS) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_minus (*x,*y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_minus (*x,*y) ; + #else + (*z) = (*x) - (*y) ; + #endif +} + +GB_BINOP_STRUCT (RMINUS, GB_XTYPE) ; +inline void GB_FUNC (RMINUS) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_minus (*y,*x) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_minus (*y,*x) ; + #else + (*z) = (*y) - (*x) ; + #endif +} + +GB_BINOP_STRUCT (TIMES, GB_XTYPE) ; +inline void GB_FUNC (TIMES) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_mul (*x,*y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_mul (*x,*y) ; + #else + (*z) = (*x) * (*y) ; + #endif +} + +GB_BINOP_STRUCT (DIV, GB_XTYPE) ; +inline void GB_FUNC (DIV) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_BOOLEAN ) + // boolean div (== first) + (*z) = (*x) ; + #elif defined ( GB_SIGNED_INT ) + #if ( GB_BITS == 8) + (*z) = GB_idiv_int8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_idiv_int16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_idiv_int32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_idiv_int64 ((*x), (*y)) ; + #endif + #elif defined ( GB_UNSIGNED_INT ) + #if ( GB_BITS == 8) + (*z) = GB_idiv_uint8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_idiv_uint16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_idiv_uint32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_idiv_uint64 ((*x), (*y)) ; + #endif + #elif defined ( GB_FLOAT ) || defined ( GB_DOUBLE ) + (*z) = (*x) / (*y) ; + #elif defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_div (*x, *y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_div (*x, *y) ; + #endif +} + +GB_BINOP_STRUCT (RDIV, GB_XTYPE) ; +inline void GB_FUNC (RDIV) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_BOOLEAN ) + // boolean rdiv (== second) + (*z) = (*y) ; + #elif defined ( GB_SIGNED_INT ) + #if ( GB_BITS == 8) + (*z) = GB_idiv_int8 ((*y), (*x)) ; + #elif ( GB_BITS == 16) + (*z) = GB_idiv_int16 ((*y), (*x)) ; + #elif ( GB_BITS == 32) + (*z) = GB_idiv_int32 ((*y), (*x)) ; + #elif ( GB_BITS == 64) + (*z) = GB_idiv_int64 ((*y), (*x)) ; + #endif + #elif defined ( GB_UNSIGNED_INT ) + #if ( GB_BITS == 8) + (*z) = GB_idiv_uint8 ((*y), (*x)) ; + #elif ( GB_BITS == 16) + (*z) = GB_idiv_uint16 ((*y), (*x)) ; + #elif ( GB_BITS == 32) + (*z) = GB_idiv_uint32 ((*y), (*x)) ; + #elif ( GB_BITS == 64) + (*z) = GB_idiv_uint64 ((*y), (*x)) ; + #endif + #elif defined ( GB_FLOAT ) || defined ( GB_DOUBLE ) + (*z) = (*y) / (*x) ; + #elif defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_div (*y, *x) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_div (*y, *x) ; + #endif +} + +// z = pow (x,y) +GB_BINOP_STRUCT (POW, GB_XTYPE) ; +inline void GB_FUNC (POW) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_BOOLEAN ) + (*z) = (*x) || (!(*y)) ; + #elif defined ( GB_SIGNED_INT ) + #if ( GB_BITS == 8) + (*z) = GB_pow_int8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_pow_int16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_pow_int32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_pow_int64 ((*x), (*y)) ; + #endif + #elif defined ( GB_UNSIGNED_INT ) + #if ( GB_BITS == 8) + (*z) = GB_pow_uint8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_pow_uint16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_pow_uint32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_pow_uint64 ((*x), (*y)) ; + #endif + #elif defined ( GB_FLOAT ) + (*z) = GB_powf ((*x), (*y)) ; + #elif defined ( GB_DOUBLE ) + (*z) = GB_pow ((*x), (*y)) ; + #elif defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_pow ((*x), (*y)) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_pow ((*x), (*y)) ; + #endif +} + +//------------------------------------------------------------------------------ +// binary operators for real types only +//------------------------------------------------------------------------------ + +// min and max: real only, not complex +#if defined ( GB_REAL ) + + GB_BINOP_STRUCT (MIN, GB_XTYPE) ; + inline void GB_FUNC (MIN) (GB_Z_X_Y_ARGS) + { + #if defined ( GB_FLOAT ) + (*z) = fminf ((*x), (*y)) ; + #elif defined ( GB_DOUBLE ) + (*z) = fmin ((*x), (*y)) ; + #else + (*z) = GB_IMIN ((*x), (*y)) ; + #endif + } + + GB_BINOP_STRUCT (MAX, GB_XTYPE) ; + inline void GB_FUNC (MAX) (GB_Z_X_Y_ARGS) + { + #if defined ( GB_FLOAT ) + (*z) = fmaxf ((*x), (*y)) ; + #elif defined ( GB_DOUBLE ) + (*z) = fmax ((*x), (*y)) ; + #else + (*z) = GB_IMAX ((*x), (*y)) ; + #endif + } + +#endif + +//------------------------------------------------------------------------------ +// binary operators for integer types only +//------------------------------------------------------------------------------ + +#if defined ( GB_SIGNED_INT ) || defined ( GB_UNSIGNED_INT ) + + GB_BINOP_STRUCT (BOR, GB_XTYPE) ; + inline void GB_FUNC (BOR ) (GB_Z_X_Y_ARGS) { (*z) = (*x) | (*y) ; } + + GB_BINOP_STRUCT (BAND, GB_XTYPE) ; + inline void GB_FUNC (BAND ) (GB_Z_X_Y_ARGS) { (*z) = (*x) & (*y) ; } + + GB_BINOP_STRUCT (BXOR, GB_XTYPE) ; + inline void GB_FUNC (BXOR ) (GB_Z_X_Y_ARGS) { (*z) = (*x) ^ (*y) ; } + + GB_BINOP_STRUCT (BXNOR, GB_XTYPE) ; + inline void GB_FUNC (BXNOR) (GB_Z_X_Y_ARGS) { (*z) = ~((*x) ^ (*y)) ; } + + GB_BINOP_STRUCT (BGET, GB_XTYPE) ; + inline void GB_FUNC (BGET) (GB_Z_X_Y_ARGS) + { + // bitget (x,y) returns a single bit from x, as 0 or 1, whose position + // is given by y. y = 1 is the least significant bit, and y = GB_BITS + // (64 for uint64) is the most significant bit. If y is outside this + // range, the result is zero. + + #if defined ( GB_SIGNED_INT ) + + #if ( GB_BITS == 8) + (*z) = GB_bitget_int8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_bitget_int16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_bitget_int32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_bitget_int64 ((*x), (*y)) ; + #endif + + #elif defined ( GB_UNSIGNED_INT ) + + #if ( GB_BITS == 8) + (*z) = GB_bitget_uint8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_bitget_uint16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_bitget_uint32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_bitget_uint64 ((*x), (*y)) ; + #endif + + #endif + } + + GB_BINOP_STRUCT (BSET, GB_XTYPE) ; + inline void GB_FUNC (BSET) (GB_Z_X_Y_ARGS) + { + // bitset (x,y) returns x modified by setting a bit from x to 1, whose + // position is given by y. If y is in the range 1 to GB_BITS, then y + // gives the position of the bit to set. If y is outside the range 1 + // to GB_BITS, then z = x is returned, unmodified. + + #if defined ( GB_SIGNED_INT ) + + #if ( GB_BITS == 8) + (*z) = GB_bitset_int8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_bitset_int16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_bitset_int32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_bitset_int64 ((*x), (*y)) ; + #endif + + #elif defined ( GB_UNSIGNED_INT ) + + #if ( GB_BITS == 8) + (*z) = GB_bitset_uint8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_bitset_uint16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_bitset_uint32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_bitset_uint64 ((*x), (*y)) ; + #endif + + #endif + } + + GB_BINOP_STRUCT (BCLR, GB_XTYPE) ; + inline void GB_FUNC (BCLR) (GB_Z_X_Y_ARGS) + { + // bitclr (x,y) returns x modified by setting a bit from x to 0, whose + // position is given by y. If y is in the range 1 to GB_BITS, then y + // gives the position of the bit to clear. If y is outside the range 1 + // to GB_BITS, then z = x is returned, unmodified. + + #if defined ( GB_SIGNED_INT ) + + #if ( GB_BITS == 8) + (*z) = GB_bitclr_int8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_bitclr_int16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_bitclr_int32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_bitclr_int64 ((*x), (*y)) ; + #endif + + #elif defined ( GB_UNSIGNED_INT ) + + #if ( GB_BITS == 8) + (*z) = GB_bitclr_uint8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_bitclr_uint16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_bitclr_uint32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_bitclr_uint64 ((*x), (*y)) ; + #endif + + #endif + } + + + // z = bitshift (x,y) + GB_BINOP_STRUCT (BSHIFT, GB_XTYPE) ; + inline void GB_FUNC (BSHIFT) (GB_TYPE *z, const GB_TYPE *x, const int8_t *y) + { + // bitshift (x,k) shifts x to the left by k bits if k > 0, and the + // right by -k bits if k < 0. + + #if defined ( GB_SIGNED_INT ) + + #if ( GB_BITS == 8) + (*z) = GB_bitshift_int8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_bitshift_int16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_bitshift_int32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_bitshift_int64 ((*x), (*y)) ; + #endif + + #elif defined ( GB_UNSIGNED_INT ) + + #if ( GB_BITS == 8) + (*z) = GB_bitshift_uint8 ((*x), (*y)) ; + #elif ( GB_BITS == 16) + (*z) = GB_bitshift_uint16 ((*x), (*y)) ; + #elif ( GB_BITS == 32) + (*z) = GB_bitshift_uint32 ((*x), (*y)) ; + #elif ( GB_BITS == 64) + (*z) = GB_bitshift_uint64 ((*x), (*y)) ; + #endif + + #endif + } + +#endif + +//------------------------------------------------------------------------------ +// binary operators for real floating-point inputs only +//------------------------------------------------------------------------------ + +#if defined ( GB_FLOAT ) + + inline void GB_FUNC (ATAN2) (GB_Z_X_Y_ARGS) { (*z) = atan2f ((*x),(*y)) ; } + inline void GB_FUNC (HYPOT) (GB_Z_X_Y_ARGS) { (*z) = hypotf ((*x),(*y)) ; } + inline void GB_FUNC (FMOD) (GB_Z_X_Y_ARGS) { (*z) = fmodf ((*x),(*y)) ; } + + inline void GB_FUNC (REMAINDER) (GB_Z_X_Y_ARGS) + { + (*z) = remainderf ((*x),(*y)) ; + } + inline void GB_FUNC (COPYSIGN) (GB_Z_X_Y_ARGS) + { + (*z) = copysignf ((*x),(*y)) ; + } + inline void GB_FUNC (LDEXP) (GB_Z_X_Y_ARGS) + { + (*z) = ldexpf ((*x), (int) truncf (*y)) ; + } + inline void GB_FUNC (CMPLX) (GxB_FC32_t *z, const float *x, const float *y) + { + #if defined ( __cplusplus ) || defined (GxB_HAVE_COMPLEX_MSVC) || defined (CMPLX) + (*z) = GxB_CMPLXF ((*x),(*y)) ; + #else + ((float *) z) [0] = (*x) ; + ((float *) z) [1] = (*y) ; + #endif + } + +#elif defined ( GB_DOUBLE ) + + inline void GB_FUNC (ATAN2) (GB_Z_X_Y_ARGS) { (*z) = atan2 ((*x),(*y)) ; } + inline void GB_FUNC (HYPOT) (GB_Z_X_Y_ARGS) { (*z) = hypot ((*x),(*y)) ; } + inline void GB_FUNC (FMOD) (GB_Z_X_Y_ARGS) { (*z) = fmod ((*x),(*y)) ; } + + inline void GB_FUNC (REMAINDER) (GB_Z_X_Y_ARGS) + { + (*z) = remainder ((*x),(*y)) ; + } + inline void GB_FUNC (COPYSIGN) (GB_Z_X_Y_ARGS) + { + (*z) = copysign ((*x),(*y)) ; + } + inline void GB_FUNC (LDEXP) (GB_Z_X_Y_ARGS) + { + (*z) = ldexp ((*x), (int) trunc (*y)) ; + } + inline void GB_FUNC (CMPLX) (GxB_FC64_t *z, + const double *x, const double *y) + { + #if defined ( __cplusplus ) || defined (GxB_HAVE_COMPLEX_MSVC) || defined (CMPLX) + (*z) = GxB_CMPLX ((*x),(*y)) ; + #else + ((double *) z) [0] = (*x) ; + ((double *) z) [1] = (*y) ; + #endif + } + +#endif + +#if defined (GB_FLOAT) || defined (GB_DOUBLE) + + GB_BINOP_STRUCT (ATAN2, GB_XTYPE) ; + GB_BINOP_STRUCT (HYPOT, GB_XTYPE) ; + GB_BINOP_STRUCT (FMOD, GB_XTYPE) ; + GB_BINOP_STRUCT (REMAINDER, GB_XTYPE) ; + GB_BINOP_STRUCT (COPYSIGN, GB_XTYPE) ; + GB_BINOP_STRUCT (LDEXP, GB_XTYPE) ; + GB_BINOP_STRUCT (CMPLX, GB_XTYPE) ; + +#endif + +//------------------------------------------------------------------------------ +// 6 binary comparators z=f(x,y), where x,y,z have the same type +//------------------------------------------------------------------------------ + +// iseq and isne: all 13 types, including complex types. +// isgt, islt, isge, isle: 11 real types only. + +GB_BINOP_STRUCT (ISEQ, GB_XTYPE) ; +inline void GB_FUNC (ISEQ) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_iseq (*x, *y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_iseq (*x, *y) ; + #else + (*z) = (GB_TYPE) ((*x) == (*y)) ; + #endif +} + +GB_BINOP_STRUCT (ISNE, GB_XTYPE) ; +inline void GB_FUNC (ISNE) (GB_Z_X_Y_ARGS) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_isne (*x, *y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_isne (*x, *y) ; + #else + (*z) = (GB_TYPE) ((*x) != (*y)) ; + #endif +} + +#if defined ( GB_REAL ) + + GB_BINOP_STRUCT (ISGT, GB_XTYPE) ; + inline void GB_FUNC (ISGT) (GB_Z_X_Y_ARGS) + { + (*z) = (GB_TYPE) ((*x) > (*y)) ; + } + + GB_BINOP_STRUCT (ISLT, GB_XTYPE) ; + inline void GB_FUNC (ISLT) (GB_Z_X_Y_ARGS) + { + (*z) = (GB_TYPE) ((*x) < (*y)) ; + } + + GB_BINOP_STRUCT (ISGE, GB_XTYPE) ; + inline void GB_FUNC (ISGE) (GB_Z_X_Y_ARGS) + { + (*z) = (GB_TYPE) ((*x) >= (*y)) ; + } + + GB_BINOP_STRUCT (ISLE, GB_XTYPE) ; + inline void GB_FUNC (ISLE) (GB_Z_X_Y_ARGS) + { + (*z) = (GB_TYPE) ((*x) <= (*y)) ; + } + +#endif + +//------------------------------------------------------------------------------ +// 3 boolean binary functions z=f(x,y), all x,y,z the same type, real types only +//------------------------------------------------------------------------------ + +#if defined ( GB_REAL ) + + #if defined ( GB_BOOLEAN ) + + inline void GB_FUNC (LOR) (GB_Z_X_Y_ARGS) { (*z) = ((*x) || (*y)) ; } + inline void GB_FUNC (LAND) (GB_Z_X_Y_ARGS) { (*z) = ((*x) && (*y)) ; } + inline void GB_FUNC (LXOR) (GB_Z_X_Y_ARGS) { (*z) = ((*x) != (*y)) ; } + + #else + + // The inputs are of type T but are then implicitly converted to boolean + // The output z is of type T, either 1 or 0 in that type. + inline void GB_FUNC (LOR) (GB_Z_X_Y_ARGS) + { + (*z) = (GB_TYPE) (((*x) != 0) || ((*y) != 0)) ; + } + + inline void GB_FUNC (LAND) (GB_Z_X_Y_ARGS) + { + (*z) = (GB_TYPE) (((*x) != 0) && ((*y) != 0)) ; + } + + inline void GB_FUNC (LXOR) (GB_Z_X_Y_ARGS) + { + (*z) = (GB_TYPE) (((*x) != 0) != ((*y) != 0)) ; + } + + #endif + + GB_BINOP_STRUCT (LOR, GB_XTYPE) ; + GB_BINOP_STRUCT (LAND, GB_XTYPE) ; + GB_BINOP_STRUCT (LXOR, GB_XTYPE) ; + +#endif + +#undef GB_Z_X_Y_ARGS + +//------------------------------------------------------------------------------ +// 6 binary functions z=f(x,y), returning bool +//------------------------------------------------------------------------------ + +// eq, ne: for all 13 types +// gt, lt, ge, le: for 11 real types, not complex + +#define GB_Zbool_X_Y_ARGS bool *z, const GB_TYPE *x, const GB_TYPE *y + +GB_BINOP_STRUCT (EQ, GB_XTYPE) ; +inline void GB_FUNC (EQ) (GB_Zbool_X_Y_ARGS) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_eq (*x, *y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_eq (*x, *y) ; + #else + (*z) = ((*x) == (*y)) ; + #endif +} + +GB_BINOP_STRUCT (NE, GB_XTYPE) ; +inline void GB_FUNC (NE) (GB_Zbool_X_Y_ARGS) +{ + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_ne (*x, *y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_ne (*x, *y) ; + #else + (*z) = ((*x) != (*y)) ; + #endif +} + +#if !defined ( GB_COMPLEX ) + + GB_BINOP_STRUCT (GT, GB_XTYPE) ; + inline void GB_FUNC (GT) (GB_Zbool_X_Y_ARGS) { (*z) = ((*x) > (*y)) ; } + + GB_BINOP_STRUCT (LT, GB_XTYPE) ; + inline void GB_FUNC (LT) (GB_Zbool_X_Y_ARGS) { (*z) = ((*x) < (*y)) ; } + + GB_BINOP_STRUCT (GE, GB_XTYPE) ; + inline void GB_FUNC (GE) (GB_Zbool_X_Y_ARGS) { (*z) = ((*x) >= (*y)) ; } + + GB_BINOP_STRUCT (LE, GB_XTYPE) ; + inline void GB_FUNC (LE) (GB_Zbool_X_Y_ARGS) { (*z) = ((*x) <= (*y)) ; } + +#endif + +#undef GB_Zbool_X_Y_ARGS + +//------------------------------------------------------------------------------ +// index_unary functions +//------------------------------------------------------------------------------ + +#if defined ( GB_SIGNED_INDEX ) + + //-------------------------------------------------------------------------- + // z = f (x, i, j, y) where z and y are both int32 or int64 + //-------------------------------------------------------------------------- + + GB_IDXOP_STRUCT (ROWINDEX, GB_XTYPE) ; + inline void GB_FUNC (ROWINDEX) (GB_TYPE *z, const void *unused, + GrB_Index i, GrB_Index j_unused, const GB_TYPE *y) + { + (*z) = (GB_TYPE) (((int64_t) i) + (*y)) ; + } + GB_IDXOP_STRUCT (COLINDEX, GB_XTYPE) ; + inline void GB_FUNC (COLINDEX) (GB_TYPE *z, const void *unused, + GrB_Index i_unused, GrB_Index j, const GB_TYPE *y) + { + (*z) = (GB_TYPE) (((int64_t) j) + (*y)) ; + } + GB_IDXOP_STRUCT (DIAGINDEX, GB_XTYPE) ; + inline void GB_FUNC (DIAGINDEX) (GB_TYPE *z, const void *unused, + GrB_Index i, GrB_Index j, const GB_TYPE *y) + { + (*z) = (GB_TYPE) (((int64_t) j) - (((int64_t) i) + (*y))) ; + } + GB_IDXOP_STRUCT (FLIPDIAGINDEX, GB_XTYPE) ; + inline void GB_FUNC (FLIPDIAGINDEX) (GB_TYPE *z, const void *unused, + GrB_Index i, GrB_Index j, const GB_TYPE *y) + { + (*z) = (GB_TYPE) (((int64_t) i) - (((int64_t) j) + (*y))) ; + } + +#endif + +#if defined ( GB_SIGNED_INDEX64 ) + + //-------------------------------------------------------------------------- + // z = f (x, i, j, y) where z is bool, y is type int64 + //-------------------------------------------------------------------------- + + GB_IDXOP_STRUCT (TRIL, GB_XTYPE) ; + inline void GB_FUNC (TRIL) (bool *z, const void *unused, + GrB_Index i, GrB_Index j, const GB_TYPE *y) + { + (*z) = (((int64_t) j) <= (((int64_t) i) + (*y))) ; + } + + GB_IDXOP_STRUCT (TRIU, GB_XTYPE) ; + inline void GB_FUNC (TRIU) (bool *z, const void *unused, + GrB_Index i, GrB_Index j, const GB_TYPE *y) + { + (*z) = (((int64_t) j) >= (((int64_t) i) + (*y))) ; + } + + GB_IDXOP_STRUCT (DIAG, GB_XTYPE) ; + inline void GB_FUNC (DIAG) (bool *z, const void *unused, + GrB_Index i, GrB_Index j, const GB_TYPE *y) + { + (*z) = (((int64_t) j) == (((int64_t) i) + (*y))) ; + } + + GB_IDXOP_STRUCT (OFFDIAG, GB_XTYPE) ; + inline void GB_FUNC (OFFDIAG) (bool *z, const void *unused, + GrB_Index i, GrB_Index j, const GB_TYPE *y) + { + (*z) = (((int64_t) j) != (((int64_t) i) + (*y))) ; + } + + GB_IDXOP_STRUCT (COLLE, GB_XTYPE) ; + inline void GB_FUNC (COLLE) (bool *z, const void *unused, + GrB_Index i_unused, GrB_Index j, const GB_TYPE *y) + { + (*z) = (((int64_t) j) <= (*y)) ; + } + + GB_IDXOP_STRUCT (COLGT, GB_XTYPE) ; + inline void GB_FUNC (COLGT) (bool *z, const void *unused, + GrB_Index i_unused, GrB_Index j, const GB_TYPE *y) + { + (*z) = (((int64_t) j) > (*y)) ; + } + + GB_IDXOP_STRUCT (ROWLE, GB_XTYPE) ; + inline void GB_FUNC (ROWLE) (bool *z, const void *unused, + GrB_Index i, GrB_Index j_unused, const GB_TYPE *y) + { + (*z) = (((int64_t) i) <= (*y)) ; + } + + GB_IDXOP_STRUCT (ROWGT, GB_XTYPE) ; + inline void GB_FUNC (ROWGT) (bool *z, const void *unused, + GrB_Index i, GrB_Index j_unused, const GB_TYPE *y) + { + (*z) = (((int64_t) i) > (*y)) ; + } + +#endif + + //-------------------------------------------------------------------------- + // z = f (x, i, j, y) where z is bool, y is any built-in type + //-------------------------------------------------------------------------- + + GB_IDXOP_STRUCT (VALUEEQ, GB_XTYPE) ; + inline void GB_FUNC (VALUEEQ) (bool *z, const GB_TYPE *x, + GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) + { + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_eq (*x, *y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_eq (*x, *y) ; + #else + (*z) = ((*x) == (*y)) ; + #endif + } + + GB_IDXOP_STRUCT (VALUENE, GB_XTYPE) ; + inline void GB_FUNC (VALUENE) (bool *z, const GB_TYPE *x, + GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) + { + #if defined ( GB_FLOAT_COMPLEX ) + (*z) = GB_FC32_ne (*x, *y) ; + #elif defined ( GB_DOUBLE_COMPLEX ) + (*z) = GB_FC64_ne (*x, *y) ; + #else + (*z) = ((*x) != (*y)) ; + #endif + } + +#if defined ( GB_REAL ) + + //-------------------------------------------------------------------------- + // z = f (x, i, j, y) where z is bool, y is any real built-in type + //-------------------------------------------------------------------------- + + GB_IDXOP_STRUCT (VALUELT, GB_XTYPE) ; + inline void GB_FUNC (VALUELT) (bool *z, const GB_TYPE *x, + GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) + { + (*z) = ((*x) < (*y)) ; + } + + GB_IDXOP_STRUCT (VALUELE, GB_XTYPE) ; + inline void GB_FUNC (VALUELE) (bool *z, const GB_TYPE *x, + GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) + { + (*z) = ((*x) <= (*y)) ; + } + + GB_IDXOP_STRUCT (VALUEGT, GB_XTYPE) ; + inline void GB_FUNC (VALUEGT) (bool *z, const GB_TYPE *x, + GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) + { + (*z) = ((*x) > (*y)) ; + } + + GB_IDXOP_STRUCT (VALUEGE, GB_XTYPE) ; + inline void GB_FUNC (VALUEGE) (bool *z, const GB_TYPE *x, + GrB_Index i_unused, GrB_Index j_unused, const GB_TYPE *y) + { + (*z) = ((*x) >= (*y)) ; + } + +#endif + +//------------------------------------------------------------------------------ +// clear macros for next use of this file +//------------------------------------------------------------------------------ + +#undef GB_TYPE +#undef GB_XTYPE +#undef GB_OP +#undef GB_BOOLEAN +#undef GB_FLOATING_POINT +#undef GB_UNSIGNED_INT +#undef GB_SIGNED_INT +#undef GB_SIGNED_INDEX +#undef GB_SIGNED_INDEX64 +#undef GB_BITS +#undef GB_REAL +#undef GB_DOUBLE +#undef GB_FLOAT +#undef GB_DOUBLE_COMPLEX +#undef GB_FLOAT_COMPLEX +#undef GB_COMPLEX +#undef GB_UNOP_STRUCT +#undef GB_BINOP_STRUCT + diff --git a/GraphBLAS/Source/Factories/GB_semiring_template.c b/GraphBLAS/Source/builtin/factory/GB_semiring_template.c similarity index 99% rename from GraphBLAS/Source/Factories/GB_semiring_template.c rename to GraphBLAS/Source/builtin/factory/GB_semiring_template.c index 1da7ae3b76..55dadff19a 100644 --- a/GraphBLAS/Source/Factories/GB_semiring_template.c +++ b/GraphBLAS/Source/builtin/factory/GB_semiring_template.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -// This file is #include'd many times in GB_ops.c to define the built-in +// This file is #include'd many times in GB_builtin.c to define the built-in // semirings. That file has defined either GB_BOOLEAN, or GB_TYPE as one of // the 10 non-boolean types. diff --git a/GraphBLAS/Source/Shared/GB_Operator.h b/GraphBLAS/Source/builtin/include/GB_Operator.h similarity index 100% rename from GraphBLAS/Source/Shared/GB_Operator.h rename to GraphBLAS/Source/builtin/include/GB_Operator.h diff --git a/GraphBLAS/Source/Shared/GB_matrix.h b/GraphBLAS/Source/builtin/include/GB_matrix.h similarity index 98% rename from GraphBLAS/Source/Shared/GB_matrix.h rename to GraphBLAS/Source/builtin/include/GB_matrix.h index 26b5e0518e..8c4961edb0 100644 --- a/GraphBLAS/Source/Shared/GB_matrix.h +++ b/GraphBLAS/Source/builtin/include/GB_matrix.h @@ -478,6 +478,7 @@ bool b_shallow ; // true if b is a shallow copy bool i_shallow ; // true if i is a shallow copy bool x_shallow ; // true if x is a shallow copy bool Y_shallow ; // true if Y is a shallow matrix +bool no_hyper_hash ; // if true, disable the Y hyper_hash matrix bool static_header ; // true if this struct is statically allocated //------------------------------------------------------------------------------ @@ -488,6 +489,7 @@ bool is_csc ; // true if stored by column, false if by row bool jumbled ; // true if the matrix may be jumbled. bitmap and full // matrices are never jumbled. + //------------------------------------------------------------------------------ // iso matrices //------------------------------------------------------------------------------ @@ -585,7 +587,9 @@ bool iso ; // true if all entries have the same value { j = k ; // operate on column A(:,j) - for (p = Ap [k] ; p < Ap [k+1] ; p++) + int64_t pA_start = Ap [k] + int64_t pA_end = Ap [k+1] ; + for (p = pA_start ; p < pA_end ; p++) { // entry A(i,j) with row index i and value aij int64_t i = Ai [p] ; @@ -594,13 +598,15 @@ bool iso ; // true if all entries have the same value } //-------------------- - // (4) hypersparse // A->h is non-NULL, A->nvec <= A->dim + // (4) hypersparse // A->h is non-NULL, A->nvec <= A->vdim for (k = 0 ; k < A->nvec ; k++) { j = A->h [k] // operate on column A(:,j) - for (p = Ap [k] ; p < Ap [k+1] ; p++) + int64_t pA_start = Ap [k] + int64_t pA_end = Ap [k+1] ; + for (p = pA_start ; p < pA_end ; p++) { // entry A(i,j) with row index i and value aij int64_t i = Ai [p] ; diff --git a/GraphBLAS/Source/Shared/GB_opaque.h b/GraphBLAS/Source/builtin/include/GB_opaque.h similarity index 98% rename from GraphBLAS/Source/Shared/GB_opaque.h rename to GraphBLAS/Source/builtin/include/GB_opaque.h index 6c175431da..4b2299be32 100644 --- a/GraphBLAS/Source/Shared/GB_opaque.h +++ b/GraphBLAS/Source/builtin/include/GB_opaque.h @@ -381,27 +381,27 @@ struct GB_Type_opaque // content of GrB_Type struct GB_UnaryOp_opaque // content of GrB_UnaryOp { - #include "GB_Operator.h" + #include "include/GB_Operator.h" } ; struct GB_IndexUnaryOp_opaque // content of GrB_IndexUnaryOp { - #include "GB_Operator.h" + #include "include/GB_Operator.h" } ; struct GB_BinaryOp_opaque // content of GrB_BinaryOp { - #include "GB_Operator.h" + #include "include/GB_Operator.h" } ; struct GB_SelectOp_opaque // content of GxB_SelectOp { - #include "GB_Operator.h" + #include "include/GB_Operator.h" } ; struct GB_Operator_opaque // content of GB_Operator { - #include "GB_Operator.h" + #include "include/GB_Operator.h" } ; // Any GrB_UnaryOp, GrB_IndexUnaryOp, GrB_BinaryOp, or GxB_SelectOp can be @@ -526,17 +526,17 @@ typedef struct GB_Pending_struct *GB_Pending ; struct GB_Scalar_opaque // content of GrB_Scalar: 1-by-1 standard CSC matrix { - #include "GB_matrix.h" + #include "include/GB_matrix.h" } ; struct GB_Vector_opaque // content of GrB_Vector: m-by-1 standard CSC matrix { - #include "GB_matrix.h" + #include "include/GB_matrix.h" } ; struct GB_Matrix_opaque // content of GrB_Matrix { - #include "GB_matrix.h" + #include "include/GB_matrix.h" } ; //------------------------------------------------------------------------------ diff --git a/GraphBLAS/Source/GB_callback.c b/GraphBLAS/Source/callback/GB_callback.c similarity index 85% rename from GraphBLAS/Source/GB_callback.c rename to GraphBLAS/Source/callback/GB_callback.c index 7e644d30e3..4b86692e19 100644 --- a/GraphBLAS/Source/GB_callback.c +++ b/GraphBLAS/Source/callback/GB_callback.c @@ -7,12 +7,12 @@ //------------------------------------------------------------------------------ -#include "GB_Template.h" -#include "GB_callback.h" -#include "GB_AxB_saxpy3.h" -#include "GB_bitmap_assign_methods.h" -#include "GB_ek_slice.h" -#include "GB_sort.h" +#include "GB.h" +#include "callback/include/GB_callback.h" +#include "mxm/GB_AxB_saxpy3.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "slice/GB_ek_slice.h" +#include "sort/GB_sort.h" GB_callback_struct GB_callback = { diff --git a/GraphBLAS/Source/GB_callbacks.h b/GraphBLAS/Source/callback/GB_callbacks.h similarity index 100% rename from GraphBLAS/Source/GB_callbacks.h rename to GraphBLAS/Source/callback/GB_callbacks.h diff --git a/GraphBLAS/Source/Template/GB_callback.h b/GraphBLAS/Source/callback/include/GB_callback.h similarity index 97% rename from GraphBLAS/Source/Template/GB_callback.h rename to GraphBLAS/Source/callback/include/GB_callback.h index 0d4d9b3ce4..3cfec10491 100644 --- a/GraphBLAS/Source/Template/GB_callback.h +++ b/GraphBLAS/Source/callback/include/GB_callback.h @@ -10,9 +10,6 @@ #ifndef GB_CALLBACK_H #define GB_CALLBACK_H -#include "GB_callback_proto.h" -#include "GB_saxpy3task_struct.h" - //------------------------------------------------------------------------------ // function pointers to callback methods //------------------------------------------------------------------------------ diff --git a/GraphBLAS/Source/Template/GB_callback_proto.h b/GraphBLAS/Source/callback/include/GB_callback_proto.h similarity index 100% rename from GraphBLAS/Source/Template/GB_callback_proto.h rename to GraphBLAS/Source/callback/include/GB_callback_proto.h diff --git a/GraphBLAS/Source/GB_cast.h b/GraphBLAS/Source/cast/GB_cast.h similarity index 100% rename from GraphBLAS/Source/GB_cast.h rename to GraphBLAS/Source/cast/GB_cast.h diff --git a/GraphBLAS/Source/GB_cast_array.c b/GraphBLAS/Source/cast/GB_cast_array.c similarity index 87% rename from GraphBLAS/Source/GB_cast_array.c rename to GraphBLAS/Source/cast/GB_cast_array.c index 3aad34bda9..1bd695e5cf 100644 --- a/GraphBLAS/Source/GB_cast_array.c +++ b/GraphBLAS/Source/cast/GB_cast_array.c @@ -15,10 +15,10 @@ // iso expansion is done. #include "GB.h" -#include "GB_apply.h" -#include "GB_stringify.h" +#include "apply/GB_apply.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_unop__include.h" +#include "FactoryKernels/GB_uop__include.h" #endif GrB_Info GB_cast_array // typecast an array @@ -52,6 +52,7 @@ GrB_Info GB_cast_array // typecast an array ASSERT (GB_code_compatible (code1, code2)) ; ASSERT (code1 != code2) ; ASSERT (code1 != GB_UDT_code) ; + ASSERT (!A->iso) ; //-------------------------------------------------------------------------- // via the factory kernel @@ -67,12 +68,12 @@ GrB_Info GB_cast_array // typecast an array // define the worker for the switch factory //---------------------------------------------------------------------- - #define GB_unop_apply(zname,xname) \ - GB (_unop_apply__identity ## zname ## xname) + #define GB_uop_apply(zname,xname) \ + GB (_uop_apply__identity ## zname ## xname) #define GB_WORKER(ignore1,zname,ztype,xname,xtype) \ { \ - info = GB_unop_apply (zname,xname) (Cx, Ax, Ab, anz, \ + info = GB_uop_apply (zname,xname) (Cx, Ax, Ab, anz, \ A_nthreads) ; \ } \ break ; @@ -82,7 +83,7 @@ GrB_Info GB_cast_array // typecast an array //---------------------------------------------------------------------- #define GB_EXCLUDE_SAME_TYPES - #include "GB_twotype_factory.c" + #include "apply/factory/GB_twotype_factory.c" } #endif @@ -109,9 +110,9 @@ GrB_Info GB_cast_array // typecast an array int64_t csize = GB_code_size (code1, 0) ; int64_t asize = GB_code_size (code2, 0) ; GB_cast_function cast_A_to_C = GB_cast_factory (code1, code2) ; - #define GB_APPLY_OP(p) \ - cast_A_to_C (Cx +(p*csize), Ax +(p*asize), asize) - #include "GB_apply_unop_ip.c" + #define GB_APPLY_OP(pC,pA) \ + cast_A_to_C (Cx +((pC)*csize), Ax +((pA)*asize), asize) + #include "apply/template/GB_apply_unop_ip.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GB_cast_factory.c b/GraphBLAS/Source/cast/GB_cast_factory.c similarity index 96% rename from GraphBLAS/Source/GB_cast_factory.c rename to GraphBLAS/Source/cast/GB_cast_factory.c index 67907852fa..79304f908d 100644 --- a/GraphBLAS/Source/GB_cast_factory.c +++ b/GraphBLAS/Source/cast/GB_cast_factory.c @@ -16,7 +16,7 @@ // function GB_copy_user_user. #include "GB.h" -#include "GB_casting.h" +#include "cast/GB_casting.h" GB_cast_function GB_cast_factory // returns pointer to function to cast x to z ( @@ -40,7 +40,7 @@ GB_cast_function GB_cast_factory // returns pointer to function to cast x to z // switch factory for two built-in types; user types are skipped. // no generic worker so the switch factory cannot be disabled. // no JIT kernel. - #include "GB_twotype_factory.c" + #include "apply/factory/GB_twotype_factory.c" //-------------------------------------------------------------------------- // user-defined types fall through the switch factory to here diff --git a/GraphBLAS/Source/GB_cast_matrix.c b/GraphBLAS/Source/cast/GB_cast_matrix.c similarity index 100% rename from GraphBLAS/Source/GB_cast_matrix.c rename to GraphBLAS/Source/cast/GB_cast_matrix.c diff --git a/GraphBLAS/Source/GB_casting.c b/GraphBLAS/Source/cast/GB_casting.c similarity index 99% rename from GraphBLAS/Source/GB_casting.c rename to GraphBLAS/Source/cast/GB_casting.c index bac1c2d87c..b5ce206dd3 100644 --- a/GraphBLAS/Source/GB_casting.c +++ b/GraphBLAS/Source/cast/GB_casting.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_casting.h" +#include "cast/GB_casting.h" //------------------------------------------------------------------------------ // typecasting from double to integer diff --git a/GraphBLAS/Source/GB_casting.h b/GraphBLAS/Source/cast/GB_casting.h similarity index 98% rename from GraphBLAS/Source/GB_casting.h rename to GraphBLAS/Source/cast/GB_casting.h index cfe83d362b..3cbf7dd4e1 100644 --- a/GraphBLAS/Source/GB_casting.h +++ b/GraphBLAS/Source/cast/GB_casting.h @@ -531,11 +531,11 @@ GB_CAST_FUNCTION (GxB_FC64_t, GxB_FC64_t) // Instead, it is faster to simply use type punning, based on the size of the // data type, and use the inline GB_mcast function instead. -// By default, the pre-generated kernels in Source/FactoryKernels and the -// generic kernels use GB_void as the data type for the M matrix, and then call -// this function to evaluate the value of a mask entry M(i,j). The JIT kernels -// have a specific matrix type for M, and they #undef these definitions and -// replace them with specific types and a simpler test of the M(i,j) value. +// By default, the pre-generated kernels in FactoryKernels and the generic +// kernels use GB_void as the data type for the M matrix, and then call this +// function to evaluate the value of a mask entry M(i,j). The JIT kernels have +// a specific matrix type for M, and they #undef these definitions and replace +// them with specific types and a simpler test of the M(i,j) value. #define GB_M_TYPE GB_void #define GB_MCAST(Mx,pM,msize) GB_mcast ((GB_void *) Mx, pM, msize) diff --git a/GraphBLAS/Source/GB_copy_user_user.c b/GraphBLAS/Source/cast/GB_copy_user_user.c similarity index 94% rename from GraphBLAS/Source/GB_copy_user_user.c rename to GraphBLAS/Source/cast/GB_copy_user_user.c index 797f94e3d1..cf61a6ad5b 100644 --- a/GraphBLAS/Source/GB_copy_user_user.c +++ b/GraphBLAS/Source/cast/GB_copy_user_user.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_casting.h" +#include "cast/GB_casting.h" void GB_copy_user_user (void *z, const void *x, size_t s) { diff --git a/GraphBLAS/Source/GB_clear.c b/GraphBLAS/Source/clear/GB_clear.c similarity index 100% rename from GraphBLAS/Source/GB_clear.c rename to GraphBLAS/Source/clear/GB_clear.c diff --git a/GraphBLAS/Source/GB_clear.h b/GraphBLAS/Source/clear/GB_clear.h similarity index 100% rename from GraphBLAS/Source/GB_clear.h rename to GraphBLAS/Source/clear/GB_clear.h diff --git a/GraphBLAS/Source/GrB_Matrix_clear.c b/GraphBLAS/Source/clear/GrB_Matrix_clear.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_clear.c rename to GraphBLAS/Source/clear/GrB_Matrix_clear.c diff --git a/GraphBLAS/Source/GrB_Vector_clear.c b/GraphBLAS/Source/clear/GrB_Vector_clear.c similarity index 100% rename from GraphBLAS/Source/GrB_Vector_clear.c rename to GraphBLAS/Source/clear/GrB_Vector_clear.c diff --git a/GraphBLAS/Source/codegen.m b/GraphBLAS/Source/codegen.m deleted file mode 100644 index fd084df5b6..0000000000 --- a/GraphBLAS/Source/codegen.m +++ /dev/null @@ -1,17 +0,0 @@ -function codegen -%CODEGEN generate all code for FactoryKernels/*.c -% -% This code generation method works on octave7 and MATLAB. - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -codegen_as ; % subassign/assign with no accum -codegen_axb ; % semirings -codegen_ew ; % ewise kernels: binary op and accum -codegen_aop ; % subassign/assign kernels with accum -codegen_unop ; % unary operators -codegen_red ; % monoids -codegen_sel ; % select operators - - diff --git a/GraphBLAS/Source/codegen/Contents.m b/GraphBLAS/Source/codegen/Contents.m new file mode 100644 index 0000000000..62855d0ed3 --- /dev/null +++ b/GraphBLAS/Source/codegen/Contents.m @@ -0,0 +1,33 @@ +% SuiteSparse/GraphBLAS/Source +% +% These files are used to create the files in GraphBLAS/Source/mxm/*__* and +% GraphBLAS/FactoryKernels, from the input files in Source/codegen/Generator. +% These functions do not need to be used by the end user. +% +% codegen +% codegen_aop +% codegen_aop_method +% codegen_aop_template +% codegen_as +% codegen_as_template +% codegen_axb +% codegen_axb_method +% codegen_axb_compare_template +% codegen_axb_template +% codegen_ew +% codegen_ew_method +% codegen_ew_template +% codegen_red +% codegen_red_method +% codegen_sel +% codegen_sel_method +% codegen_uop +% codegen_uop_identity +% codegen_uop_method +% codegen_uop_template +% +% codegen_type +% codegen_contains + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 diff --git a/GraphBLAS/Source/Generator/GB_AxB.c b/GraphBLAS/Source/codegen/Generator/GB_AxB.c similarity index 90% rename from GraphBLAS/Source/Generator/GB_AxB.c rename to GraphBLAS/Source/codegen/Generator/GB_AxB.c index 45a2a2e359..c3d8f1b0af 100644 --- a/GraphBLAS/Source/Generator/GB_AxB.c +++ b/GraphBLAS/Source/codegen/Generator/GB_AxB.c @@ -2,14 +2,16 @@ // GB_AxB.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" GB_axb__include_h // semiring operators: @@ -47,8 +49,6 @@ GB_is_plus_pair_8_semiring GB_is_plus_pair_16_semiring GB_is_plus_pair_32_semiring GB_is_plus_pair_big_semiring -GB_is_plus_pair_fc32_semiring -GB_is_plus_pair_fc64_semiring GB_is_min_firstj_semiring GB_is_max_firstj_semiring GB_semiring_has_avx @@ -90,7 +90,7 @@ GB_is_secondj_multiplier // disable this semiring and use the generic case if these conditions hold GB_disable -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -111,7 +111,7 @@ GrB_Info GB (_Adot2B) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -134,7 +134,7 @@ GrB_Info GB (_Adot3B) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -161,7 +161,7 @@ GrB_Info GB (_Adot4B) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot4_meta.c" + #include "mxm/template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -171,7 +171,7 @@ m4_divert(0) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB) ( @@ -200,7 +200,7 @@ GrB_Info GB (_AsaxbitB) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,7 +229,7 @@ GrB_Info GB (_Asaxpy4B) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy4_meta.c" + #include "mxm/template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; #endif } @@ -270,7 +270,7 @@ m4_divert(if_semiring_has_avx) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -306,7 +306,7 @@ m4_divert(if_semiring_has_avx) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -334,7 +334,7 @@ m4_divert(if_saxpy5_enabled) const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "mxm/template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -352,7 +352,7 @@ m4_divert(if_saxpy5_enabled) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_saxpy5_meta.c" + #include "mxm/factory/GB_AxB_saxpy5_meta.c" return (GrB_SUCCESS) ; #endif } @@ -436,8 +436,8 @@ GrB_Info GB (_Asaxpy3B) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -445,8 +445,8 @@ GrB_Info GB (_Asaxpy3B) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -486,8 +486,8 @@ GrB_Info GB (_Asaxpy3B) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -495,8 +495,8 @@ GrB_Info GB (_Asaxpy3B) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -538,8 +538,8 @@ GrB_Info GB (_Asaxpy3B) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -547,8 +547,8 @@ GrB_Info GB (_Asaxpy3B) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/Generator/GB_AxB.h b/GraphBLAS/Source/codegen/Generator/GB_AxB.h similarity index 100% rename from GraphBLAS/Source/Generator/GB_AxB.h rename to GraphBLAS/Source/codegen/Generator/GB_AxB.h diff --git a/GraphBLAS/Source/Generator/GB_aop.c b/GraphBLAS/Source/codegen/Generator/GB_aop.c similarity index 75% rename from GraphBLAS/Source/Generator/GB_aop.c rename to GraphBLAS/Source/codegen/Generator/GB_aop.c index 0a9cefdcc3..4522ad33ca 100644 --- a/GraphBLAS/Source/Generator/GB_aop.c +++ b/GraphBLAS/Source/codegen/Generator/GB_aop.c @@ -2,7 +2,7 @@ // GB_aop: assign/subassign kernels with accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_aop__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_aop__include.h" // accum operator GB_accumop @@ -52,7 +52,7 @@ GB_ax_mask // disable this operator and use the generic case if these conditions hold GB_disable -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C += A, accumulate a sparse matrix into a dense matrix @@ -64,17 +64,13 @@ GrB_Info GB (_subassign_23) const GrB_Matrix A, GB_Werk Werk ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - m4_divert(if_C_dense_update) - { - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_23_template.c" - } - m4_divert(0) + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; #endif } @@ -88,20 +84,15 @@ GrB_Info GB (_subassign_22) GrB_Matrix C, const GB_void *ywork_handle ) -{ +{ #if GB_DISABLE return (GrB_NO_VALUE) ; #else - m4_divert(if_C_dense_update) - { - // get the scalar ywork for C += ywork, of type GB_Y_TYPE - GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; - int nthreads_max = GB_Context_nthreads_max ( ) ; - double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_22_template.c" - return (GrB_SUCCESS) ; - } - m4_divert(0) + // get the scalar ywork for C += ywork, of type GB_Y_TYPE + GB_Y_TYPE ywork = (*((GB_Y_TYPE *) ywork_handle)) ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + #include "assign/template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/Generator/GB_aop.h b/GraphBLAS/Source/codegen/Generator/GB_aop.h similarity index 100% rename from GraphBLAS/Source/Generator/GB_aop.h rename to GraphBLAS/Source/codegen/Generator/GB_aop.h diff --git a/GraphBLAS/Source/Generator/GB_as.c b/GraphBLAS/Source/codegen/Generator/GB_as.c similarity index 86% rename from GraphBLAS/Source/Generator/GB_as.c rename to GraphBLAS/Source/codegen/Generator/GB_as.c index 904864670c..cc98bb4eaa 100644 --- a/GraphBLAS/Source/Generator/GB_as.c +++ b/GraphBLAS/Source/codegen/Generator/GB_as.c @@ -2,7 +2,7 @@ // GB_as: assign/subassign kernels with no accum //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ #include "GB.h" #include "GB_control.h" -#include "GB_ek_slice.h" -#include "GB_as__include.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_as__include.h" // A and C matrices GB_atype @@ -26,7 +26,7 @@ GB_ax_mask // disable this operator and use the generic case if these conditions hold GB_disable -#include "GB_assign_shared_definitions.h" +#include "assign/include/GB_assign_shared_definitions.h" //------------------------------------------------------------------------------ // C = scalar, when C is dense @@ -47,7 +47,7 @@ GrB_Info GB (_subassign_05d) GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_05d_template.c" + #include "assign/template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; #endif } @@ -70,7 +70,7 @@ GrB_Info GB (_subassign_06d) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_06d_template.c" + #include "assign/template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; #endif } @@ -93,7 +93,7 @@ GrB_Info GB (_subassign_25) ASSERT (C->type == A->type) ; int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_subassign_25_template.c" + #include "assign/template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/Generator/GB_as.h b/GraphBLAS/Source/codegen/Generator/GB_as.h similarity index 100% rename from GraphBLAS/Source/Generator/GB_as.h rename to GraphBLAS/Source/codegen/Generator/GB_as.h diff --git a/GraphBLAS/Source/Generator/GB_bld.c b/GraphBLAS/Source/codegen/Generator/GB_bld.c similarity index 84% rename from GraphBLAS/Source/Generator/GB_bld.c rename to GraphBLAS/Source/codegen/Generator/GB_bld.c index 5e0cc7cf10..38eb3b02de 100644 --- a/GraphBLAS/Source/Generator/GB_bld.c +++ b/GraphBLAS/Source/codegen/Generator/GB_bld.c @@ -2,14 +2,14 @@ // GB_bld: hard-coded functions for builder methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_bld__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_bld__include.h" // dup operator: Tx [k] += Sx [i], no typecast here GB_bld_dup @@ -27,7 +27,7 @@ GB_ytype // disable this operator and use the generic case if these conditions hold GB_disable -#include "GB_kernel_shared_definitions.h" +#include "omp/include/GB_kernel_shared_definitions.h" //------------------------------------------------------------------------------ // build a non-iso matrix @@ -50,7 +50,7 @@ GrB_Info GB (_bld) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_bld_template.c" + #include "builder/template/GB_bld_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/Generator/GB_bld.h b/GraphBLAS/Source/codegen/Generator/GB_bld.h similarity index 100% rename from GraphBLAS/Source/Generator/GB_bld.h rename to GraphBLAS/Source/codegen/Generator/GB_bld.h diff --git a/GraphBLAS/Source/Generator/GB_ew.c b/GraphBLAS/Source/codegen/Generator/GB_ew.c similarity index 91% rename from GraphBLAS/Source/Generator/GB_ew.c rename to GraphBLAS/Source/codegen/Generator/GB_ew.c index 3240ac4a66..dfab3a7c4a 100644 --- a/GraphBLAS/Source/Generator/GB_ew.c +++ b/GraphBLAS/Source/codegen/Generator/GB_ew.c @@ -2,15 +2,17 @@ // GB_ew: ewise kernels for each built-in binary operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_ewise_kernels.h" -#include "GB_ew__include.h" +#include "ewise/GB_emult.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "FactoryKernels/GB_ew__include.h" // operator: GB_binaryop @@ -41,7 +43,7 @@ GB_ctype_is_btype // disable this operator and use the generic case if these conditions hold GB_disable -#include "GB_ewise_shared_definitions.h" +#include "ewise/include/GB_ewise_shared_definitions.h" m4_divert(if_is_binop_subset) //------------------------------------------------------------------------------ @@ -59,7 +61,7 @@ GrB_Info GB (_Cewise_fulla) ) { bool A_is_B = GB_all_aliased (A, B) ; - #include "GB_ewise_fulla_template.c" + #include "ewise/template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } m4_divert(0) @@ -76,7 +78,7 @@ GrB_Info GB (_Cewise_fulln) const int nthreads ) { - #include "GB_ewise_fulln_template.c" + #include "ewise/template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } @@ -98,7 +100,7 @@ GrB_Info GB (_AxD) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -118,7 +120,7 @@ GrB_Info GB (_DxB) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" return (GrB_SUCCESS) ; #endif } @@ -162,7 +164,7 @@ GrB_Info GB (_AaddB) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -210,7 +212,7 @@ GrB_Info GB (_AunionB) // for the "easy mask" condition: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" return (GrB_SUCCESS) ; #endif } @@ -238,7 +240,7 @@ GrB_Info GB (_AemultB_08) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; #endif } @@ -264,7 +266,7 @@ GrB_Info GB (_AemultB_02) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" return (GrB_SUCCESS) ; #endif } @@ -291,7 +293,7 @@ GrB_Info GB (_AemultB_03) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" return (GrB_SUCCESS) ; #endif } @@ -317,7 +319,7 @@ GrB_Info GB (_AemultB_04) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" return (GrB_SUCCESS) ; #endif } @@ -343,7 +345,7 @@ GrB_Info GB (_AemultB_bitmap) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; #endif } @@ -366,7 +368,7 @@ GrB_Info GB (_bind1st) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind1st_template.c" + #include "apply/template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; #endif } @@ -388,7 +390,7 @@ GrB_Info GB (_bind2nd) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_apply_bind2nd_template.c" + #include "apply/template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; #endif } @@ -422,7 +424,7 @@ GrB_Info GB (_bind1st_tran) return (GrB_NO_VALUE) ; #else GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif #undef GB_BIND_1ST @@ -456,7 +458,7 @@ GrB_Info GB (_bind2nd_tran) return (GrB_NO_VALUE) ; #else GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" return (GrB_SUCCESS) ; #endif } diff --git a/GraphBLAS/Source/Generator/GB_ew.h b/GraphBLAS/Source/codegen/Generator/GB_ew.h similarity index 100% rename from GraphBLAS/Source/Generator/GB_ew.h rename to GraphBLAS/Source/codegen/Generator/GB_ew.h diff --git a/GraphBLAS/Source/Generator/GB_red.c b/GraphBLAS/Source/codegen/Generator/GB_red.c similarity index 82% rename from GraphBLAS/Source/Generator/GB_red.c rename to GraphBLAS/Source/codegen/Generator/GB_red.c index e0e71e681e..c28bda2f2e 100644 --- a/GraphBLAS/Source/Generator/GB_red.c +++ b/GraphBLAS/Source/codegen/Generator/GB_red.c @@ -2,14 +2,14 @@ // GB_red: hard-coded functions for reductions //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_control.h" -#include "GB_red__include.h" +#include "GB_control.h" +#include "FactoryKernels/GB_red__include.h" // reduction operator and type: GB_update_op @@ -37,7 +37,7 @@ GB_panel // disable this operator and use the generic case if these conditions hold GB_disable -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" //------------------------------------------------------------------------------ // reduce to a non-iso matrix to scalar, for monoids only @@ -60,11 +60,11 @@ GrB_Info GB (_red) GB_Z_TYPE *restrict W = (GB_Z_TYPE *) W_space ; if (A->nzombies > 0 || GB_IS_BITMAP (A)) { - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { - #include "GB_reduce_panel.c" + #include "reduce/template/GB_reduce_panel.c" } (*result) = z ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/Generator/GB_red.h b/GraphBLAS/Source/codegen/Generator/GB_red.h similarity index 100% rename from GraphBLAS/Source/Generator/GB_red.h rename to GraphBLAS/Source/codegen/Generator/GB_red.h diff --git a/GraphBLAS/Source/Generator/GB_sel.c b/GraphBLAS/Source/codegen/Generator/GB_sel.c similarity index 83% rename from GraphBLAS/Source/Generator/GB_sel.c rename to GraphBLAS/Source/codegen/Generator/GB_sel.c index b9b9412910..1aadfca51d 100644 --- a/GraphBLAS/Source/Generator/GB_sel.c +++ b/GraphBLAS/Source/codegen/Generator/GB_sel.c @@ -2,14 +2,14 @@ // GB_sel: hard-coded functions for selection operators //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_ek_slice.h" -#include "GB_sel__include.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" +#include "FactoryKernels/GB_sel__include.h" #define GB_ENTRY_SELECTOR GB_atype @@ -18,7 +18,7 @@ GB_test_value_of_entry GB_select_entry GB_iso_select -#include "GB_select_shared_definitions.h" +#include "select/include/GB_select_shared_definitions.h" m4_divert(if_phase1) //------------------------------------------------------------------------------ @@ -38,7 +38,7 @@ GrB_Info GB (_sel_phase1) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } @@ -62,7 +62,7 @@ GrB_Info GB (_sel_phase2) { GB_A_TYPE *restrict Cx = (GB_A_TYPE *) Cx_out ; GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" return (GrB_SUCCESS) ; } @@ -81,7 +81,7 @@ GrB_Info GB (_sel_bitmap) ) { GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/Generator/GB_sel.h b/GraphBLAS/Source/codegen/Generator/GB_sel.h similarity index 100% rename from GraphBLAS/Source/Generator/GB_sel.h rename to GraphBLAS/Source/codegen/Generator/GB_sel.h diff --git a/GraphBLAS/Source/codegen/Generator/GB_uop.c b/GraphBLAS/Source/codegen/Generator/GB_uop.c new file mode 100644 index 0000000000..b4f562b036 --- /dev/null +++ b/GraphBLAS/Source/codegen/Generator/GB_uop.c @@ -0,0 +1,86 @@ +//------------------------------------------------------------------------------ +// GB_uop.c: hard-coded functions for each built-in unary operator +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB.h" +#include "GB_control.h" +#include "FactoryKernels/GB_uop__include.h" + +// unary operator: z = f(x) +GB_unaryop +GB_ztype +GB_xtype + +// A matrix +GB_atype +GB_declarea +GB_geta + +// C matrix +GB_ctype + +// cij = op (aij) +#define GB_APPLY_OP(pC,pA) \ +{ \ + /* aij = Ax [pA] */ \ + GB_DECLAREA (aij) ; \ + GB_GETA (aij, Ax, pA, false) ; \ + /* Cx [pC] = unaryop (aij) */ \ + GB_UNARYOP (Cx [pC], aij) ; \ +} + +// disable this operator and use the generic case if these conditions hold +GB_disable + +#include "apply/include/GB_apply_shared_definitions.h" + +m4_divert(if_uop_apply_enabled) +//------------------------------------------------------------------------------ +// Cx = op (cast (Ax)): apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_apply) +( + GB_void *Cx_out, // Cx and Ax may be aliased + const GB_void *Ax_in, // A is always non-iso for this kernel + const int8_t *restrict Ab, // A->b if A is bitmap + int64_t anz, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "apply/template/GB_apply_unop_template.c" + return (GrB_SUCCESS) ; + #endif +} +m4_divert(0) + +//------------------------------------------------------------------------------ +// C = op (cast (A')): transpose, typecast, and apply a unary operator +//------------------------------------------------------------------------------ + +GrB_Info GB (_uop_tran) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) +{ + #if GB_DISABLE + return (GrB_NO_VALUE) ; + #else + #include "transpose/template/GB_transpose_template.c" + return (GrB_SUCCESS) ; + #endif +} + diff --git a/GraphBLAS/Source/codegen/Generator/GB_uop.h b/GraphBLAS/Source/codegen/Generator/GB_uop.h new file mode 100644 index 0000000000..ffae0a775a --- /dev/null +++ b/GraphBLAS/Source/codegen/Generator/GB_uop.h @@ -0,0 +1,23 @@ + +// SPDX-License-Identifier: Apache-2.0 +m4_divert(if_uop_apply_enabled) +GrB_Info GB (_uop_apply) +( + GB_void *Cx, + const GB_void *Ax, + const int8_t *restrict Ab, + int64_t anz, + int nthreads +) ; +m4_divert(0) + +GrB_Info GB (_uop_tran) +( + GrB_Matrix C, + const GrB_Matrix A, + int64_t *restrict *Workspaces, + const int64_t *restrict A_slice, + int nworkspaces, + int nthreads +) ; + diff --git a/GraphBLAS/Source/codegen/codegen.m b/GraphBLAS/Source/codegen/codegen.m new file mode 100644 index 0000000000..5017fff771 --- /dev/null +++ b/GraphBLAS/Source/codegen/codegen.m @@ -0,0 +1,17 @@ +function codegen +%CODEGEN generate all code for ../../FactoryKernels/*.c +% +% This code generation method works on octave7 and MATLAB. + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +codegen_as ; % subassign/assign with no accum +codegen_axb ; % semirings +codegen_ew ; % ewise kernels: binary op and accum +codegen_aop ; % subassign/assign kernels with accum +codegen_uop ; % unary operators +codegen_red ; % monoids +codegen_sel ; % select operators + + diff --git a/GraphBLAS/Source/codegen_aop.m b/GraphBLAS/Source/codegen/codegen_aop.m similarity index 98% rename from GraphBLAS/Source/codegen_aop.m rename to GraphBLAS/Source/codegen/codegen_aop.m index 709eaecbdb..e52f44ea29 100644 --- a/GraphBLAS/Source/codegen_aop.m +++ b/GraphBLAS/Source/codegen/codegen_aop.m @@ -4,20 +4,20 @@ % This function creates all files of the form GB_aop__*.[ch], including 260 % functions (GB_aop__*.c) and one include file, GB_aop__include.h. -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 fprintf ('\nassign/subassign with accum operator:\n') ; -fh = fopen ('FactoryKernels/GB_aop__include.h', 'w') ; +fh = fopen ('../../FactoryKernels/GB_aop__include.h', 'w') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '// GB_aop__include.h: definitions for GB_aop__*.c\n') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '\n') ; -fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved.\n') ; +fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved.\n') ; fprintf (fh, '// SPDX-License-Identifier: Apache-2.0\n\n') ; fprintf (fh, '// This file has been automatically generated from Generator/GB_aop.h') ; -fprintf (fh, '\n#include "GB_math.h"\n\n') ; +fprintf (fh, '\n#include "math/GB_math.h"\n\n') ; fclose (fh) ; % The ANY operator is not used as a binary operator in the generated functions. diff --git a/GraphBLAS/Source/codegen_aop_method.m b/GraphBLAS/Source/codegen/codegen_aop_method.m similarity index 93% rename from GraphBLAS/Source/codegen_aop_method.m rename to GraphBLAS/Source/codegen/codegen_aop_method.m index 8a9db3bf6b..25c512b811 100644 --- a/GraphBLAS/Source/codegen_aop_method.m +++ b/GraphBLAS/Source/codegen/codegen_aop_method.m @@ -3,23 +3,9 @@ function codegen_aop_method (binop, op, xtype) % % codegen_aop_method (binop, op, xtype) -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 -f = fopen ('control.m4', 'w') ; -fprintf (f, 'm4_divert(-1)\n') ; - -% no code is generated for the ANY operator (SECOND is used in its place) -assert (~isequal (binop, 'any')) ; - -[fname, unsigned, bits] = codegen_type (xtype) ; - -name = sprintf ('%s_%s', binop, fname) ; - -% function names -fprintf (f, 'm4_define(`_subassign_23'', `_subassign_23__%s'')\n', name) ; -fprintf (f, 'm4_define(`_subassign_22'', `_subassign_22__%s'')\n', name) ; - % determine type of z, x, and y from xtype and binop switch (binop) case { 'eq', 'ne', 'gt', 'lt', 'ge', 'le' } @@ -44,6 +30,25 @@ function codegen_aop_method (binop, op, xtype) ytype = xtype ; end +if (~isequal (xtype, ztype) || isequal (binop, 'first')) + % the type of x and z must match, and the operator must not be 'first' + return +end + +f = fopen ('control.m4', 'w') ; +fprintf (f, 'm4_divert(-1)\n') ; + +% no code is generated for the ANY operator (SECOND is used in its place) +assert (~isequal (binop, 'any')) ; + +[fname, unsigned, bits] = codegen_type (xtype) ; + +name = sprintf ('%s_%s', binop, fname) ; + +% function names +fprintf (f, 'm4_define(`_subassign_23'', `_subassign_23__%s'')\n', name) ; +fprintf (f, 'm4_define(`_subassign_22'', `_subassign_22__%s'')\n', name) ; + fprintf (f, 'm4_define(`GB_ztype'', `#define GB_Z_TYPE %s'')\n', ztype) ; fprintf (f, 'm4_define(`GB_xtype'', `#define GB_X_TYPE %s'')\n', xtype) ; fprintf (f, 'm4_define(`GB_ytype'', `#define GB_Y_TYPE %s'')\n', ytype) ; @@ -51,6 +56,7 @@ function codegen_aop_method (binop, op, xtype) fprintf (f, 'm4_define(`GB_atype'', `#define GB_A_TYPE %s'')\n', ytype) ; fprintf (f, 'm4_define(`GB_declarec'', `#define GB_DECLAREC(cwork) %s cwork'')\n', ztype) ; +%{ % C_dense_update: operators z=f(x,y) where ztype and xtype match, and binop is not 'first' if (isequal (xtype, ztype) && ~isequal (binop, 'first')) % enable C dense update @@ -59,6 +65,7 @@ function codegen_aop_method (binop, op, xtype) % disable C dense update fprintf (f, 'm4_define(`if_C_dense_update'', `-1'')\n') ; end +%} % to get an entry from A and cast to ywork (but no typecasting here) if (isequal (binop, 'first') || isequal (binop, 'pair')) @@ -131,12 +138,12 @@ function codegen_aop_method (binop, op, xtype) fclose (f) ; % construct the *.c file -cmd = sprintf ('cat control.m4 Generator/GB_aop.c | m4 -P | awk -f codegen_blank.awk > FactoryKernels/GB_aop__%s.c', name) ; +cmd = sprintf ('cat control.m4 Generator/GB_aop.c | m4 -P | awk -f codegen_blank.awk > ../../FactoryKernels/GB_aop__%s.c', name) ; fprintf ('.') ; system (cmd) ; % append to the *.h file -system ('cat control.m4 Generator/GB_aop.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> FactoryKernels/GB_aop__include.h') ; +system ('cat control.m4 Generator/GB_aop.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> ../../FactoryKernels/GB_aop__include.h') ; delete ('control.m4') ; diff --git a/GraphBLAS/Source/codegen_aop_template.m b/GraphBLAS/Source/codegen/codegen_aop_template.m similarity index 94% rename from GraphBLAS/Source/codegen_aop_template.m rename to GraphBLAS/Source/codegen/codegen_aop_template.m index f98bbb2f36..89ed5cc46b 100644 --- a/GraphBLAS/Source/codegen_aop_template.m +++ b/GraphBLAS/Source/codegen/codegen_aop_template.m @@ -3,7 +3,7 @@ function codegen_aop_template (binop, bfunc, ifunc, ffunc, dfunc, fcfunc, dcfunc % % Generate functions for a binary operator, for all types, for assign/subassign -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 fprintf ('\n%-9s', binop) ; diff --git a/GraphBLAS/Source/codegen_as.m b/GraphBLAS/Source/codegen/codegen_as.m similarity index 86% rename from GraphBLAS/Source/codegen_as.m rename to GraphBLAS/Source/codegen/codegen_as.m index 78a741395a..d41c115e4e 100644 --- a/GraphBLAS/Source/codegen_as.m +++ b/GraphBLAS/Source/codegen/codegen_as.m @@ -4,20 +4,20 @@ % This function creates all files of the form GB_as__*.[ch], including 13 % functions (GB_as__*.c) and one include file, GB_as__include.h. -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 fprintf ('\nsubassign/assign with no accum:\n') ; -fh = fopen ('FactoryKernels/GB_as__include.h', 'w') ; +fh = fopen ('../../FactoryKernels/GB_as__include.h', 'w') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '// GB_as__include.h: definitions for GB_as__*.c\n') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '\n') ; -fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved.\n') ; +fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved.\n') ; fprintf (fh, '// SPDX-License-Identifier: Apache-2.0\n\n') ; fprintf (fh, '// This file has been automatically generated from Generator/GB_as.h') ; -fprintf (fh, '\n#include "GB_math.h"\n\n') ; +fprintf (fh, '\n#include "math/GB_math.h"\n\n') ; fclose (fh) ; codegen_as_template ('bool') ; diff --git a/GraphBLAS/Source/codegen_as_template.m b/GraphBLAS/Source/codegen/codegen_as_template.m similarity index 91% rename from GraphBLAS/Source/codegen_as_template.m rename to GraphBLAS/Source/codegen/codegen_as_template.m index d4d3afce34..6d6ef86717 100644 --- a/GraphBLAS/Source/codegen_as_template.m +++ b/GraphBLAS/Source/codegen/codegen_as_template.m @@ -3,7 +3,7 @@ function codegen_as_template (xtype) % % codegen_as_template (xtype) -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 f = fopen ('control.m4', 'w') ; @@ -45,11 +45,11 @@ function codegen_as_template (xtype) fclose (f) ; % construct the *.c file -cmd = sprintf ('cat control.m4 Generator/GB_as.c | m4 -P | awk -f codegen_blank.awk > FactoryKernels/GB_as__%s.c', fname) ; +cmd = sprintf ('cat control.m4 Generator/GB_as.c | m4 -P | awk -f codegen_blank.awk > ../../FactoryKernels/GB_as__%s.c', fname) ; system (cmd) ; % append to the *.h file -system ('cat control.m4 Generator/GB_as.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> FactoryKernels/GB_as__include.h') ; +system ('cat control.m4 Generator/GB_as.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> ../../FactoryKernels/GB_as__include.h') ; delete ('control.m4') ; diff --git a/GraphBLAS/Source/codegen_axb.m b/GraphBLAS/Source/codegen/codegen_axb.m similarity index 96% rename from GraphBLAS/Source/codegen_axb.m rename to GraphBLAS/Source/codegen/codegen_axb.m index b0207b5290..a99d84d5fe 100644 --- a/GraphBLAS/Source/codegen_axb.m +++ b/GraphBLAS/Source/codegen/codegen_axb.m @@ -3,9 +3,9 @@ % % This function creates all files of the form GB_AxB__*.[ch], including all % built-in semirings (GB_AxB__*.c) and two include files, -% Source/GB_AxB__include1.h and FactoryKernels/GB_AxB__include2.h. +% Source/mxm/GB_AxB__include1.h and FactoryKernels/GB_AxB__include2.h. -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 % The ANY operator is not used as a multiplicative operator in the generated @@ -16,19 +16,19 @@ for k = 1:2 if (k == 1) - filename = sprintf ('./GB_AxB__include%d.h', k) ; + filename = sprintf ('../mxm/GB_AxB__include%d.h', k) ; else - filename = sprintf ('FactoryKernels/GB_AxB__include%d.h', k) ; + filename = sprintf ('../../FactoryKernels/GB_AxB__include%d.h', k) ; end fh = fopen (filename, 'w') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '// GB_AxB__include%d.h: definitions for GB_AxB__*.c methods\n', k) ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '\n') ; - fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved.\n') ; + fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved.\n') ; fprintf (fh, '// SPDX-License-Identifier: Apache-2.0\n\n') ; fprintf (fh, '// This file has been automatically generated from Generator/GB_AxB.h') ; - fprintf (fh, '\n#include "GB_math.h"\n\n') ; + fprintf (fh, '\n#include "math/GB_math.h"\n\n') ; fclose (fh) ; end diff --git a/GraphBLAS/Source/codegen_axb_compare_template.m b/GraphBLAS/Source/codegen/codegen_axb_compare_template.m similarity index 98% rename from GraphBLAS/Source/codegen_axb_compare_template.m rename to GraphBLAS/Source/codegen/codegen_axb_compare_template.m index 13536e18b8..93366c8ba0 100644 --- a/GraphBLAS/Source/codegen_axb_compare_template.m +++ b/GraphBLAS/Source/codegen/codegen_axb_compare_template.m @@ -1,7 +1,7 @@ function codegen_axb_compare_template (multop, bmult, mult) %CODEGEN_AXB_COMPARE_TEMPLATE create a function for a semiring with a TxT -> bool multiplier -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 fprintf ('\n%-7s', multop) ; diff --git a/GraphBLAS/Source/codegen_axb_method.m b/GraphBLAS/Source/codegen/codegen_axb_method.m similarity index 96% rename from GraphBLAS/Source/codegen_axb_method.m rename to GraphBLAS/Source/codegen/codegen_axb_method.m index 104e91053e..1d18ab5f3e 100644 --- a/GraphBLAS/Source/codegen_axb_method.m +++ b/GraphBLAS/Source/codegen/codegen_axb_method.m @@ -3,7 +3,7 @@ function codegen_axb_method (addop, multop, update, addfunc, mult, ztype, xytype % % codegen_axb_method (addop, multop, update, addfunc, mult, ztype, xytype, identity, terminal) -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 if (nargin >= 5 && isempty (mult)) @@ -45,9 +45,9 @@ function codegen_axb_method (addop, multop, update, addfunc, mult, ztype, xytype xytype = 'any type' ; identity = '(any value)' ; terminal = '(any value)' ; - fprintf (f, 'm4_define(`GB_axb__include_h'', `#include "GB_AxB__include1.h"'')\n') ; + fprintf (f, 'm4_define(`GB_axb__include_h'', `#include "mxm/GB_AxB__include1.h"'')\n') ; else - fprintf (f, 'm4_define(`GB_axb__include_h'', `#include "GB_AxB__include2.h"'')\n') ; + fprintf (f, 'm4_define(`GB_axb__include_h'', `#include "FactoryKernels/GB_AxB__include2.h"'')\n') ; end is_integer = codegen_contains (ztype, 'int') ; @@ -378,22 +378,6 @@ function codegen_axb_method (addop, multop, update, addfunc, mult, ztype, xytype fprintf (f, 'm4_define(`GB_is_plus_pair_big_semiring'', `'')\n') ; end -% if (is_plus && is_pair && isequal (ztype, 'GxB_FC32_t')) -% % plus_pair_fc32 -% fprintf (f, 'm4_define(`GB_is_plus_pair_fc32_semiring'', `%s'')\n', ... -% '#define GB_IS_PLUS_PAIR_FC32_SEMIRING 1') ; -% else - fprintf (f, 'm4_define(`GB_is_plus_pair_fc32_semiring'', `'')\n') ; -% end - -% if (is_plus && is_pair && isequal (ztype, 'GxB_FC64_t')) -% % plus_pair_fc64 -% fprintf (f, 'm4_define(`GB_is_plus_pair_fc64_semiring'', `%s'')\n', ... -% '#define GB_IS_PLUS_PAIR_FC64_SEMIRING 1') ; -% else - fprintf (f, 'm4_define(`GB_is_plus_pair_fc64_semiring'', `'')\n') ; -% end - if (codegen_contains (ztype, 'GxB_FC')) fprintf (f, 'm4_define(`GB_ztype_is_complex'', `#define GB_Z_IS_COMPLEX 1'')\n') ; else @@ -860,12 +844,12 @@ function codegen_axb_method (addop, multop, update, addfunc, mult, ztype, xytype fclose (f) ; if (is_any_pair) - % the ANY_PAIR_ISO semiring goes in Source - s = '.' ; + % the ANY_PAIR_ISO semiring goes in Source/mxm + s = '../mxm' ; k = 1 ; else - % all other semirings go in FactoryKernels - s = 'FactoryKernels' ; + % all other semirings go in ../../FactoryKernels + s = '../../FactoryKernels' ; k = 2 ; end diff --git a/GraphBLAS/Source/codegen_axb_template.m b/GraphBLAS/Source/codegen/codegen_axb_template.m similarity index 99% rename from GraphBLAS/Source/codegen_axb_template.m rename to GraphBLAS/Source/codegen/codegen_axb_template.m index 3c5a692600..782d7097ea 100644 --- a/GraphBLAS/Source/codegen_axb_template.m +++ b/GraphBLAS/Source/codegen/codegen_axb_template.m @@ -1,7 +1,7 @@ function codegen_axb_template (multop, bmult, imult, fmult, dmult, fcmult, dcmult, no_min_max_any_times_monoids) %CODEGEN_AXB_TEMPLATE create a function for a semiring with a TxT->T multiplier -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 fprintf ('\n%-7s', multop) ; diff --git a/GraphBLAS/Source/codegen_blank.awk b/GraphBLAS/Source/codegen/codegen_blank.awk similarity index 100% rename from GraphBLAS/Source/codegen_blank.awk rename to GraphBLAS/Source/codegen/codegen_blank.awk diff --git a/GraphBLAS/Source/codegen_contains.m b/GraphBLAS/Source/codegen/codegen_contains.m similarity index 75% rename from GraphBLAS/Source/codegen_contains.m rename to GraphBLAS/Source/codegen/codegen_contains.m index 99980f946d..c25b252290 100644 --- a/GraphBLAS/Source/codegen_contains.m +++ b/GraphBLAS/Source/codegen/codegen_contains.m @@ -1,7 +1,7 @@ function s = codegen_contains (text, pattern) %CODEGEN_CONTAINS same as contains (text, pattern) -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 s = ~isempty (strfind (text, pattern)) ; diff --git a/GraphBLAS/Source/codegen_ew.m b/GraphBLAS/Source/codegen/codegen_ew.m similarity index 98% rename from GraphBLAS/Source/codegen_ew.m rename to GraphBLAS/Source/codegen/codegen_ew.m index 8f705b9b84..1c12605f77 100644 --- a/GraphBLAS/Source/codegen_ew.m +++ b/GraphBLAS/Source/codegen/codegen_ew.m @@ -4,20 +4,20 @@ % This function creates all files of the form GB_ew__*.[ch] % and one include file, GB_ew__include.h. -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 fprintf ('\newise binary operators:\n') ; -fh = fopen ('FactoryKernels/GB_ew__include.h', 'w') ; +fh = fopen ('../../FactoryKernels/GB_ew__include.h', 'w') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '// GB_ew__include.h: definitions for GB_ew__*.c\n') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '\n') ; -fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved.\n') ; +fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved.\n') ; fprintf (fh, '// SPDX-License-Identifier: Apache-2.0\n\n') ; fprintf (fh, '// This file has been automatically generated from Generator/GB_ew.h') ; -fprintf (fh, '\n#include "GB_math.h"\n\n') ; +fprintf (fh, '\n#include "math/GB_math.h"\n\n') ; fclose (fh) ; % The ANY operator is not used as a binary operator in the generated functions. diff --git a/GraphBLAS/Source/codegen_ew_method.m b/GraphBLAS/Source/codegen/codegen_ew_method.m similarity index 98% rename from GraphBLAS/Source/codegen_ew_method.m rename to GraphBLAS/Source/codegen/codegen_ew_method.m index a77489763d..5b36790cae 100644 --- a/GraphBLAS/Source/codegen_ew_method.m +++ b/GraphBLAS/Source/codegen/codegen_ew_method.m @@ -1,7 +1,7 @@ function codegen_ew_method (binop, op, xtype) %CODEGEN_EW_METHOD create an ewise kernel -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 f = fopen ('control.m4', 'w') ; @@ -260,12 +260,12 @@ function codegen_ew_method (binop, op, xtype) fclose (f) ; % construct the *.c file -cmd = sprintf ('cat control.m4 Generator/GB_ew.c | m4 -P | awk -f codegen_blank.awk > FactoryKernels/GB_ew__%s.c', name) ; +cmd = sprintf ('cat control.m4 Generator/GB_ew.c | m4 -P | awk -f codegen_blank.awk > ../../FactoryKernels/GB_ew__%s.c', name) ; fprintf ('.') ; system (cmd) ; % append to the *.h file -system ('cat control.m4 Generator/GB_ew.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> FactoryKernels/GB_ew__include.h') ; +system ('cat control.m4 Generator/GB_ew.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> ../../FactoryKernels/GB_ew__include.h') ; delete ('control.m4') ; diff --git a/GraphBLAS/Source/codegen_ew_template.m b/GraphBLAS/Source/codegen/codegen_ew_template.m similarity index 94% rename from GraphBLAS/Source/codegen_ew_template.m rename to GraphBLAS/Source/codegen/codegen_ew_template.m index 5c32d0e05a..ca7713456a 100644 --- a/GraphBLAS/Source/codegen_ew_template.m +++ b/GraphBLAS/Source/codegen/codegen_ew_template.m @@ -3,7 +3,7 @@ function codegen_ew_template (binop, bfunc, ifunc, ffunc, dfunc, fcfunc, dcfunc) % % Generate ewise kernels for a binary operator, for all types. -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 fprintf ('\n%-9s', binop) ; diff --git a/GraphBLAS/Source/codegen_red.m b/GraphBLAS/Source/codegen/codegen_red.m similarity index 96% rename from GraphBLAS/Source/codegen_red.m rename to GraphBLAS/Source/codegen/codegen_red.m index d48a24747d..26dc661266 100644 --- a/GraphBLAS/Source/codegen_red.m +++ b/GraphBLAS/Source/codegen/codegen_red.m @@ -4,31 +4,31 @@ % This function creates all files of the form GB_red__*.c, GB_bld__*.c % and the include files GB_red__include.h and GB_bld__include.h. -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 fprintf ('\nreduction operators:\n') ; -fh = fopen ('FactoryKernels/GB_red__include.h', 'w') ; +fh = fopen ('../../FactoryKernels/GB_red__include.h', 'w') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '// GB_red__include.h: definitions for GB_red__*.c\n') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '\n') ; -fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved.\n') ; +fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved.\n') ; fprintf (fh, '// SPDX-License-Identifier: Apache-2.0\n\n') ; fprintf (fh, '// This file has been automatically generated from Generator/GB_red.h') ; -fprintf (fh, '\n#include "GB_math.h"\n\n') ; +fprintf (fh, '\n#include "math/GB_math.h"\n\n') ; fclose (fh) ; -fh = fopen ('FactoryKernels/GB_bld__include.h', 'w') ; +fh = fopen ('../../FactoryKernels/GB_bld__include.h', 'w') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '// GB_bld__include.h: definitions for GB_bld__*.c\n') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '\n') ; -fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved.\n') ; +fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved.\n') ; fprintf (fh, '// SPDX-License-Identifier: Apache-2.0\n\n') ; fprintf (fh, '// This file has been automatically generated from Generator/GB_bld.h') ; -fprintf (fh, '\n#include "GB_math.h"\n\n') ; +fprintf (fh, '\n#include "math/GB_math.h"\n\n') ; fclose (fh) ; %------------------------------------------------------------------------------- diff --git a/GraphBLAS/Source/codegen_red_method.m b/GraphBLAS/Source/codegen/codegen_red_method.m similarity index 94% rename from GraphBLAS/Source/codegen_red_method.m rename to GraphBLAS/Source/codegen/codegen_red_method.m index 6e756b2d85..8d04a34196 100644 --- a/GraphBLAS/Source/codegen_red_method.m +++ b/GraphBLAS/Source/codegen/codegen_red_method.m @@ -3,7 +3,7 @@ function codegen_red_method (opname, op, atype, identity, terminal, panel) % % codegen_red_method (opname, op, atype, identity, terminal) -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 f = fopen ('control.m4', 'w') ; @@ -141,18 +141,18 @@ function codegen_red_method (opname, op, atype, identity, terminal, panel) if (is_monoid) % construct the *.c file for the reduction to scalar - cmd = sprintf ('cat control.m4 Generator/GB_red.c | m4 -P | awk -f codegen_blank.awk > FactoryKernels/GB_red__%s.c', name) ; + cmd = sprintf ('cat control.m4 Generator/GB_red.c | m4 -P | awk -f codegen_blank.awk > ../../FactoryKernels/GB_red__%s.c', name) ; fprintf ('.') ; system (cmd) ; % append to the *.h file - system ('cat control.m4 Generator/GB_red.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> FactoryKernels/GB_red__include.h') ; + system ('cat control.m4 Generator/GB_red.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> ../../FactoryKernels/GB_red__include.h') ; end % construct the build *.c and *.h files -cmd = sprintf ('cat control.m4 Generator/GB_bld.c | m4 -P | awk -f codegen_blank.awk > FactoryKernels/GB_bld__%s.c', name) ; +cmd = sprintf ('cat control.m4 Generator/GB_bld.c | m4 -P | awk -f codegen_blank.awk > ../../FactoryKernels/GB_bld__%s.c', name) ; fprintf ('.') ; system (cmd) ; -system ('cat control.m4 Generator/GB_bld.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> FactoryKernels/GB_bld__include.h') ; +system ('cat control.m4 Generator/GB_bld.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> ../../FactoryKernels/GB_bld__include.h') ; delete ('control.m4') ; diff --git a/GraphBLAS/Source/codegen_sel.m b/GraphBLAS/Source/codegen/codegen_sel.m similarity index 96% rename from GraphBLAS/Source/codegen_sel.m rename to GraphBLAS/Source/codegen/codegen_sel.m index dd41aca256..d77ea64fcf 100644 --- a/GraphBLAS/Source/codegen_sel.m +++ b/GraphBLAS/Source/codegen/codegen_sel.m @@ -4,21 +4,21 @@ % This function creates all files of the form GB_sel__*.c, % and the include file GB_sel__include.h. -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 fprintf ('\nselection operators:\n') ; -addpath ('../Test') ; +% addpath ('../../Test') ; -fh = fopen ('FactoryKernels/GB_sel__include.h', 'w') ; +fh = fopen ('../../FactoryKernels/GB_sel__include.h', 'w') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '// GB_sel__include.h: definitions for GB_sel__*.c\n') ; fprintf (fh, '//------------------------------------------------------------------------------\n') ; fprintf (fh, '\n') ; -fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved.\n') ; +fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved.\n') ; fprintf (fh, '// SPDX-License-Identifier: Apache-2.0\n\n') ; fprintf (fh, '// This file has been automatically generated from Generator/GB_sel.h') ; -fprintf (fh, '\n#include "GB_math.h"\n\n') ; +fprintf (fh, '\n#include "math/GB_math.h"\n\n') ; fclose (fh) ; % NONZOMBIE: name selector type diff --git a/GraphBLAS/Source/codegen_sel_method.m b/GraphBLAS/Source/codegen/codegen_sel_method.m similarity index 92% rename from GraphBLAS/Source/codegen_sel_method.m rename to GraphBLAS/Source/codegen/codegen_sel_method.m index a12124fea3..ab0e716ef3 100644 --- a/GraphBLAS/Source/codegen_sel_method.m +++ b/GraphBLAS/Source/codegen/codegen_sel_method.m @@ -1,7 +1,7 @@ function codegen_sel_method (opname, func, atype) %CODEGEN_SEL_METHOD create a selection function, C = select (A,thunk) -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 is_nonzombie_selector = isequal (opname, 'nonzombie') ; @@ -14,7 +14,7 @@ function codegen_sel_method (opname, func, atype) name = sprintf ('%s_%s', opname, aname) ; -if (test_contains (opname, 'col')) +if (codegen_contains (opname, 'col')) % only bitmap selector is used enable_phase1 = false ; enable_phase2 = false ; @@ -83,12 +83,12 @@ function codegen_sel_method (opname, func, atype) fclose (f) ; % construct the *.c file -cmd = sprintf ('cat control.m4 Generator/GB_sel.c | m4 -P | awk -f codegen_blank.awk > FactoryKernels/GB_sel__%s.c', name) ; +cmd = sprintf ('cat control.m4 Generator/GB_sel.c | m4 -P | awk -f codegen_blank.awk > ../../FactoryKernels/GB_sel__%s.c', name) ; fprintf ('.') ; system (cmd) ; % append to the *.h file -system ('cat control.m4 Generator/GB_sel.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> FactoryKernels/GB_sel__include.h') ; +system ('cat control.m4 Generator/GB_sel.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> ../../FactoryKernels/GB_sel__include.h') ; delete ('control.m4') ; diff --git a/GraphBLAS/Source/codegen_type.m b/GraphBLAS/Source/codegen/codegen_type.m similarity index 94% rename from GraphBLAS/Source/codegen_type.m rename to GraphBLAS/Source/codegen/codegen_type.m index 11bd09d136..cac18065e2 100644 --- a/GraphBLAS/Source/codegen_type.m +++ b/GraphBLAS/Source/codegen/codegen_type.m @@ -2,7 +2,7 @@ %CODEGEN_TYPE determine function fname, signed or not % and # bits a C type -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 unsigned = (type (1) == 'u') ; diff --git a/GraphBLAS/Source/codegen/codegen_uop.m b/GraphBLAS/Source/codegen/codegen_uop.m new file mode 100644 index 0000000000..7e3a21aae2 --- /dev/null +++ b/GraphBLAS/Source/codegen/codegen_uop.m @@ -0,0 +1,413 @@ +function codegen_uop +%CODEGEN_UNOP create functions for all unary operators +% +% This function creates all files of the form GB_uop__*.[ch], +% and the include file GB_uop__include.h. + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +fprintf ('\nunary operators:\n') ; + +fh = fopen ('../../FactoryKernels/GB_uop__include.h', 'w') ; +fprintf (fh, '//------------------------------------------------------------------------------\n') ; +fprintf (fh, '// GB_uop__include.h: definitions for GB_uop__*.c\n') ; +fprintf (fh, '//------------------------------------------------------------------------------\n') ; +fprintf (fh, '\n') ; +fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved.\n') ; +fprintf (fh, '// SPDX-License-Identifier: Apache-2.0\n\n') ; +fprintf (fh, '// This file has been automatically generated from Generator/GB_uop.h') ; +fprintf (fh, '\n#include "math/GB_math.h"\n\n') ; +fclose (fh) ; + +codegen_uop_identity ; + +codegen_uop_template ('ainv', ... + 'xarg', ... % bool + '-xarg', ... % int + '-xarg', ... % uint + '-xarg', ... % float + '-xarg', ... % double + 'GB_FC32_ainv (xarg)', ... % GxB_FC32_t + 'GB_FC64_ainv (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('abs', ... + 'xarg', ... % bool + 'GB_IABS (xarg)', ... % int + 'xarg', ... % uint + 'fabsf (xarg)', ... % float + 'fabs (xarg)', ... % double + [ ], ... % GxB_FC32_t (see below) + [ ]) ; ... % GxB_FC64_t (see below) + +codegen_uop_template ('minv', ... + 'true', ... % bool + 'GB_iminv (xarg)', ... % int + 'GB_iminv (xarg)', ... % uint + '(1.0F)/xarg', ... % float + '1./xarg', ... % double + 'GB_FC32_div (GxB_CMPLXF (1,0), xarg)', ... % GxB_FC32_t + 'GB_FC64_div (GxB_CMPLX (1,0), xarg)') ; % GxB_FC64_t + +codegen_uop_template ('lnot', ... + '!xarg', ... % bool + '!(xarg != 0)', ... % int + '!(xarg != 0)', ... % uint + '!(xarg != 0)', ... % float + '!(xarg != 0)', ... % double + [ ], ... % GxB_FC32_t + [ ]) ; ... % GxB_FC64_t + +codegen_uop_template ('bnot', ... + [ ], ... % bool + '~(xarg)', ... % int + '~(xarg)', ... % uint + [ ], ... % float + [ ], ... % double + [ ], ... % GxB_FC32_t + [ ]) ; ... % GxB_FC64_t + +codegen_uop_template ('sqrt', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'sqrtf (xarg)', ... % float + 'sqrt (xarg)', ... % double + 'GB_csqrtf (xarg)', ... % GxB_FC32_t + 'GB_csqrt (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('log', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'logf (xarg)', ... % float + 'log (xarg)', ... % double + 'GB_clogf (xarg)', ... % GxB_FC32_t + 'GB_clog (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('exp', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'expf (xarg)', ... % float + 'exp (xarg)', ... % double + 'GB_cexpf (xarg)', ... % GxB_FC32_t + 'GB_cexp (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('sin', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'sinf (xarg)', ... % float + 'sin (xarg)', ... % double + 'GB_csinf (xarg)', ... % GxB_FC32_t + 'GB_csin (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('cos', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'cosf (xarg)', ... % float + 'cos (xarg)', ... % double + 'GB_ccosf (xarg)', ... % GxB_FC32_t + 'GB_ccos (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('tan', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'tanf (xarg)', ... % float + 'tan (xarg)', ... % double + 'GB_ctanf (xarg)', ... % GxB_FC32_t + 'GB_ctan (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('asin', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'asinf (xarg)', ... % float + 'asin (xarg)', ... % double + 'GB_casinf (xarg)', ... % GxB_FC32_t + 'GB_casin (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('acos', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'acosf (xarg)', ... % float + 'acos (xarg)', ... % double + 'GB_cacosf (xarg)', ... % GxB_FC32_t + 'GB_cacos (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('atan', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'atanf (xarg)', ... % float + 'atan (xarg)', ... % double + 'GB_catanf (xarg)', ... % GxB_FC32_t + 'GB_catan (xarg)') ; ... % GxB_FC64_t + + +codegen_uop_template ('sinh', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'sinhf (xarg)', ... % float + 'sinh (xarg)', ... % double + 'GB_csinhf (xarg)', ... % GxB_FC32_t + 'GB_csinh (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('cosh', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'coshf (xarg)', ... % float + 'cosh (xarg)', ... % double + 'GB_ccoshf (xarg)', ... % GxB_FC32_t + 'GB_ccosh (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('tanh', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'tanhf (xarg)', ... % float + 'tanh (xarg)', ... % double + 'GB_ctanhf (xarg)', ... % GxB_FC32_t + 'GB_ctanh (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('asinh', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'asinhf (xarg)', ... % float + 'asinh (xarg)', ... % double + 'GB_casinhf (xarg)', ... % GxB_FC32_t + 'GB_casinh (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('acosh', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'acoshf (xarg)', ... % float + 'acosh (xarg)', ... % double + 'GB_cacoshf (xarg)', ... % GxB_FC32_t + 'GB_cacosh (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('atanh', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'atanhf (xarg)', ... % float + 'atanh (xarg)', ... % double + 'GB_catanhf (xarg)', ... % GxB_FC32_t + 'GB_catanh (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('signum', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'GB_signumf (xarg)', ... % float + 'GB_signum (xarg)', ... % double + 'GB_csignumf (xarg)', ... % GxB_FC32_t + 'GB_csignum (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('ceil', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'ceilf (xarg)', ... % float + 'ceil (xarg)', ... % double + 'GB_cceilf (xarg)', ... % GxB_FC32_t + 'GB_cceil (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('floor', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'floorf (xarg)', ... % float + 'floor (xarg)', ... % double + 'GB_cfloorf (xarg)', ... % GxB_FC32_t + 'GB_cfloor (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('round', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'roundf (xarg)', ... % float + 'round (xarg)', ... % double + 'GB_croundf (xarg)', ... % GxB_FC32_t + 'GB_cround (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('trunc', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'truncf (xarg)', ... % float + 'trunc (xarg)', ... % double + 'GB_ctruncf (xarg)', ... % GxB_FC32_t + 'GB_ctrunc (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('exp2', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'exp2f (xarg)', ... % float + 'exp2 (xarg)', ... % double + 'GB_cexp2f (xarg)', ... % GxB_FC32_t + 'GB_cexp2 (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('expm1', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'expm1f (xarg)', ... % float + 'expm1 (xarg)', ... % double + 'GB_cexpm1f (xarg)', ... % GxB_FC32_t + 'GB_cexpm1 (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('log10', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'log10f (xarg)', ... % float + 'log10 (xarg)', ... % double + 'GB_clog10f (xarg)', ... % GxB_FC32_t + 'GB_clog10 (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('log1p', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'log1pf (xarg)', ... % float + 'log1p (xarg)', ... % double + 'GB_clog1pf (xarg)', ... % GxB_FC32_t + 'GB_clog1p (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('log2', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'log2f (xarg)', ... % float + 'log2 (xarg)', ... % double + 'GB_clog2f (xarg)', ... % GxB_FC32_t + 'GB_clog2 (xarg)') ; ... % GxB_FC64_t + +codegen_uop_template ('frexpx', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'GB_frexpxf (xarg)', ... % float + 'GB_frexpx (xarg)', ... % double + [ ], ... % GxB_FC32_t + [ ]) ; ... % GxB_FC64_t + +codegen_uop_template ('frexpe', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'GB_frexpef (xarg)', ... % float + 'GB_frexpe (xarg)', ... % double + [ ], ... % GxB_FC32_t + [ ]) ; ... % GxB_FC64_t + +codegen_uop_template ('lgamma', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'lgammaf (xarg)', ... % float + 'lgamma (xarg)', ... % double + [ ], ... % GxB_FC32_t + [ ]) ; ... % GxB_FC64_t + +codegen_uop_template ('tgamma', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'tgammaf (xarg)', ... % float + 'tgamma (xarg)', ... % double + [ ], ... % GxB_FC32_t + [ ]) ; ... % GxB_FC64_t + +codegen_uop_template ('erf', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'erff (xarg)', ... % float + 'erf (xarg)', ... % double + [ ], ... % GxB_FC32_t + [ ]) ; ... % GxB_FC64_t + +codegen_uop_template ('erfc', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'erfcf (xarg)', ... % float + 'erfc (xarg)', ... % double + [ ], ... % GxB_FC32_t + [ ]) ; ... % GxB_FC64_t + +codegen_uop_template ('cbrt', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + 'cbrtf (xarg)', ... % float + 'cbrt (xarg)', ... % double + [ ], ... % GxB_FC32_t + [ ]) ; ... % GxB_FC64_t + +codegen_uop_template ('conj', ... + [ ], ... % bool + [ ], ... % int + [ ], ... % uint + [ ], ... % float + [ ], ... % double + 'GB_conjf (xarg)', ... % GxB_FC32_t + 'GB_conj (xarg)') ; ... % GxB_FC64_t + +%------------------------------------------------------------------------------- +% z = f(x) where the type of z and x differ +%------------------------------------------------------------------------------- + +% z = abs (x): x is complex, z is real +fprintf ('\nabs ') ; +codegen_uop_method ('abs', 'GB_cabsf (xarg)', 'float' , 'GxB_FC32_t') ; +codegen_uop_method ('abs', 'GB_cabs (xarg)' , 'double', 'GxB_FC64_t') ; + +% z = creal (x): x is complex, z is real +fprintf ('\ncreal ') ; +codegen_uop_method ('creal', 'GB_crealf (xarg)', 'float' , 'GxB_FC32_t') ; +codegen_uop_method ('creal', 'GB_creal (xarg)' , 'double', 'GxB_FC64_t') ; + +% z = cimag (x): x is complex, z is real +fprintf ('\ncimag ') ; +codegen_uop_method ('cimag', 'GB_cimagf (xarg)', 'float' , 'GxB_FC32_t') ; +codegen_uop_method ('cimag', 'GB_cimag (xarg)' , 'double', 'GxB_FC64_t') ; + +% z = carg (x): x is complex, z is real +fprintf ('\ncarg ') ; +codegen_uop_method ('carg', 'GB_cargf (xarg)', 'float' , 'GxB_FC32_t') ; +codegen_uop_method ('carg', 'GB_carg (xarg)' , 'double', 'GxB_FC64_t') ; + +% z = isinf (x): x is floating-point, z is bool +fprintf ('\nisinf ') ; +codegen_uop_method ('isinf', 'isinf (xarg)' , 'bool', 'float') ; +codegen_uop_method ('isinf', 'isinf (xarg)' , 'bool', 'double') ; +codegen_uop_method ('isinf', 'GB_cisinff (xarg)', 'bool', 'GxB_FC32_t') ; +codegen_uop_method ('isinf', 'GB_cisinf (xarg)' , 'bool', 'GxB_FC64_t') ; + +% z = isnan (x): x is floating-point, z is bool +fprintf ('\nisnan ') ; +codegen_uop_method ('isnan', 'isnan (xarg)' , 'bool', 'float') ; +codegen_uop_method ('isnan', 'isnan (xarg)' , 'bool', 'double') ; +codegen_uop_method ('isnan', 'GB_cisnanf (xarg)', 'bool', 'GxB_FC32_t') ; +codegen_uop_method ('isnan', 'GB_cisnan (xarg)' , 'bool', 'GxB_FC64_t') ; + +% z = isfinite (x): x is floating-point, z is bool +fprintf ('\nisfinite ') ; +codegen_uop_method ('isfinite', 'isfinite (xarg)' , 'bool', 'float') ; +codegen_uop_method ('isfinite', 'isfinite (xarg)' , 'bool', 'double') ; +codegen_uop_method ('isfinite', 'GB_cisfinitef (xarg)', 'bool', 'GxB_FC32_t') ; +codegen_uop_method ('isfinite', 'GB_cisfinite (xarg)' , 'bool', 'GxB_FC64_t') ; +fprintf ('\n') ; + diff --git a/GraphBLAS/Source/codegen/codegen_uop_identity.m b/GraphBLAS/Source/codegen/codegen_uop_identity.m new file mode 100644 index 0000000000..903bc427fb --- /dev/null +++ b/GraphBLAS/Source/codegen/codegen_uop_identity.m @@ -0,0 +1,111 @@ +function codegen_uop_identity +%CODEGEN_UNOP_IDENTITY create identity functions +% +% The 'identity' operator is unique: it is used for typecasting, and all 13*13 +% pairs of functions are generated. + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +uop = 'identity' ; +fprintf ('\n%-9s', uop) ; + +types = { +'bool', +'int8_t', +'int16_t', +'int32_t', +'int64_t', +'uint8_t', +'uint16_t', +'uint32_t', +'uint64_t', +'float', +'double', +'GxB_FC32_t', +'GxB_FC64_t' } ; + +ntypes = length (types) ; + +for code1 = 1:ntypes + ctype = types {code1} ; + for code2 = 1:ntypes + atype = types {code2} ; + + % determine the casting function + + if (isequal (atype, ctype)) + + % no typecasting + func = 'xarg' ; + + elseif (isequal (atype, 'GxB_FC32_t')) + + % typecasting from GxB_FC32_t + if (isequal (ctype, 'bool')) + % to bool from GxB_FC32_t + func = '(GB_crealf (xarg) != 0) || (GB_cimagf (xarg) != 0)' ; + elseif (codegen_contains (ctype, 'int')) + % to integer from GxB_FC32_t + func = sprintf ('GB_cast_to_%s ((double) GB_crealf (xarg))', ctype) ; + elseif (isequal (ctype, 'float') || isequal (ctype, 'double')) + % to float or double from GxB_FC32_t + func = sprintf ('(%s) GB_crealf (xarg)', ctype) ; + elseif (isequal (ctype, 'GxB_FC64_t')) + % to GxB_FC64_t from GxB_FC32_t + func = 'GJ_CMPLX64 ((double) GB_crealf (xarg), (double) GB_cimagf (xarg))' ; + end + + elseif (isequal (atype, 'GxB_FC64_t')) + + % typecasting from GxB_FC64_t + if (isequal (ctype, 'bool')) + % to bool from GxB_FC64_t + func = '(GB_creal (xarg) != 0) || (GB_cimag (xarg) != 0)' ; + elseif (codegen_contains (ctype, 'int')) + % to integer from GxB_FC64_t + func = sprintf ('GB_cast_to_%s (GB_creal (xarg))', ctype) ; + elseif (isequal (ctype, 'float') || isequal (ctype, 'double')) + % to float or double from GxB_FC64_t + func = sprintf ('(%s) GB_creal (xarg)', ctype) ; + elseif (isequal (ctype, 'GxB_FC32_t')) + % to GxB_FC32_t from GxB_FC64_t + func = 'GJ_CMPLX32 ((float) GB_creal (xarg), (float) GB_cimag (xarg))' ; + end + + elseif (isequal (atype, 'float') || isequal (atype, 'double')) + + % typecasting from float or double + if (isequal (ctype, 'bool')) + % to bool from float or double + func = '(xarg != 0)' ; + elseif (codegen_contains (ctype, 'int')) + % to integer from float or double + func = sprintf ('GB_cast_to_%s ((double) (xarg))', ctype) ; + elseif (isequal (ctype, 'GxB_FC32_t')) + % to GxB_FC32_t from float or double + func = 'GJ_CMPLX32 ((float) (xarg), 0)' ; + elseif (isequal (ctype, 'GxB_FC64_t')) + % to GxB_FC64_t from float or double + func = 'GJ_CMPLX64 ((double) (xarg), 0)' ; + end + + elseif (isequal (ctype, 'GxB_FC32_t')) + + % typecasting to GxB_FC32_t from any real type + func = 'GJ_CMPLX32 ((float) (xarg), 0)' ; + + elseif (isequal (ctype, 'GxB_FC64_t')) + + % typecasting to GxB_FC64_t from any real type + func = 'GJ_CMPLX64 ((double) (xarg), 0)' ; + + else + % use ANSI typecasting rules + func = sprintf ('(%s) xarg', ctype) ; + end + + codegen_uop_method (uop, func, ctype, atype) ; + end +end + diff --git a/GraphBLAS/Source/codegen/codegen_uop_method.m b/GraphBLAS/Source/codegen/codegen_uop_method.m new file mode 100644 index 0000000000..defb330f7a --- /dev/null +++ b/GraphBLAS/Source/codegen/codegen_uop_method.m @@ -0,0 +1,88 @@ +function codegen_uop_method (uop, op, ztype, xtype) +%CODEGEN_UNOP_METHOD create a function to compute C=uop(A) +% +% codegen_uop_method (uop, op, ztype, xtype) +% +% uop: the name of the operator +% op: a string defining the computation +% ztype: the type of z for z=f(x) +% xtype: the type of x for z=f(x) + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +f = fopen ('control.m4', 'w') ; +fprintf (f, 'm4_divert(-1)\n') ; + +[zname, zunsigned, zbits] = codegen_type (ztype) ; +[xname, xunsigned, xbits] = codegen_type (xtype) ; + +name = sprintf ('%s_%s_%s', uop, zname, xname) ; + +% determine if the op is identity with no typecast +is_identity = isequal (uop, 'identity') ; +no_typecast = isequal (ztype, xtype) ; +if (is_identity && no_typecast) + % disable the _uop_apply method + fprintf (f, 'm4_define(`_uop_apply'', `_uop_apply__(none)'')\n') ; + fprintf (f, 'm4_define(`if_uop_apply_enabled'', `-1'')\n') ; +else + fprintf (f, 'm4_define(`_uop_apply'', `_uop_apply__%s'')\n', name) ; + fprintf (f, 'm4_define(`if_uop_apply_enabled'', `0'')\n') ; +end + +% function names +fprintf (f, 'm4_define(`_uop_tran'', `_uop_tran__%s'')\n', name) ; + +% type of C and A +fprintf (f, 'm4_define(`GB_ctype'', `#define GB_C_TYPE %s'')\n', ztype) ; +fprintf (f, 'm4_define(`GB_atype'', `#define GB_A_TYPE %s'')\n', xtype) ; +fprintf (f, 'm4_define(`GB_xtype'', `#define GB_X_TYPE %s'')\n', xtype) ; +fprintf (f, 'm4_define(`GB_ztype'', `#define GB_Z_TYPE %s'')\n', ztype) ; + +A_is_pattern = (isempty (strfind (op, 'xarg'))) ; + +% to get an entry from A +if (A_is_pattern) + % A(i,j) is not needed + fprintf (f, 'm4_define(`GB_declarea'', `#define GB_DECLAREA(aij)'')\n') ; + fprintf (f, 'm4_define(`GB_geta'', `#define GB_GETA(aij,Ax,pA,A_iso)'')\n') ; +else + % A is never iso + fprintf (f, 'm4_define(`GB_declarea'', `#define GB_DECLAREA(aij) %s aij'')\n', xtype) ; + fprintf (f, 'm4_define(`GB_geta'', `#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA]'')\n') ; +end + +% type-specific iminv +if (~isempty (strfind (op, 'iminv'))) + if (zunsigned) + op = strrep (op, 'iminv (', sprintf ('idiv_uint%d (1, ', zbits)) ; + else + op = strrep (op, 'iminv (', sprintf ('idiv_int%d (1, ', zbits)) ; + end +end + +% create the unary operator +op = strrep (op, 'xarg', 'x') ; +fprintf (f, 'm4_define(`GB_unaryop'', `#define GB_UNARYOP(z,x) z = %s'')\n', op) ; + +% create the disable flag +disable = sprintf ('defined(GxB_NO_%s)', upper (uop)) ; +disable = [disable (sprintf (' || defined(GxB_NO_%s)', upper (zname)))] ; +if (~isequal (zname, xname)) + disable = [disable (sprintf (' || defined(GxB_NO_%s)', upper (xname)))] ; +end +fprintf (f, 'm4_define(`GB_disable'', `#if (%s)\n#define GB_DISABLE 1\n#else\n#define GB_DISABLE 0\n#endif\n'')\n', disable) ; +fprintf (f, 'm4_divert(0)\n') ; +fclose (f) ; + +% construct the *.c file +cmd = sprintf ('cat control.m4 Generator/GB_uop.c | m4 -P | awk -f codegen_blank.awk > ../../FactoryKernels/GB_uop__%s.c', name) ; +fprintf ('.') ; +system (cmd) ; + +% append to the *.h file +system ('cat control.m4 Generator/GB_uop.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> ../../FactoryKernels/GB_uop__include.h') ; + +delete ('control.m4') ; + diff --git a/GraphBLAS/Source/codegen/codegen_uop_template.m b/GraphBLAS/Source/codegen/codegen_uop_template.m new file mode 100644 index 0000000000..ae2a73f7c6 --- /dev/null +++ b/GraphBLAS/Source/codegen/codegen_uop_template.m @@ -0,0 +1,71 @@ +function codegen_uop_template (uop, bfunc, ifunc, ufunc, ffunc, dfunc, ... + fcfunc, dcfunc) +%CODEGEN_UNOP_TEMPLATE create uop functions +% +% codegen_uop_template (uop, bfunc, ifunc, ufunc, ffunc, dfunc, ... +% fcfunc, dcfunc) +% +% uop: operator name +% +% strings defining each function, or empty if no such unary operator: +% +% bfunc: bool +% ifunc: int8, int16, int32, int64 +% ufunc: uint8, uint16, uint32, uint64 +% ffunc: float +% dfunc: double +% fcfunc: GxB_FC32_t +% dcfunc: GxB_FC64_t +% +% Generate functions for a unary operator, for all types. + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +fprintf ('\n%-9s', uop) ; + +types = { +'bool', +'int8_t', +'int16_t', +'int32_t', +'int64_t', +'uint8_t', +'uint16_t', +'uint32_t', +'uint64_t', +'float', +'double', +'GxB_FC32_t', +'GxB_FC64_t' } ; + +ntypes = length (types) ; + +for code1 = 1:ntypes + ctype = types {code1} ; + + % determine the function + if (isequal (ctype, 'bool')) + func = bfunc ; + elseif (ctype (1) == 'i') + func = ifunc ; + elseif (ctype (1) == 'u') + func = ufunc ; + elseif (isequal (ctype, 'float')) + func = ffunc ; + elseif (isequal (ctype, 'double')) + func = dfunc ; + elseif (isequal (ctype, 'GxB_FC32_t')) + func = fcfunc ; + elseif (isequal (ctype, 'GxB_FC64_t')) + func = dcfunc ; + end + + if (isempty (func)) + % skip this operator + continue ; + end + + codegen_uop_method (uop, func, ctype, ctype) ; +end + diff --git a/GraphBLAS/Source/codegen_unop.m b/GraphBLAS/Source/codegen_unop.m deleted file mode 100644 index 45116d7ab1..0000000000 --- a/GraphBLAS/Source/codegen_unop.m +++ /dev/null @@ -1,413 +0,0 @@ -function codegen_unop -%CODEGEN_UNOP create functions for all unary operators -% -% This function creates all files of the form GB_unop__*.[ch], -% and the include file GB_unop__include.h. - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -fprintf ('\nunary operators:\n') ; - -fh = fopen ('FactoryKernels/GB_unop__include.h', 'w') ; -fprintf (fh, '//------------------------------------------------------------------------------\n') ; -fprintf (fh, '// GB_unop__include.h: definitions for GB_unop__*.c\n') ; -fprintf (fh, '//------------------------------------------------------------------------------\n') ; -fprintf (fh, '\n') ; -fprintf (fh, '// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved.\n') ; -fprintf (fh, '// SPDX-License-Identifier: Apache-2.0\n\n') ; -fprintf (fh, '// This file has been automatically generated from Generator/GB_unop.h') ; -fprintf (fh, '\n#include "GB_math.h"\n\n') ; -fclose (fh) ; - -codegen_unop_identity ; - -codegen_unop_template ('ainv', ... - 'xarg', ... % bool - '-xarg', ... % int - '-xarg', ... % uint - '-xarg', ... % float - '-xarg', ... % double - 'GB_FC32_ainv (xarg)', ... % GxB_FC32_t - 'GB_FC64_ainv (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('abs', ... - 'xarg', ... % bool - 'GB_IABS (xarg)', ... % int - 'xarg', ... % uint - 'fabsf (xarg)', ... % float - 'fabs (xarg)', ... % double - [ ], ... % GxB_FC32_t (see below) - [ ]) ; ... % GxB_FC64_t (see below) - -codegen_unop_template ('minv', ... - 'true', ... % bool - 'GB_iminv (xarg)', ... % int - 'GB_iminv (xarg)', ... % uint - '(1.0F)/xarg', ... % float - '1./xarg', ... % double - 'GB_FC32_div (GxB_CMPLXF (1,0), xarg)', ... % GxB_FC32_t - 'GB_FC64_div (GxB_CMPLX (1,0), xarg)') ; % GxB_FC64_t - -codegen_unop_template ('lnot', ... - '!xarg', ... % bool - '!(xarg != 0)', ... % int - '!(xarg != 0)', ... % uint - '!(xarg != 0)', ... % float - '!(xarg != 0)', ... % double - [ ], ... % GxB_FC32_t - [ ]) ; ... % GxB_FC64_t - -codegen_unop_template ('bnot', ... - [ ], ... % bool - '~(xarg)', ... % int - '~(xarg)', ... % uint - [ ], ... % float - [ ], ... % double - [ ], ... % GxB_FC32_t - [ ]) ; ... % GxB_FC64_t - -codegen_unop_template ('sqrt', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'sqrtf (xarg)', ... % float - 'sqrt (xarg)', ... % double - 'GB_csqrtf (xarg)', ... % GxB_FC32_t - 'GB_csqrt (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('log', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'logf (xarg)', ... % float - 'log (xarg)', ... % double - 'GB_clogf (xarg)', ... % GxB_FC32_t - 'GB_clog (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('exp', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'expf (xarg)', ... % float - 'exp (xarg)', ... % double - 'GB_cexpf (xarg)', ... % GxB_FC32_t - 'GB_cexp (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('sin', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'sinf (xarg)', ... % float - 'sin (xarg)', ... % double - 'GB_csinf (xarg)', ... % GxB_FC32_t - 'GB_csin (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('cos', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'cosf (xarg)', ... % float - 'cos (xarg)', ... % double - 'GB_ccosf (xarg)', ... % GxB_FC32_t - 'GB_ccos (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('tan', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'tanf (xarg)', ... % float - 'tan (xarg)', ... % double - 'GB_ctanf (xarg)', ... % GxB_FC32_t - 'GB_ctan (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('asin', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'asinf (xarg)', ... % float - 'asin (xarg)', ... % double - 'GB_casinf (xarg)', ... % GxB_FC32_t - 'GB_casin (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('acos', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'acosf (xarg)', ... % float - 'acos (xarg)', ... % double - 'GB_cacosf (xarg)', ... % GxB_FC32_t - 'GB_cacos (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('atan', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'atanf (xarg)', ... % float - 'atan (xarg)', ... % double - 'GB_catanf (xarg)', ... % GxB_FC32_t - 'GB_catan (xarg)') ; ... % GxB_FC64_t - - -codegen_unop_template ('sinh', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'sinhf (xarg)', ... % float - 'sinh (xarg)', ... % double - 'GB_csinhf (xarg)', ... % GxB_FC32_t - 'GB_csinh (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('cosh', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'coshf (xarg)', ... % float - 'cosh (xarg)', ... % double - 'GB_ccoshf (xarg)', ... % GxB_FC32_t - 'GB_ccosh (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('tanh', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'tanhf (xarg)', ... % float - 'tanh (xarg)', ... % double - 'GB_ctanhf (xarg)', ... % GxB_FC32_t - 'GB_ctanh (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('asinh', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'asinhf (xarg)', ... % float - 'asinh (xarg)', ... % double - 'GB_casinhf (xarg)', ... % GxB_FC32_t - 'GB_casinh (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('acosh', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'acoshf (xarg)', ... % float - 'acosh (xarg)', ... % double - 'GB_cacoshf (xarg)', ... % GxB_FC32_t - 'GB_cacosh (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('atanh', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'atanhf (xarg)', ... % float - 'atanh (xarg)', ... % double - 'GB_catanhf (xarg)', ... % GxB_FC32_t - 'GB_catanh (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('signum', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'GB_signumf (xarg)', ... % float - 'GB_signum (xarg)', ... % double - 'GB_csignumf (xarg)', ... % GxB_FC32_t - 'GB_csignum (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('ceil', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'ceilf (xarg)', ... % float - 'ceil (xarg)', ... % double - 'GB_cceilf (xarg)', ... % GxB_FC32_t - 'GB_cceil (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('floor', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'floorf (xarg)', ... % float - 'floor (xarg)', ... % double - 'GB_cfloorf (xarg)', ... % GxB_FC32_t - 'GB_cfloor (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('round', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'roundf (xarg)', ... % float - 'round (xarg)', ... % double - 'GB_croundf (xarg)', ... % GxB_FC32_t - 'GB_cround (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('trunc', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'truncf (xarg)', ... % float - 'trunc (xarg)', ... % double - 'GB_ctruncf (xarg)', ... % GxB_FC32_t - 'GB_ctrunc (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('exp2', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'exp2f (xarg)', ... % float - 'exp2 (xarg)', ... % double - 'GB_cexp2f (xarg)', ... % GxB_FC32_t - 'GB_cexp2 (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('expm1', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'expm1f (xarg)', ... % float - 'expm1 (xarg)', ... % double - 'GB_cexpm1f (xarg)', ... % GxB_FC32_t - 'GB_cexpm1 (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('log10', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'log10f (xarg)', ... % float - 'log10 (xarg)', ... % double - 'GB_clog10f (xarg)', ... % GxB_FC32_t - 'GB_clog10 (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('log1p', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'log1pf (xarg)', ... % float - 'log1p (xarg)', ... % double - 'GB_clog1pf (xarg)', ... % GxB_FC32_t - 'GB_clog1p (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('log2', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'log2f (xarg)', ... % float - 'log2 (xarg)', ... % double - 'GB_clog2f (xarg)', ... % GxB_FC32_t - 'GB_clog2 (xarg)') ; ... % GxB_FC64_t - -codegen_unop_template ('frexpx', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'GB_frexpxf (xarg)', ... % float - 'GB_frexpx (xarg)', ... % double - [ ], ... % GxB_FC32_t - [ ]) ; ... % GxB_FC64_t - -codegen_unop_template ('frexpe', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'GB_frexpef (xarg)', ... % float - 'GB_frexpe (xarg)', ... % double - [ ], ... % GxB_FC32_t - [ ]) ; ... % GxB_FC64_t - -codegen_unop_template ('lgamma', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'lgammaf (xarg)', ... % float - 'lgamma (xarg)', ... % double - [ ], ... % GxB_FC32_t - [ ]) ; ... % GxB_FC64_t - -codegen_unop_template ('tgamma', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'tgammaf (xarg)', ... % float - 'tgamma (xarg)', ... % double - [ ], ... % GxB_FC32_t - [ ]) ; ... % GxB_FC64_t - -codegen_unop_template ('erf', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'erff (xarg)', ... % float - 'erf (xarg)', ... % double - [ ], ... % GxB_FC32_t - [ ]) ; ... % GxB_FC64_t - -codegen_unop_template ('erfc', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'erfcf (xarg)', ... % float - 'erfc (xarg)', ... % double - [ ], ... % GxB_FC32_t - [ ]) ; ... % GxB_FC64_t - -codegen_unop_template ('cbrt', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - 'cbrtf (xarg)', ... % float - 'cbrt (xarg)', ... % double - [ ], ... % GxB_FC32_t - [ ]) ; ... % GxB_FC64_t - -codegen_unop_template ('conj', ... - [ ], ... % bool - [ ], ... % int - [ ], ... % uint - [ ], ... % float - [ ], ... % double - 'GB_conjf (xarg)', ... % GxB_FC32_t - 'GB_conj (xarg)') ; ... % GxB_FC64_t - -%------------------------------------------------------------------------------- -% z = f(x) where the type of z and x differ -%------------------------------------------------------------------------------- - -% z = abs (x): x is complex, z is real -fprintf ('\nabs ') ; -codegen_unop_method ('abs', 'GB_cabsf (xarg)', 'float' , 'GxB_FC32_t') ; -codegen_unop_method ('abs', 'GB_cabs (xarg)' , 'double', 'GxB_FC64_t') ; - -% z = creal (x): x is complex, z is real -fprintf ('\ncreal ') ; -codegen_unop_method ('creal', 'GB_crealf (xarg)', 'float' , 'GxB_FC32_t') ; -codegen_unop_method ('creal', 'GB_creal (xarg)' , 'double', 'GxB_FC64_t') ; - -% z = cimag (x): x is complex, z is real -fprintf ('\ncimag ') ; -codegen_unop_method ('cimag', 'GB_cimagf (xarg)', 'float' , 'GxB_FC32_t') ; -codegen_unop_method ('cimag', 'GB_cimag (xarg)' , 'double', 'GxB_FC64_t') ; - -% z = carg (x): x is complex, z is real -fprintf ('\ncarg ') ; -codegen_unop_method ('carg', 'GB_cargf (xarg)', 'float' , 'GxB_FC32_t') ; -codegen_unop_method ('carg', 'GB_carg (xarg)' , 'double', 'GxB_FC64_t') ; - -% z = isinf (x): x is floating-point, z is bool -fprintf ('\nisinf ') ; -codegen_unop_method ('isinf', 'isinf (xarg)' , 'bool', 'float') ; -codegen_unop_method ('isinf', 'isinf (xarg)' , 'bool', 'double') ; -codegen_unop_method ('isinf', 'GB_cisinff (xarg)', 'bool', 'GxB_FC32_t') ; -codegen_unop_method ('isinf', 'GB_cisinf (xarg)' , 'bool', 'GxB_FC64_t') ; - -% z = isnan (x): x is floating-point, z is bool -fprintf ('\nisnan ') ; -codegen_unop_method ('isnan', 'isnan (xarg)' , 'bool', 'float') ; -codegen_unop_method ('isnan', 'isnan (xarg)' , 'bool', 'double') ; -codegen_unop_method ('isnan', 'GB_cisnanf (xarg)', 'bool', 'GxB_FC32_t') ; -codegen_unop_method ('isnan', 'GB_cisnan (xarg)' , 'bool', 'GxB_FC64_t') ; - -% z = isfinite (x): x is floating-point, z is bool -fprintf ('\nisfinite ') ; -codegen_unop_method ('isfinite', 'isfinite (xarg)' , 'bool', 'float') ; -codegen_unop_method ('isfinite', 'isfinite (xarg)' , 'bool', 'double') ; -codegen_unop_method ('isfinite', 'GB_cisfinitef (xarg)', 'bool', 'GxB_FC32_t') ; -codegen_unop_method ('isfinite', 'GB_cisfinite (xarg)' , 'bool', 'GxB_FC64_t') ; -fprintf ('\n') ; - diff --git a/GraphBLAS/Source/codegen_unop_identity.m b/GraphBLAS/Source/codegen_unop_identity.m deleted file mode 100644 index 0c474e5011..0000000000 --- a/GraphBLAS/Source/codegen_unop_identity.m +++ /dev/null @@ -1,111 +0,0 @@ -function codegen_unop_identity -%CODEGEN_UNOP_IDENTITY create identity functions -% -% The 'identity' operator is unique: it is used for typecasting, and all 13*13 -% pairs of functions are generated. - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -unop = 'identity' ; -fprintf ('\n%-9s', unop) ; - -types = { -'bool', -'int8_t', -'int16_t', -'int32_t', -'int64_t', -'uint8_t', -'uint16_t', -'uint32_t', -'uint64_t', -'float', -'double', -'GxB_FC32_t', -'GxB_FC64_t' } ; - -ntypes = length (types) ; - -for code1 = 1:ntypes - ctype = types {code1} ; - for code2 = 1:ntypes - atype = types {code2} ; - - % determine the casting function - - if (isequal (atype, ctype)) - - % no typecasting - func = 'xarg' ; - - elseif (isequal (atype, 'GxB_FC32_t')) - - % typecasting from GxB_FC32_t - if (isequal (ctype, 'bool')) - % to bool from GxB_FC32_t - func = '(GB_crealf (xarg) != 0) || (GB_cimagf (xarg) != 0)' ; - elseif (codegen_contains (ctype, 'int')) - % to integer from GxB_FC32_t - func = sprintf ('GB_cast_to_%s ((double) GB_crealf (xarg))', ctype) ; - elseif (isequal (ctype, 'float') || isequal (ctype, 'double')) - % to float or double from GxB_FC32_t - func = sprintf ('(%s) GB_crealf (xarg)', ctype) ; - elseif (isequal (ctype, 'GxB_FC64_t')) - % to GxB_FC64_t from GxB_FC32_t - func = 'GJ_CMPLX64 ((double) GB_crealf (xarg), (double) GB_cimagf (xarg))' ; - end - - elseif (isequal (atype, 'GxB_FC64_t')) - - % typecasting from GxB_FC64_t - if (isequal (ctype, 'bool')) - % to bool from GxB_FC64_t - func = '(GB_creal (xarg) != 0) || (GB_cimag (xarg) != 0)' ; - elseif (codegen_contains (ctype, 'int')) - % to integer from GxB_FC64_t - func = sprintf ('GB_cast_to_%s (GB_creal (xarg))', ctype) ; - elseif (isequal (ctype, 'float') || isequal (ctype, 'double')) - % to float or double from GxB_FC64_t - func = sprintf ('(%s) GB_creal (xarg)', ctype) ; - elseif (isequal (ctype, 'GxB_FC32_t')) - % to GxB_FC32_t from GxB_FC64_t - func = 'GJ_CMPLX32 ((float) GB_creal (xarg), (float) GB_cimag (xarg))' ; - end - - elseif (isequal (atype, 'float') || isequal (atype, 'double')) - - % typecasting from float or double - if (isequal (ctype, 'bool')) - % to bool from float or double - func = '(xarg != 0)' ; - elseif (codegen_contains (ctype, 'int')) - % to integer from float or double - func = sprintf ('GB_cast_to_%s ((double) (xarg))', ctype) ; - elseif (isequal (ctype, 'GxB_FC32_t')) - % to GxB_FC32_t from float or double - func = 'GJ_CMPLX32 ((float) (xarg), 0)' ; - elseif (isequal (ctype, 'GxB_FC64_t')) - % to GxB_FC64_t from float or double - func = 'GJ_CMPLX64 ((double) (xarg), 0)' ; - end - - elseif (isequal (ctype, 'GxB_FC32_t')) - - % typecasting to GxB_FC32_t from any real type - func = 'GJ_CMPLX32 ((float) (xarg), 0)' ; - - elseif (isequal (ctype, 'GxB_FC64_t')) - - % typecasting to GxB_FC64_t from any real type - func = 'GJ_CMPLX64 ((double) (xarg), 0)' ; - - else - % use ANSI typecasting rules - func = sprintf ('(%s) xarg', ctype) ; - end - - codegen_unop_method (unop, func, ctype, atype) ; - end -end - diff --git a/GraphBLAS/Source/codegen_unop_method.m b/GraphBLAS/Source/codegen_unop_method.m deleted file mode 100644 index 733c7829b3..0000000000 --- a/GraphBLAS/Source/codegen_unop_method.m +++ /dev/null @@ -1,88 +0,0 @@ -function codegen_unop_method (unop, op, ztype, xtype) -%CODEGEN_UNOP_METHOD create a function to compute C=unop(A) -% -% codegen_unop_method (unop, op, ztype, xtype) -% -% unop: the name of the operator -% op: a string defining the computation -% ztype: the type of z for z=f(x) -% xtype: the type of x for z=f(x) - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -f = fopen ('control.m4', 'w') ; -fprintf (f, 'm4_divert(-1)\n') ; - -[zname, zunsigned, zbits] = codegen_type (ztype) ; -[xname, xunsigned, xbits] = codegen_type (xtype) ; - -name = sprintf ('%s_%s_%s', unop, zname, xname) ; - -% determine if the op is identity with no typecast -is_identity = isequal (unop, 'identity') ; -no_typecast = isequal (ztype, xtype) ; -if (is_identity && no_typecast) - % disable the _unop_apply method - fprintf (f, 'm4_define(`_unop_apply'', `_unop_apply__(none)'')\n') ; - fprintf (f, 'm4_define(`if_unop_apply_enabled'', `-1'')\n') ; -else - fprintf (f, 'm4_define(`_unop_apply'', `_unop_apply__%s'')\n', name) ; - fprintf (f, 'm4_define(`if_unop_apply_enabled'', `0'')\n') ; -end - -% function names -fprintf (f, 'm4_define(`_unop_tran'', `_unop_tran__%s'')\n', name) ; - -% type of C and A -fprintf (f, 'm4_define(`GB_ctype'', `#define GB_C_TYPE %s'')\n', ztype) ; -fprintf (f, 'm4_define(`GB_atype'', `#define GB_A_TYPE %s'')\n', xtype) ; -fprintf (f, 'm4_define(`GB_xtype'', `#define GB_X_TYPE %s'')\n', xtype) ; -fprintf (f, 'm4_define(`GB_ztype'', `#define GB_Z_TYPE %s'')\n', ztype) ; - -A_is_pattern = (isempty (strfind (op, 'xarg'))) ; - -% to get an entry from A -if (A_is_pattern) - % A(i,j) is not needed - fprintf (f, 'm4_define(`GB_declarea'', `#define GB_DECLAREA(aij)'')\n') ; - fprintf (f, 'm4_define(`GB_geta'', `#define GB_GETA(aij,Ax,pA,A_iso)'')\n') ; -else - % A is never iso - fprintf (f, 'm4_define(`GB_declarea'', `#define GB_DECLAREA(aij) %s aij'')\n', xtype) ; - fprintf (f, 'm4_define(`GB_geta'', `#define GB_GETA(aij,Ax,pA,A_iso) aij = Ax [pA]'')\n') ; -end - -% type-specific iminv -if (~isempty (strfind (op, 'iminv'))) - if (zunsigned) - op = strrep (op, 'iminv (', sprintf ('idiv_uint%d (1, ', zbits)) ; - else - op = strrep (op, 'iminv (', sprintf ('idiv_int%d (1, ', zbits)) ; - end -end - -% create the unary operator -op = strrep (op, 'xarg', 'x') ; -fprintf (f, 'm4_define(`GB_unaryop'', `#define GB_UNARYOP(z,x) z = %s'')\n', op) ; - -% create the disable flag -disable = sprintf ('defined(GxB_NO_%s)', upper (unop)) ; -disable = [disable (sprintf (' || defined(GxB_NO_%s)', upper (zname)))] ; -if (~isequal (zname, xname)) - disable = [disable (sprintf (' || defined(GxB_NO_%s)', upper (xname)))] ; -end -fprintf (f, 'm4_define(`GB_disable'', `#if (%s)\n#define GB_DISABLE 1\n#else\n#define GB_DISABLE 0\n#endif\n'')\n', disable) ; -fprintf (f, 'm4_divert(0)\n') ; -fclose (f) ; - -% construct the *.c file -cmd = sprintf ('cat control.m4 Generator/GB_unop.c | m4 -P | awk -f codegen_blank.awk > FactoryKernels/GB_unop__%s.c', name) ; -fprintf ('.') ; -system (cmd) ; - -% append to the *.h file -system ('cat control.m4 Generator/GB_unop.h | m4 -P | awk -f codegen_blank.awk | grep -v SPDX >> FactoryKernels/GB_unop__include.h') ; - -delete ('control.m4') ; - diff --git a/GraphBLAS/Source/codegen_unop_template.m b/GraphBLAS/Source/codegen_unop_template.m deleted file mode 100644 index e01fa496c4..0000000000 --- a/GraphBLAS/Source/codegen_unop_template.m +++ /dev/null @@ -1,71 +0,0 @@ -function codegen_unop_template (unop, bfunc, ifunc, ufunc, ffunc, dfunc, ... - fcfunc, dcfunc) -%CODEGEN_UNOP_TEMPLATE create unop functions -% -% codegen_unop_template (unop, bfunc, ifunc, ufunc, ffunc, dfunc, ... -% fcfunc, dcfunc) -% -% unop: operator name -% -% strings defining each function, or empty if no such unary operator: -% -% bfunc: bool -% ifunc: int8, int16, int32, int64 -% ufunc: uint8, uint16, uint32, uint64 -% ffunc: float -% dfunc: double -% fcfunc: GxB_FC32_t -% dcfunc: GxB_FC64_t -% -% Generate functions for a unary operator, for all types. - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -fprintf ('\n%-9s', unop) ; - -types = { -'bool', -'int8_t', -'int16_t', -'int32_t', -'int64_t', -'uint8_t', -'uint16_t', -'uint32_t', -'uint64_t', -'float', -'double', -'GxB_FC32_t', -'GxB_FC64_t' } ; - -ntypes = length (types) ; - -for code1 = 1:ntypes - ctype = types {code1} ; - - % determine the function - if (isequal (ctype, 'bool')) - func = bfunc ; - elseif (ctype (1) == 'i') - func = ifunc ; - elseif (ctype (1) == 'u') - func = ufunc ; - elseif (isequal (ctype, 'float')) - func = ffunc ; - elseif (isequal (ctype, 'double')) - func = dfunc ; - elseif (isequal (ctype, 'GxB_FC32_t')) - func = fcfunc ; - elseif (isequal (ctype, 'GxB_FC64_t')) - func = dcfunc ; - end - - if (isempty (func)) - % skip this operator - continue ; - end - - codegen_unop_method (unop, func, ctype, ctype) ; -end - diff --git a/GraphBLAS/Source/GB_BinaryOp_compatible.c b/GraphBLAS/Source/compatible/GB_BinaryOp_compatible.c similarity index 100% rename from GraphBLAS/Source/GB_BinaryOp_compatible.c rename to GraphBLAS/Source/compatible/GB_BinaryOp_compatible.c diff --git a/GraphBLAS/Source/GB_Mask_compatible.c b/GraphBLAS/Source/compatible/GB_Mask_compatible.c similarity index 100% rename from GraphBLAS/Source/GB_Mask_compatible.c rename to GraphBLAS/Source/compatible/GB_Mask_compatible.c diff --git a/GraphBLAS/Source/GB_Type_compatible.c b/GraphBLAS/Source/compatible/GB_Type_compatible.c similarity index 100% rename from GraphBLAS/Source/GB_Type_compatible.c rename to GraphBLAS/Source/compatible/GB_Type_compatible.c diff --git a/GraphBLAS/Source/GB_code_compatible.h b/GraphBLAS/Source/compatible/GB_code_compatible.h similarity index 100% rename from GraphBLAS/Source/GB_code_compatible.h rename to GraphBLAS/Source/compatible/GB_code_compatible.h diff --git a/GraphBLAS/Source/GB_compatible.c b/GraphBLAS/Source/compatible/GB_compatible.c similarity index 100% rename from GraphBLAS/Source/GB_compatible.c rename to GraphBLAS/Source/compatible/GB_compatible.c diff --git a/GraphBLAS/Source/GB_compatible.h b/GraphBLAS/Source/compatible/GB_compatible.h similarity index 100% rename from GraphBLAS/Source/GB_compatible.h rename to GraphBLAS/Source/compatible/GB_compatible.h diff --git a/GraphBLAS/Source/GB_concat.c b/GraphBLAS/Source/concat/GB_concat.c similarity index 99% rename from GraphBLAS/Source/GB_concat.c rename to GraphBLAS/Source/concat/GB_concat.c index 8c48c2dcbf..1dc7999910 100644 --- a/GraphBLAS/Source/GB_concat.c +++ b/GraphBLAS/Source/concat/GB_concat.c @@ -15,7 +15,7 @@ GB_FREE_WORKSPACE ; \ GB_phybix_free (C) ; -#include "GB_concat.h" +#include "concat/GB_concat.h" GrB_Info GB_concat // concatenate a 2D array of matrices ( diff --git a/GraphBLAS/Source/GB_concat.h b/GraphBLAS/Source/concat/GB_concat.h similarity index 96% rename from GraphBLAS/Source/GB_concat.h rename to GraphBLAS/Source/concat/GB_concat.h index a8e6a893a6..13ef525717 100644 --- a/GraphBLAS/Source/GB_concat.h +++ b/GraphBLAS/Source/concat/GB_concat.h @@ -10,9 +10,9 @@ #ifndef GB_CONCAT_H #define GB_CONCAT_H #include "GB.h" -#include "GB_transpose.h" -#include "GB_ek_slice.h" -#include "GB_build.h" +#include "transpose/GB_transpose.h" +#include "slice/GB_ek_slice.h" +#include "builder/GB_build.h" #define GB_TILE(Tiles,i,j) (*(Tiles + (i) * n + (j))) diff --git a/GraphBLAS/Source/GB_concat_bitmap.c b/GraphBLAS/Source/concat/GB_concat_bitmap.c similarity index 93% rename from GraphBLAS/Source/GB_concat_bitmap.c rename to GraphBLAS/Source/concat/GB_concat_bitmap.c index bd35a48f71..b0777ae2d5 100644 --- a/GraphBLAS/Source/GB_concat_bitmap.c +++ b/GraphBLAS/Source/concat/GB_concat_bitmap.c @@ -17,10 +17,10 @@ GB_FREE_WORKSPACE ; \ GB_phybix_free (C) ; -#include "GB_concat.h" -#include "GB_unused.h" -#include "GB_apply.h" -#include "GB_stringify.h" +#include "concat/GB_concat.h" +#include "include/GB_unused.h" +#include "apply/GB_apply.h" +#include "jitifyer/GB_stringify.h" GrB_Info GB_concat_bitmap // concatenate into a bitmap matrix ( @@ -151,7 +151,7 @@ GrB_Info GB_concat_bitmap // concatenate into a bitmap matrix #define GB_ISO_CONCAT #define GB_COPY(pC,pA,A_iso) ; - #include "GB_concat_bitmap_template.c" + #include "concat/template/GB_concat_bitmap_template.c" info = GrB_SUCCESS ; } @@ -177,21 +177,21 @@ GrB_Info GB_concat_bitmap // concatenate into a bitmap matrix case GB_1BYTE : // uint8, int8, bool, or 1-byte user #define GB_C_TYPE uint8_t #define GB_A_TYPE uint8_t - #include "GB_concat_bitmap_template.c" + #include "concat/template/GB_concat_bitmap_template.c" info = GrB_SUCCESS ; break ; case GB_2BYTE : // uint16, int16, or 2-byte user #define GB_C_TYPE uint16_t #define GB_A_TYPE uint16_t - #include "GB_concat_bitmap_template.c" + #include "concat/template/GB_concat_bitmap_template.c" info = GrB_SUCCESS ; break ; case GB_4BYTE : // uint32, int32, float, or 4-byte #define GB_C_TYPE uint32_t #define GB_A_TYPE uint32_t - #include "GB_concat_bitmap_template.c" + #include "concat/template/GB_concat_bitmap_template.c" info = GrB_SUCCESS ; break ; @@ -199,14 +199,14 @@ GrB_Info GB_concat_bitmap // concatenate into a bitmap matrix // complex, or 8-byte user defined #define GB_C_TYPE uint64_t #define GB_A_TYPE uint64_t - #include "GB_concat_bitmap_template.c" + #include "concat/template/GB_concat_bitmap_template.c" info = GrB_SUCCESS ; break ; case GB_16BYTE : // double complex or 16-byte user #define GB_C_TYPE GB_blob16 #define GB_A_TYPE GB_blob16 - #include "GB_concat_bitmap_template.c" + #include "concat/template/GB_concat_bitmap_template.c" info = GrB_SUCCESS ; break ; @@ -244,7 +244,7 @@ GrB_Info GB_concat_bitmap // concatenate into a bitmap matrix #define GB_COPY(pC,pA,A_iso) \ cast_A_to_C (Cx + (pC)*csize, \ Ax + (A_iso ? 0:(pA)*asize), asize) ; - #include "GB_concat_bitmap_template.c" + #include "concat/template/GB_concat_bitmap_template.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GB_concat_full.c b/GraphBLAS/Source/concat/GB_concat_full.c similarity index 94% rename from GraphBLAS/Source/GB_concat_full.c rename to GraphBLAS/Source/concat/GB_concat_full.c index b764263221..52621b1664 100644 --- a/GraphBLAS/Source/GB_concat_full.c +++ b/GraphBLAS/Source/concat/GB_concat_full.c @@ -16,9 +16,9 @@ GB_FREE_WORKSPACE ; \ GB_phybix_free (C) ; -#include "GB_concat.h" -#include "GB_stringify.h" -#include "GB_apply.h" +#include "concat/GB_concat.h" +#include "jitifyer/GB_stringify.h" +#include "apply/GB_apply.h" GrB_Info GB_concat_full // concatenate into a full matrix ( @@ -161,21 +161,21 @@ GrB_Info GB_concat_full // concatenate into a full matrix case GB_1BYTE : // uint8, int8, bool, or 1-byte user #define GB_C_TYPE uint8_t #define GB_A_TYPE uint8_t - #include "GB_concat_full_template.c" + #include "concat/template/GB_concat_full_template.c" info = GrB_SUCCESS ; break ; case GB_2BYTE : // uint16, int16, or 2-byte user #define GB_C_TYPE uint16_t #define GB_A_TYPE uint16_t - #include "GB_concat_full_template.c" + #include "concat/template/GB_concat_full_template.c" info = GrB_SUCCESS ; break ; case GB_4BYTE : // uint32, int32, float, or 4-byte user #define GB_C_TYPE uint32_t #define GB_A_TYPE uint32_t - #include "GB_concat_full_template.c" + #include "concat/template/GB_concat_full_template.c" info = GrB_SUCCESS ; break ; @@ -183,14 +183,14 @@ GrB_Info GB_concat_full // concatenate into a full matrix // or 8-byte user defined #define GB_C_TYPE uint64_t #define GB_A_TYPE uint64_t - #include "GB_concat_full_template.c" + #include "concat/template/GB_concat_full_template.c" info = GrB_SUCCESS ; break ; case GB_16BYTE : // double complex or 16-byte user #define GB_C_TYPE GB_blob16 #define GB_A_TYPE GB_blob16 - #include "GB_concat_full_template.c" + #include "concat/template/GB_concat_full_template.c" info = GrB_SUCCESS ; break ; @@ -228,7 +228,7 @@ GrB_Info GB_concat_full // concatenate into a full matrix #define GB_COPY(pC,pA,A_iso) \ cast_A_to_C (Cx + (pC)*csize, \ Ax + (A_iso ? 0:(pA)*asize), asize) ; - #include "GB_concat_full_template.c" + #include "concat/template/GB_concat_full_template.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GB_concat_hyper.c b/GraphBLAS/Source/concat/GB_concat_hyper.c similarity index 99% rename from GraphBLAS/Source/GB_concat_hyper.c rename to GraphBLAS/Source/concat/GB_concat_hyper.c index 599b053600..fb59770f09 100644 --- a/GraphBLAS/Source/GB_concat_hyper.c +++ b/GraphBLAS/Source/concat/GB_concat_hyper.c @@ -17,7 +17,8 @@ GB_phybix_free (C) ; \ } -#include "GB_concat.h" +#include "concat/GB_concat.h" +#include "extractTuples/GB_extractTuples.h" GrB_Info GB_concat_hyper // concatenate into a hypersparse matrix ( diff --git a/GraphBLAS/Source/GB_concat_sparse.c b/GraphBLAS/Source/concat/GB_concat_sparse.c similarity index 96% rename from GraphBLAS/Source/GB_concat_sparse.c rename to GraphBLAS/Source/concat/GB_concat_sparse.c index 3cec0de8b7..ee9d37015e 100644 --- a/GraphBLAS/Source/GB_concat_sparse.c +++ b/GraphBLAS/Source/concat/GB_concat_sparse.c @@ -27,10 +27,10 @@ GB_phybix_free (C) ; \ } -#include "GB_concat.h" -#include "GB_stringify.h" -#include "GB_apply.h" -#include "GB_unused.h" +#include "concat/GB_concat.h" +#include "jitifyer/GB_stringify.h" +#include "apply/GB_apply.h" +#include "include/GB_unused.h" GrB_Info GB_concat_sparse // concatenate into a sparse matrix ( @@ -333,7 +333,7 @@ GrB_Info GB_concat_sparse // concatenate into a sparse matrix #define GB_ISO_CONCAT #define GB_COPY(pC,pA,A_iso) ; - #include "GB_concat_sparse_template.c" + #include "concat/template/GB_concat_sparse_template.c" info = GrB_SUCCESS ; } @@ -359,21 +359,21 @@ GrB_Info GB_concat_sparse // concatenate into a sparse matrix case GB_1BYTE : // uint8, int8, bool, or 1-byte user #define GB_C_TYPE uint8_t #define GB_A_TYPE uint8_t - #include "GB_concat_sparse_template.c" + #include "concat/template/GB_concat_sparse_template.c" info = GrB_SUCCESS ; break ; case GB_2BYTE : // uint16, int16, or 2-byte user #define GB_C_TYPE uint16_t #define GB_A_TYPE uint16_t - #include "GB_concat_sparse_template.c" + #include "concat/template/GB_concat_sparse_template.c" info = GrB_SUCCESS ; break ; case GB_4BYTE : // uint32, int32, float, or 4-byte #define GB_C_TYPE uint32_t #define GB_A_TYPE uint32_t - #include "GB_concat_sparse_template.c" + #include "concat/template/GB_concat_sparse_template.c" info = GrB_SUCCESS ; break ; @@ -381,14 +381,14 @@ GrB_Info GB_concat_sparse // concatenate into a sparse matrix // complex, or 8-byte user defined #define GB_C_TYPE uint64_t #define GB_A_TYPE uint64_t - #include "GB_concat_sparse_template.c" + #include "concat/template/GB_concat_sparse_template.c" info = GrB_SUCCESS ; break ; case GB_16BYTE : // double complex or 16-byte user #define GB_C_TYPE GB_blob16 #define GB_A_TYPE GB_blob16 - #include "GB_concat_sparse_template.c" + #include "concat/template/GB_concat_sparse_template.c" info = GrB_SUCCESS ; break ; @@ -427,7 +427,7 @@ GrB_Info GB_concat_sparse // concatenate into a sparse matrix #define GB_COPY(pC,pA,A_iso) \ cast_A_to_C (Cx + (pC)*csize, \ Ax + (A_iso ? 0:(pA)*asize), asize) ; - #include "GB_concat_sparse_template.c" + #include "concat/template/GB_concat_sparse_template.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GxB_Matrix_concat.c b/GraphBLAS/Source/concat/GxB_Matrix_concat.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_concat.c rename to GraphBLAS/Source/concat/GxB_Matrix_concat.c index c2e9415fbe..43902df654 100644 --- a/GraphBLAS/Source/GxB_Matrix_concat.c +++ b/GraphBLAS/Source/concat/GxB_Matrix_concat.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_concat.h" +#include "concat/GB_concat.h" GrB_Info GxB_Matrix_concat // concatenate a 2D array of matrices ( diff --git a/GraphBLAS/Source/Template/GB_concat_bitmap_bitmap.c b/GraphBLAS/Source/concat/template/GB_concat_bitmap_bitmap.c similarity index 100% rename from GraphBLAS/Source/Template/GB_concat_bitmap_bitmap.c rename to GraphBLAS/Source/concat/template/GB_concat_bitmap_bitmap.c diff --git a/GraphBLAS/Source/Template/GB_concat_bitmap_full.c b/GraphBLAS/Source/concat/template/GB_concat_bitmap_full.c similarity index 100% rename from GraphBLAS/Source/Template/GB_concat_bitmap_full.c rename to GraphBLAS/Source/concat/template/GB_concat_bitmap_full.c diff --git a/GraphBLAS/Source/Template/GB_concat_bitmap_sparse.c b/GraphBLAS/Source/concat/template/GB_concat_bitmap_sparse.c similarity index 100% rename from GraphBLAS/Source/Template/GB_concat_bitmap_sparse.c rename to GraphBLAS/Source/concat/template/GB_concat_bitmap_sparse.c diff --git a/GraphBLAS/Source/Template/GB_concat_bitmap_template.c b/GraphBLAS/Source/concat/template/GB_concat_bitmap_template.c similarity index 83% rename from GraphBLAS/Source/Template/GB_concat_bitmap_template.c rename to GraphBLAS/Source/concat/template/GB_concat_bitmap_template.c index 8326e9f339..d88fd8b81f 100644 --- a/GraphBLAS/Source/Template/GB_concat_bitmap_template.c +++ b/GraphBLAS/Source/concat/template/GB_concat_bitmap_template.c @@ -37,11 +37,11 @@ #ifdef GB_JIT_KERNEL { #if GB_A_IS_FULL - #include "GB_concat_bitmap_full.c" + #include "template/GB_concat_bitmap_full.c" #elif GB_A_IS_BITMAP - #include "GB_concat_bitmap_bitmap.c" + #include "template/GB_concat_bitmap_bitmap.c" #else - #include "GB_concat_bitmap_sparse.c" + #include "template/GB_concat_bitmap_sparse.c" #endif } #else @@ -51,19 +51,19 @@ case GxB_FULL : // A is full { - #include "GB_concat_bitmap_full.c" + #include "template/GB_concat_bitmap_full.c" } break ; case GxB_BITMAP : // A is bitmap { - #include "GB_concat_bitmap_bitmap.c" + #include "template/GB_concat_bitmap_bitmap.c" } break ; default : // A is sparse or hypersparse { - #include "GB_concat_bitmap_sparse.c" + #include "template/GB_concat_bitmap_sparse.c" } break ; } diff --git a/GraphBLAS/Source/Template/GB_concat_full_template.c b/GraphBLAS/Source/concat/template/GB_concat_full_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_concat_full_template.c rename to GraphBLAS/Source/concat/template/GB_concat_full_template.c diff --git a/GraphBLAS/Source/Template/GB_concat_sparse_template.c b/GraphBLAS/Source/concat/template/GB_concat_sparse_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_concat_sparse_template.c rename to GraphBLAS/Source/concat/template/GB_concat_sparse_template.c diff --git a/GraphBLAS/Source/GB_Context.c b/GraphBLAS/Source/context/GB_Context.c similarity index 100% rename from GraphBLAS/Source/GB_Context.c rename to GraphBLAS/Source/context/GB_Context.c diff --git a/GraphBLAS/Source/GB_Context.h b/GraphBLAS/Source/context/GB_Context.h similarity index 100% rename from GraphBLAS/Source/GB_Context.h rename to GraphBLAS/Source/context/GB_Context.h diff --git a/GraphBLAS/Source/GxB_Context_disengage.c b/GraphBLAS/Source/context/GxB_Context_disengage.c similarity index 100% rename from GraphBLAS/Source/GxB_Context_disengage.c rename to GraphBLAS/Source/context/GxB_Context_disengage.c diff --git a/GraphBLAS/Source/GxB_Context_engage.c b/GraphBLAS/Source/context/GxB_Context_engage.c similarity index 100% rename from GraphBLAS/Source/GxB_Context_engage.c rename to GraphBLAS/Source/context/GxB_Context_engage.c diff --git a/GraphBLAS/Source/GxB_Context_free.c b/GraphBLAS/Source/context/GxB_Context_free.c similarity index 100% rename from GraphBLAS/Source/GxB_Context_free.c rename to GraphBLAS/Source/context/GxB_Context_free.c diff --git a/GraphBLAS/Source/GxB_Context_new.c b/GraphBLAS/Source/context/GxB_Context_new.c similarity index 100% rename from GraphBLAS/Source/GxB_Context_new.c rename to GraphBLAS/Source/context/GxB_Context_new.c diff --git a/GraphBLAS/Source/GB_conform.c b/GraphBLAS/Source/convert/GB_conform.c similarity index 98% rename from GraphBLAS/Source/GB_conform.c rename to GraphBLAS/Source/convert/GB_conform.c index 85beb5acfa..7e4a0072e8 100644 --- a/GraphBLAS/Source/GB_conform.c +++ b/GraphBLAS/Source/convert/GB_conform.c @@ -140,6 +140,11 @@ GrB_Info GB_conform // conform a matrix to its desired sparsity structure { A->nvec_nonempty = GB_nvec_nonempty (A) ; } + if (A->no_hyper_hash) + { + // A does not want the hyper_hash, so free A->Y if present + GB_hyper_hash_free (A) ; + } //-------------------------------------------------------------------------- // select the sparsity structure diff --git a/GraphBLAS/Source/GB_conform_hyper.c b/GraphBLAS/Source/convert/GB_conform_hyper.c similarity index 100% rename from GraphBLAS/Source/GB_conform_hyper.c rename to GraphBLAS/Source/convert/GB_conform_hyper.c diff --git a/GraphBLAS/Source/GB_convert.h b/GraphBLAS/Source/convert/GB_convert.h similarity index 97% rename from GraphBLAS/Source/GB_convert.h rename to GraphBLAS/Source/convert/GB_convert.h index bce53382f4..19fd07a5ec 100644 --- a/GraphBLAS/Source/GB_convert.h +++ b/GraphBLAS/Source/convert/GB_convert.h @@ -220,7 +220,7 @@ static inline bool GB_as_if_full if (GB_ANY_PENDING_WORK (A)) { // A has pending work and so cannot be treated as if full. - // The existence of the hyperhash is not considered in this test. + // The existence of the hyper_hash is not considered in this test. return (false) ; } // A is sparse, hyper, or bitmap: check if all entries present @@ -235,6 +235,12 @@ GrB_Info GB_conform // conform a matrix to its desired sparsity structure GB_Werk Werk ) ; +GrB_Info GB_conform_hyper // conform a matrix to sparse/hypersparse +( + GrB_Matrix A, // matrix to conform + GB_Werk Werk +) ; + static inline const char *GB_sparsity_char (int sparsity) { switch (sparsity) diff --git a/GraphBLAS/Source/GB_convert_any_to_bitmap.c b/GraphBLAS/Source/convert/GB_convert_any_to_bitmap.c similarity index 100% rename from GraphBLAS/Source/GB_convert_any_to_bitmap.c rename to GraphBLAS/Source/convert/GB_convert_any_to_bitmap.c diff --git a/GraphBLAS/Source/GB_convert_any_to_full.c b/GraphBLAS/Source/convert/GB_convert_any_to_full.c similarity index 100% rename from GraphBLAS/Source/GB_convert_any_to_full.c rename to GraphBLAS/Source/convert/GB_convert_any_to_full.c diff --git a/GraphBLAS/Source/GB_convert_any_to_hyper.c b/GraphBLAS/Source/convert/GB_convert_any_to_hyper.c similarity index 100% rename from GraphBLAS/Source/GB_convert_any_to_hyper.c rename to GraphBLAS/Source/convert/GB_convert_any_to_hyper.c diff --git a/GraphBLAS/Source/GB_convert_any_to_iso.c b/GraphBLAS/Source/convert/GB_convert_any_to_iso.c similarity index 100% rename from GraphBLAS/Source/GB_convert_any_to_iso.c rename to GraphBLAS/Source/convert/GB_convert_any_to_iso.c diff --git a/GraphBLAS/Source/GB_convert_any_to_non_iso.c b/GraphBLAS/Source/convert/GB_convert_any_to_non_iso.c similarity index 100% rename from GraphBLAS/Source/GB_convert_any_to_non_iso.c rename to GraphBLAS/Source/convert/GB_convert_any_to_non_iso.c diff --git a/GraphBLAS/Source/GB_convert_any_to_sparse.c b/GraphBLAS/Source/convert/GB_convert_any_to_sparse.c similarity index 100% rename from GraphBLAS/Source/GB_convert_any_to_sparse.c rename to GraphBLAS/Source/convert/GB_convert_any_to_sparse.c diff --git a/GraphBLAS/Source/GB_convert_bitmap_to_sparse.c b/GraphBLAS/Source/convert/GB_convert_bitmap_to_sparse.c similarity index 100% rename from GraphBLAS/Source/GB_convert_bitmap_to_sparse.c rename to GraphBLAS/Source/convert/GB_convert_bitmap_to_sparse.c diff --git a/GraphBLAS/Source/GB_convert_bitmap_to_sparse_test.c b/GraphBLAS/Source/convert/GB_convert_bitmap_to_sparse_test.c similarity index 100% rename from GraphBLAS/Source/GB_convert_bitmap_to_sparse_test.c rename to GraphBLAS/Source/convert/GB_convert_bitmap_to_sparse_test.c diff --git a/GraphBLAS/Source/GB_convert_bitmap_worker.c b/GraphBLAS/Source/convert/GB_convert_bitmap_worker.c similarity index 99% rename from GraphBLAS/Source/GB_convert_bitmap_worker.c rename to GraphBLAS/Source/convert/GB_convert_bitmap_worker.c index d77e647edd..c1955af296 100644 --- a/GraphBLAS/Source/GB_convert_bitmap_worker.c +++ b/GraphBLAS/Source/convert/GB_convert_bitmap_worker.c @@ -16,8 +16,8 @@ // TODO allow this function to do typecasting. #include "GB.h" -#include "GB_partition.h" -#include "GB_unused.h" +#include "slice/include/GB_partition.h" +#include "include/GB_unused.h" GrB_Info GB_convert_bitmap_worker // extract CSC/CSR or triplets from bitmap ( diff --git a/GraphBLAS/Source/GB_convert_full_to_bitmap.c b/GraphBLAS/Source/convert/GB_convert_full_to_bitmap.c similarity index 100% rename from GraphBLAS/Source/GB_convert_full_to_bitmap.c rename to GraphBLAS/Source/convert/GB_convert_full_to_bitmap.c diff --git a/GraphBLAS/Source/GB_convert_full_to_sparse.c b/GraphBLAS/Source/convert/GB_convert_full_to_sparse.c similarity index 100% rename from GraphBLAS/Source/GB_convert_full_to_sparse.c rename to GraphBLAS/Source/convert/GB_convert_full_to_sparse.c diff --git a/GraphBLAS/Source/GB_convert_hyper_to_sparse.c b/GraphBLAS/Source/convert/GB_convert_hyper_to_sparse.c similarity index 100% rename from GraphBLAS/Source/GB_convert_hyper_to_sparse.c rename to GraphBLAS/Source/convert/GB_convert_hyper_to_sparse.c diff --git a/GraphBLAS/Source/GB_convert_hyper_to_sparse_test.c b/GraphBLAS/Source/convert/GB_convert_hyper_to_sparse_test.c similarity index 100% rename from GraphBLAS/Source/GB_convert_hyper_to_sparse_test.c rename to GraphBLAS/Source/convert/GB_convert_hyper_to_sparse_test.c diff --git a/GraphBLAS/Source/GB_convert_s2b.c b/GraphBLAS/Source/convert/GB_convert_s2b.c similarity index 94% rename from GraphBLAS/Source/GB_convert_s2b.c rename to GraphBLAS/Source/convert/GB_convert_s2b.c index 1ecb4d1581..9f92724189 100644 --- a/GraphBLAS/Source/GB_convert_s2b.c +++ b/GraphBLAS/Source/convert/GB_convert_s2b.c @@ -13,9 +13,9 @@ // FUTURE: A could also be typecasted and/or a unary operator applied, // via the JIT kernel. -#include "GB_apply.h" -#include "GB_ek_slice.h" -#include "GB_stringify.h" +#include "apply/GB_apply.h" +#include "slice/GB_ek_slice.h" +#include "jitifyer/GB_stringify.h" #define GB_FREE_WORKSPACE \ { \ @@ -162,7 +162,7 @@ GrB_Info GB_convert_s2b // convert sparse/hypersparse to bitmap // A is iso; numerical entries are not modified #undef GB_COPY #define GB_COPY(Axnew,pnew,Ax,p) ; - #include "GB_convert_s2b_template.c" + #include "convert/template/GB_convert_s2b_template.c" info = GrB_SUCCESS ; } else @@ -179,32 +179,32 @@ GrB_Info GB_convert_s2b // convert sparse/hypersparse to bitmap case GB_1BYTE : // uint8, int8, bool, or 1-byte user #define GB_A_TYPE uint8_t - #include "GB_convert_s2b_template.c" + #include "convert/template/GB_convert_s2b_template.c" info = GrB_SUCCESS ; break ; case GB_2BYTE : // uint16, int16, or 2-byte user-defined #define GB_A_TYPE uint16_t - #include "GB_convert_s2b_template.c" + #include "convert/template/GB_convert_s2b_template.c" info = GrB_SUCCESS ; break ; case GB_4BYTE : // uint32, int32, float, or 4-byte user #define GB_A_TYPE uint32_t - #include "GB_convert_s2b_template.c" + #include "convert/template/GB_convert_s2b_template.c" info = GrB_SUCCESS ; break ; case GB_8BYTE : // uint64, int64, double, float complex, // or 8-byte user defined #define GB_A_TYPE uint64_t - #include "GB_convert_s2b_template.c" + #include "convert/template/GB_convert_s2b_template.c" info = GrB_SUCCESS ; break ; case GB_16BYTE : // double complex or 16-byte user-defined #define GB_A_TYPE GB_blob16 - #include "GB_convert_s2b_template.c" + #include "convert/template/GB_convert_s2b_template.c" info = GrB_SUCCESS ; break ; @@ -237,7 +237,7 @@ GrB_Info GB_convert_s2b // convert sparse/hypersparse to bitmap #undef GB_COPY #define GB_COPY(Axnew,pnew,Ax,p) \ memcpy (Axnew +(pnew)*asize, Ax +(p)*asize, asize) - #include "GB_convert_s2b_template.c" + #include "convert/template/GB_convert_s2b_template.c" info = GrB_SUCCESS ; } } diff --git a/GraphBLAS/Source/GB_convert_s2b_test.c b/GraphBLAS/Source/convert/GB_convert_s2b_test.c similarity index 100% rename from GraphBLAS/Source/GB_convert_s2b_test.c rename to GraphBLAS/Source/convert/GB_convert_s2b_test.c diff --git a/GraphBLAS/Source/GB_convert_sparse_to_hyper.c b/GraphBLAS/Source/convert/GB_convert_sparse_to_hyper.c similarity index 100% rename from GraphBLAS/Source/GB_convert_sparse_to_hyper.c rename to GraphBLAS/Source/convert/GB_convert_sparse_to_hyper.c diff --git a/GraphBLAS/Source/GB_convert_sparse_to_hyper_test.c b/GraphBLAS/Source/convert/GB_convert_sparse_to_hyper_test.c similarity index 100% rename from GraphBLAS/Source/GB_convert_sparse_to_hyper_test.c rename to GraphBLAS/Source/convert/GB_convert_sparse_to_hyper_test.c diff --git a/GraphBLAS/Source/GB_convert_to_nonfull.c b/GraphBLAS/Source/convert/GB_convert_to_nonfull.c similarity index 100% rename from GraphBLAS/Source/GB_convert_to_nonfull.c rename to GraphBLAS/Source/convert/GB_convert_to_nonfull.c diff --git a/GraphBLAS/Source/GB_sparsity_control.c b/GraphBLAS/Source/convert/GB_sparsity_control.c similarity index 100% rename from GraphBLAS/Source/GB_sparsity_control.c rename to GraphBLAS/Source/convert/GB_sparsity_control.c diff --git a/GraphBLAS/Source/Template/GB_convert_s2b_nozombies.c b/GraphBLAS/Source/convert/template/GB_convert_s2b_nozombies.c similarity index 100% rename from GraphBLAS/Source/Template/GB_convert_s2b_nozombies.c rename to GraphBLAS/Source/convert/template/GB_convert_s2b_nozombies.c diff --git a/GraphBLAS/Source/Template/GB_convert_s2b_template.c b/GraphBLAS/Source/convert/template/GB_convert_s2b_template.c similarity index 88% rename from GraphBLAS/Source/Template/GB_convert_s2b_template.c rename to GraphBLAS/Source/convert/template/GB_convert_s2b_template.c index d6c0c2f7a0..5ff7c9d4b1 100644 --- a/GraphBLAS/Source/Template/GB_convert_s2b_template.c +++ b/GraphBLAS/Source/convert/template/GB_convert_s2b_template.c @@ -37,11 +37,11 @@ const int64_t *restrict pstart_Aslice = A_ek_slicing + A_ntasks * 2 ; #if GB_A_HAS_ZOMBIES { - #include "GB_convert_s2b_zombies.c" + #include "template/GB_convert_s2b_zombies.c" } #else { - #include "GB_convert_s2b_nozombies.c" + #include "template/GB_convert_s2b_nozombies.c" } #endif } @@ -49,11 +49,11 @@ { if (nzombies > 0) { - #include "GB_convert_s2b_zombies.c" + #include "template/GB_convert_s2b_zombies.c" } else { - #include "GB_convert_s2b_nozombies.c" + #include "template/GB_convert_s2b_nozombies.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_convert_s2b_zombies.c b/GraphBLAS/Source/convert/template/GB_convert_s2b_zombies.c similarity index 100% rename from GraphBLAS/Source/Template/GB_convert_s2b_zombies.c rename to GraphBLAS/Source/convert/template/GB_convert_s2b_zombies.c diff --git a/GraphBLAS/Source/GB_cpu_features.h b/GraphBLAS/Source/cpu/GB_cpu_features.h similarity index 100% rename from GraphBLAS/Source/GB_cpu_features.h rename to GraphBLAS/Source/cpu/GB_cpu_features.h diff --git a/GraphBLAS/Source/GB_cpu_features_impl.c b/GraphBLAS/Source/cpu/GB_cpu_features_impl.c similarity index 97% rename from GraphBLAS/Source/GB_cpu_features_impl.c rename to GraphBLAS/Source/cpu/GB_cpu_features_impl.c index b16d8f6eb9..a8da662b12 100644 --- a/GraphBLAS/Source/GB_cpu_features_impl.c +++ b/GraphBLAS/Source/cpu/GB_cpu_features_impl.c @@ -28,8 +28,8 @@ // one for each architecture (and multiple ones for x86). The supporting // files for cpu_features are #include'd by GB_cpu_features_support.c. -#include "GB_compiler.h" -#include "GB_cpu_features.h" +#include "include/GB_compiler.h" +#include "cpu/GB_cpu_features.h" #if !defined ( GBNCPUFEAT ) diff --git a/GraphBLAS/Source/GB_cpu_features_support.c b/GraphBLAS/Source/cpu/GB_cpu_features_support.c similarity index 90% rename from GraphBLAS/Source/GB_cpu_features_support.c rename to GraphBLAS/Source/cpu/GB_cpu_features_support.c index f967f176ae..38cde171d0 100644 --- a/GraphBLAS/Source/GB_cpu_features_support.c +++ b/GraphBLAS/Source/cpu/GB_cpu_features_support.c @@ -7,8 +7,8 @@ //------------------------------------------------------------------------------ -#include "GB_compiler.h" -#include "GB_cpu_features.h" +#include "include/GB_compiler.h" +#include "cpu/GB_cpu_features.h" #if !defined ( GBNCPUFEAT ) diff --git a/GraphBLAS/Source/GB_cumsum.c b/GraphBLAS/Source/cumsum/GB_cumsum.c similarity index 100% rename from GraphBLAS/Source/GB_cumsum.c rename to GraphBLAS/Source/cumsum/GB_cumsum.c diff --git a/GraphBLAS/Source/GB_cumsum.h b/GraphBLAS/Source/cumsum/GB_cumsum.h similarity index 100% rename from GraphBLAS/Source/GB_cumsum.h rename to GraphBLAS/Source/cumsum/GB_cumsum.h diff --git a/GraphBLAS/Source/GrB_Descriptor_free.c b/GraphBLAS/Source/descriptor/GrB_Descriptor_free.c similarity index 100% rename from GraphBLAS/Source/GrB_Descriptor_free.c rename to GraphBLAS/Source/descriptor/GrB_Descriptor_free.c diff --git a/GraphBLAS/Source/GrB_Descriptor_new.c b/GraphBLAS/Source/descriptor/GrB_Descriptor_new.c similarity index 100% rename from GraphBLAS/Source/GrB_Descriptor_new.c rename to GraphBLAS/Source/descriptor/GrB_Descriptor_new.c diff --git a/GraphBLAS/Source/GB_Matrix_diag.c b/GraphBLAS/Source/diag/GB_Matrix_diag.c similarity index 99% rename from GraphBLAS/Source/GB_Matrix_diag.c rename to GraphBLAS/Source/diag/GB_Matrix_diag.c index d36bf087f8..ce4a1769da 100644 --- a/GraphBLAS/Source/GB_Matrix_diag.c +++ b/GraphBLAS/Source/diag/GB_Matrix_diag.c @@ -20,8 +20,8 @@ GB_phybix_free (C) ; \ } -#include "GB_diag.h" -#include "GB_unused.h" +#include "diag/GB_diag.h" +#include "include/GB_unused.h" GrB_Info GB_Matrix_diag // build a diagonal matrix from a vector ( diff --git a/GraphBLAS/Source/GB_Vector_diag.c b/GraphBLAS/Source/diag/GB_Vector_diag.c similarity index 98% rename from GraphBLAS/Source/GB_Vector_diag.c rename to GraphBLAS/Source/diag/GB_Vector_diag.c index e5199ebd8f..016d51f232 100644 --- a/GraphBLAS/Source/GB_Vector_diag.c +++ b/GraphBLAS/Source/diag/GB_Vector_diag.c @@ -18,9 +18,9 @@ GB_phybix_free (V) ; \ } -#include "GB_diag.h" -#include "GB_select.h" -#include "GB_scalar_wrap.h" +#include "diag/GB_diag.h" +#include "select/GB_select.h" +#include "scalar/GB_Scalar_wrap.h" GrB_Info GB_Vector_diag // extract a diagonal from a matrix, as a vector ( diff --git a/GraphBLAS/Source/GB_diag.h b/GraphBLAS/Source/diag/GB_diag.h similarity index 100% rename from GraphBLAS/Source/GB_diag.h rename to GraphBLAS/Source/diag/GB_diag.h diff --git a/GraphBLAS/Source/GrB_Matrix_diag.c b/GraphBLAS/Source/diag/GrB_Matrix_diag.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_diag.c rename to GraphBLAS/Source/diag/GrB_Matrix_diag.c index fbcc560110..bbab3e6310 100644 --- a/GraphBLAS/Source/GrB_Matrix_diag.c +++ b/GraphBLAS/Source/diag/GrB_Matrix_diag.c @@ -10,7 +10,7 @@ // Similar to GxB_Matrix_diag (C, v, k, NULL), except that C is constructed // as a new matrix, like GrB_Matrix_new. C has the same type as v. -#include "GB_diag.h" +#include "diag/GB_diag.h" GrB_Info GrB_Matrix_diag // construct a diagonal matrix from a vector ( diff --git a/GraphBLAS/Source/GxB_Matrix_diag.c b/GraphBLAS/Source/diag/GxB_Matrix_diag.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_diag.c rename to GraphBLAS/Source/diag/GxB_Matrix_diag.c index b8533e4954..99db07bfc6 100644 --- a/GraphBLAS/Source/GxB_Matrix_diag.c +++ b/GraphBLAS/Source/diag/GxB_Matrix_diag.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_diag.h" +#include "diag/GB_diag.h" GrB_Info GxB_Matrix_diag // build a diagonal matrix from a vector ( diff --git a/GraphBLAS/Source/GxB_Vector_diag.c b/GraphBLAS/Source/diag/GxB_Vector_diag.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_diag.c rename to GraphBLAS/Source/diag/GxB_Vector_diag.c index 58ac3be7e9..f49fbce1ec 100644 --- a/GraphBLAS/Source/GxB_Vector_diag.c +++ b/GraphBLAS/Source/diag/GxB_Vector_diag.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_diag.h" +#include "diag/GB_diag.h" GrB_Info GxB_Vector_diag // extract a diagonal from a matrix, as a vector ( diff --git a/GraphBLAS/Source/GB_dup.c b/GraphBLAS/Source/dup/GB_dup.c similarity index 100% rename from GraphBLAS/Source/GB_dup.c rename to GraphBLAS/Source/dup/GB_dup.c diff --git a/GraphBLAS/Source/GB_dup.h b/GraphBLAS/Source/dup/GB_dup.h similarity index 100% rename from GraphBLAS/Source/GB_dup.h rename to GraphBLAS/Source/dup/GB_dup.h diff --git a/GraphBLAS/Source/GB_dup_worker.c b/GraphBLAS/Source/dup/GB_dup_worker.c similarity index 99% rename from GraphBLAS/Source/GB_dup_worker.c rename to GraphBLAS/Source/dup/GB_dup_worker.c index be0adf2c23..be15e25474 100644 --- a/GraphBLAS/Source/GB_dup_worker.c +++ b/GraphBLAS/Source/dup/GB_dup_worker.c @@ -15,7 +15,7 @@ // or dynamic header, depending on C->static_header. #include "GB.h" -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" #define GB_FREE_ALL \ GB_FREE (&C_user_name, C_user_name_size) ; diff --git a/GraphBLAS/Source/GrB_Matrix_dup.c b/GraphBLAS/Source/dup/GrB_Matrix_dup.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_dup.c rename to GraphBLAS/Source/dup/GrB_Matrix_dup.c diff --git a/GraphBLAS/Source/GrB_Scalar_dup.c b/GraphBLAS/Source/dup/GrB_Scalar_dup.c similarity index 100% rename from GraphBLAS/Source/GrB_Scalar_dup.c rename to GraphBLAS/Source/dup/GrB_Scalar_dup.c diff --git a/GraphBLAS/Source/GrB_Vector_dup.c b/GraphBLAS/Source/dup/GrB_Vector_dup.c similarity index 100% rename from GraphBLAS/Source/GrB_Vector_dup.c rename to GraphBLAS/Source/dup/GrB_Vector_dup.c diff --git a/GraphBLAS/Source/GB_Element.h b/GraphBLAS/Source/element/GB_Element.h similarity index 100% rename from GraphBLAS/Source/GB_Element.h rename to GraphBLAS/Source/element/GB_Element.h diff --git a/GraphBLAS/Source/GB_setElement.c b/GraphBLAS/Source/element/GB_setElement.c similarity index 99% rename from GraphBLAS/Source/GB_setElement.c rename to GraphBLAS/Source/element/GB_setElement.c index f7700461cc..7f189bd83b 100644 --- a/GraphBLAS/Source/GB_setElement.c +++ b/GraphBLAS/Source/element/GB_setElement.c @@ -29,7 +29,7 @@ // Compare this function with GrB_*_extractElement_* -#include "GB_Pending.h" +#include "pending/GB_Pending.h" #define GB_FREE_ALL ; @@ -349,8 +349,8 @@ GrB_Info GB_setElement // set a single entry, C(row,col) = scalar // No typecasting can be done. The new pending tuple must either be // the first pending tuple, or its type must match the prior pending - // tuples. See GB_assign_shared_definitions.h for a complete - // description. + // tuples. See assign/include/GB_assign_shared_definitions.h for a + // complete description. //---------------------------------------------------------------------- // check for wait diff --git a/GraphBLAS/Source/GrB_Matrix_extractElement.c b/GraphBLAS/Source/element/GrB_Matrix_extractElement.c similarity index 88% rename from GraphBLAS/Source/GrB_Matrix_extractElement.c rename to GraphBLAS/Source/element/GrB_Matrix_extractElement.c index 6c899ab207..79a02fe05d 100644 --- a/GraphBLAS/Source/GrB_Matrix_extractElement.c +++ b/GraphBLAS/Source/element/GrB_Matrix_extractElement.c @@ -129,74 +129,74 @@ GrB_Info GrB_Matrix_extractElement_Scalar // S = A(i,j) #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_BOOL #define GB_XTYPE bool #define GB_XCODE GB_BOOL_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_INT8 #define GB_XTYPE int8_t #define GB_XCODE GB_INT8_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_INT16 #define GB_XTYPE int16_t #define GB_XCODE GB_INT16_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_INT32 #define GB_XTYPE int32_t #define GB_XCODE GB_INT32_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_INT64 #define GB_XTYPE int64_t #define GB_XCODE GB_INT64_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_UINT8 #define GB_XTYPE uint8_t #define GB_XCODE GB_UINT8_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_UINT16 #define GB_XTYPE uint16_t #define GB_XCODE GB_UINT16_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_UINT32 #define GB_XTYPE uint32_t #define GB_XCODE GB_UINT32_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_UINT64 #define GB_XTYPE uint64_t #define GB_XCODE GB_UINT64_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_FP32 #define GB_XTYPE float #define GB_XCODE GB_FP32_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_FP64 #define GB_XTYPE double #define GB_XCODE GB_FP64_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GxB_Matrix_extractElement_FC32 #define GB_XTYPE GxB_FC32_t #define GB_XCODE GB_FC32_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GxB_Matrix_extractElement_FC64 #define GB_XTYPE GxB_FC64_t #define GB_XCODE GB_FC64_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_UDT_EXTRACT #define GB_EXTRACT_ELEMENT GrB_Matrix_extractElement_UDT #define GB_XTYPE void #define GB_XCODE GB_UDT_code -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" #define GB_EXTRACT_ELEMENT GxB_Matrix_isStoredElement -#include "GB_Matrix_extractElement.c" +#include "element/factory/GB_Matrix_extractElement.c" diff --git a/GraphBLAS/Source/GrB_Matrix_removeElement.c b/GraphBLAS/Source/element/GrB_Matrix_removeElement.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_removeElement.c rename to GraphBLAS/Source/element/GrB_Matrix_removeElement.c diff --git a/GraphBLAS/Source/GrB_Matrix_setElement.c b/GraphBLAS/Source/element/GrB_Matrix_setElement.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_setElement.c rename to GraphBLAS/Source/element/GrB_Matrix_setElement.c diff --git a/GraphBLAS/Source/GrB_Scalar_extractElement.c b/GraphBLAS/Source/element/GrB_Scalar_extractElement.c similarity index 84% rename from GraphBLAS/Source/GrB_Scalar_extractElement.c rename to GraphBLAS/Source/element/GrB_Scalar_extractElement.c index 0986d11c05..d7d1b659d9 100644 --- a/GraphBLAS/Source/GrB_Scalar_extractElement.c +++ b/GraphBLAS/Source/element/GrB_Scalar_extractElement.c @@ -21,73 +21,73 @@ #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_BOOL #define GB_XTYPE bool #define GB_XCODE GB_BOOL_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_INT8 #define GB_XTYPE int8_t #define GB_XCODE GB_INT8_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_INT16 #define GB_XTYPE int16_t #define GB_XCODE GB_INT16_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_INT32 #define GB_XTYPE int32_t #define GB_XCODE GB_INT32_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_INT64 #define GB_XTYPE int64_t #define GB_XCODE GB_INT64_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_UINT8 #define GB_XTYPE uint8_t #define GB_XCODE GB_UINT8_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_UINT16 #define GB_XTYPE uint16_t #define GB_XCODE GB_UINT16_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_UINT32 #define GB_XTYPE uint32_t #define GB_XCODE GB_UINT32_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_UINT64 #define GB_XTYPE uint64_t #define GB_XCODE GB_UINT64_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_FP32 #define GB_XTYPE float #define GB_XCODE GB_FP32_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_FP64 #define GB_XTYPE double #define GB_XCODE GB_FP64_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_FC32 #define GB_XTYPE GxB_FC32_t #define GB_XCODE GB_FC32_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_EXTRACT_ELEMENT GxB_Scalar_extractElement_FC64 #define GB_XTYPE GxB_FC64_t #define GB_XCODE GB_FC64_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" #define GB_UDT_EXTRACT #define GB_EXTRACT_ELEMENT GrB_Scalar_extractElement_UDT #define GB_XTYPE void #define GB_XCODE GB_UDT_code -#include "GB_Scalar_extractElement.c" +#include "element/factory/GB_Scalar_extractElement.c" //------------------------------------------------------------------------------ // GxB_Scalar_extractElement: (historical) diff --git a/GraphBLAS/Source/GrB_Scalar_setElement.c b/GraphBLAS/Source/element/GrB_Scalar_setElement.c similarity index 100% rename from GraphBLAS/Source/GrB_Scalar_setElement.c rename to GraphBLAS/Source/element/GrB_Scalar_setElement.c diff --git a/GraphBLAS/Source/GrB_Vector_extractElement.c b/GraphBLAS/Source/element/GrB_Vector_extractElement.c similarity index 88% rename from GraphBLAS/Source/GrB_Vector_extractElement.c rename to GraphBLAS/Source/element/GrB_Vector_extractElement.c index 1700364e34..70b3ec81bc 100644 --- a/GraphBLAS/Source/GrB_Vector_extractElement.c +++ b/GraphBLAS/Source/element/GrB_Vector_extractElement.c @@ -128,74 +128,74 @@ GrB_Info GrB_Vector_extractElement_Scalar // S = V(i,j) #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_BOOL #define GB_XTYPE bool #define GB_XCODE GB_BOOL_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_INT8 #define GB_XTYPE int8_t #define GB_XCODE GB_INT8_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_INT16 #define GB_XTYPE int16_t #define GB_XCODE GB_INT16_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_INT32 #define GB_XTYPE int32_t #define GB_XCODE GB_INT32_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_INT64 #define GB_XTYPE int64_t #define GB_XCODE GB_INT64_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_UINT8 #define GB_XTYPE uint8_t #define GB_XCODE GB_UINT8_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_UINT16 #define GB_XTYPE uint16_t #define GB_XCODE GB_UINT16_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_UINT32 #define GB_XTYPE uint32_t #define GB_XCODE GB_UINT32_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_UINT64 #define GB_XTYPE uint64_t #define GB_XCODE GB_UINT64_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_FP32 #define GB_XTYPE float #define GB_XCODE GB_FP32_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_FP64 #define GB_XTYPE double #define GB_XCODE GB_FP64_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GxB_Vector_extractElement_FC32 #define GB_XTYPE GxB_FC32_t #define GB_XCODE GB_FC32_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GxB_Vector_extractElement_FC64 #define GB_XTYPE GxB_FC64_t #define GB_XCODE GB_FC64_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_UDT_EXTRACT #define GB_EXTRACT_ELEMENT GrB_Vector_extractElement_UDT #define GB_XTYPE void #define GB_XCODE GB_UDT_code -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" #define GB_EXTRACT_ELEMENT GxB_Vector_isStoredElement -#include "GB_Vector_extractElement.c" +#include "element/factory/GB_Vector_extractElement.c" diff --git a/GraphBLAS/Source/GrB_Vector_removeElement.c b/GraphBLAS/Source/element/GrB_Vector_removeElement.c similarity index 100% rename from GraphBLAS/Source/GrB_Vector_removeElement.c rename to GraphBLAS/Source/element/GrB_Vector_removeElement.c diff --git a/GraphBLAS/Source/GrB_Vector_setElement.c b/GraphBLAS/Source/element/GrB_Vector_setElement.c similarity index 100% rename from GraphBLAS/Source/GrB_Vector_setElement.c rename to GraphBLAS/Source/element/GrB_Vector_setElement.c diff --git a/GraphBLAS/Source/Factories/GB_Matrix_extractElement.c b/GraphBLAS/Source/element/factory/GB_Matrix_extractElement.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_Matrix_extractElement.c rename to GraphBLAS/Source/element/factory/GB_Matrix_extractElement.c diff --git a/GraphBLAS/Source/Factories/GB_Scalar_extractElement.c b/GraphBLAS/Source/element/factory/GB_Scalar_extractElement.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_Scalar_extractElement.c rename to GraphBLAS/Source/element/factory/GB_Scalar_extractElement.c diff --git a/GraphBLAS/Source/Factories/GB_Vector_extractElement.c b/GraphBLAS/Source/element/factory/GB_Vector_extractElement.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_Vector_extractElement.c rename to GraphBLAS/Source/element/factory/GB_Vector_extractElement.c diff --git a/GraphBLAS/Source/GB_add.c b/GraphBLAS/Source/ewise/GB_add.c similarity index 99% rename from GraphBLAS/Source/GB_add.c rename to GraphBLAS/Source/ewise/GB_add.c index 2ffc102706..0c99242920 100644 --- a/GraphBLAS/Source/GB_add.c +++ b/GraphBLAS/Source/ewise/GB_add.c @@ -46,7 +46,7 @@ // C on input is empty, see GB_add_phase2.c. -#include "GB_add.h" +#include "ewise/GB_add.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GB_add.h b/GraphBLAS/Source/ewise/GB_add.h similarity index 99% rename from GraphBLAS/Source/GB_add.h rename to GraphBLAS/Source/ewise/GB_add.h index 1f3a6152b8..c2d0cdedff 100644 --- a/GraphBLAS/Source/GB_add.h +++ b/GraphBLAS/Source/ewise/GB_add.h @@ -10,7 +10,7 @@ #ifndef GB_ADD_H #define GB_ADD_H #include "GB.h" -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB_add // C=A+B, C=A+B, or C=A+B ( diff --git a/GraphBLAS/Source/GB_add_iso.c b/GraphBLAS/Source/ewise/GB_add_iso.c similarity index 99% rename from GraphBLAS/Source/GB_add_iso.c rename to GraphBLAS/Source/ewise/GB_add_iso.c index 4ce379b812..18703f2c6d 100644 --- a/GraphBLAS/Source/GB_add_iso.c +++ b/GraphBLAS/Source/ewise/GB_add_iso.c @@ -11,8 +11,8 @@ // results in an iso matrix C. If true, the output scalar c is the iso value // for the matrix C. -#include "GB_add.h" -#include "GB_emult.h" +#include "ewise/GB_add.h" +#include "ewise/GB_emult.h" bool GB_add_iso // c = op(a,b), return true if C is iso ( diff --git a/GraphBLAS/Source/GB_add_phase0.c b/GraphBLAS/Source/ewise/GB_add_phase0.c similarity index 99% rename from GraphBLAS/Source/GB_add_phase0.c rename to GraphBLAS/Source/ewise/GB_add_phase0.c index a965bf5486..2074c577a6 100644 --- a/GraphBLAS/Source/GB_add_phase0.c +++ b/GraphBLAS/Source/ewise/GB_add_phase0.c @@ -72,7 +72,7 @@ GB_FREE_WORKSPACE ; \ } -#include "GB_add.h" +#include "ewise/GB_add.h" //------------------------------------------------------------------------------ // GB_allocate_result diff --git a/GraphBLAS/Source/GB_add_phase1.c b/GraphBLAS/Source/ewise/GB_add_phase1.c similarity index 96% rename from GraphBLAS/Source/GB_add_phase1.c rename to GraphBLAS/Source/ewise/GB_add_phase1.c index 26cfd09c9e..e33eaa0c32 100644 --- a/GraphBLAS/Source/GB_add_phase1.c +++ b/GraphBLAS/Source/ewise/GB_add_phase1.c @@ -15,12 +15,12 @@ // C is sparse or hypersparse, as determined by GB_add_sparsity. M, A, and B // can have any sparsity structure, but only a specific set of cases will be -// used (see the list in Template/GB_add_sparse_template.c). +// used (see the list in ewise/template/GB_add_sparse_template.c). // Cp is constructed here, and either freed by phase2, or transplanted into C. -#include "GB_add.h" -#include "GB_unused.h" +#include "ewise/GB_add.h" +#include "include/GB_unused.h" GrB_Info GB_add_phase1 // count nnz in each C(:,j) ( @@ -95,7 +95,7 @@ GrB_Info GB_add_phase1 // count nnz in each C(:,j) bool M_is_B = GB_all_aliased (M, B) ; #define GB_ADD_PHASE 1 - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" //-------------------------------------------------------------------------- // cumulative sum of Cp and fine tasks in TaskList diff --git a/GraphBLAS/Source/GB_add_phase2.c b/GraphBLAS/Source/ewise/GB_add_phase2.c similarity index 96% rename from GraphBLAS/Source/GB_add_phase2.c rename to GraphBLAS/Source/ewise/GB_add_phase2.c index 759115ed40..73b06b3738 100644 --- a/GraphBLAS/Source/GB_add_phase2.c +++ b/GraphBLAS/Source/ewise/GB_add_phase2.c @@ -29,13 +29,13 @@ // This is used by GB_wait only, for merging the pending tuple matrix T into A. // In this case, C is always sparse or hypersparse, not bitmap or full. -#include "GB_add.h" -#include "GB_binop.h" -#include "GB_unused.h" -#include "GB_ek_slice.h" -#include "GB_stringify.h" +#include "ewise/GB_add.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" +#include "slice/GB_ek_slice.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif #undef GB_FREE_WORKSPACE @@ -322,7 +322,7 @@ GrB_Info GB_add_phase2 // C=A+B, C=A+B, or C=A+B // using a built-in binary operator (except for positional operators) //-------------------------------------------------------------------------- - #include "GB_ewise_shared_definitions.h" + #include "ewise/include/GB_ewise_shared_definitions.h" #define GB_ADD_PHASE 2 info = GrB_NO_VALUE ; @@ -343,7 +343,7 @@ GrB_Info GB_add_phase2 // C=A+B, C=A+B, or C=A+B // are used, and the operator is not used. #define GB_ISO_ADD #define GB_IS_EWISEUNION 0 - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" info = GrB_SUCCESS ; } @@ -390,7 +390,7 @@ GrB_Info GB_add_phase2 // C=A+B, C=A+B, or C=A+B // eWiseUnion is like emult: the pair results in C being iso #define GB_NO_PAIR - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } else @@ -415,7 +415,7 @@ GrB_Info GB_add_phase2 // C=A+B, C=A+B, or C=A+B // launch the switch factory //---------------------------------------------------------- - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } } @@ -457,7 +457,7 @@ GrB_Info GB_add_phase2 // C=A+B, C=A+B, or C=A+B if (info == GrB_NO_VALUE) { - #include "GB_generic.h" + #include "generic/GB_generic.h" GB_BURBLE_MATRIX (C, "(generic add: %s) ", op->name) ; // C(i,j) = (ctype) A(i,j), located in Ax [pA] @@ -534,12 +534,12 @@ GrB_Info GB_add_phase2 // C=A+B, C=A+B, or C=A+B if (is_eWiseUnion) { #define GB_IS_EWISEUNION 1 - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" } else { #define GB_IS_EWISEUNION 0 - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" } } else @@ -558,12 +558,12 @@ GrB_Info GB_add_phase2 // C=A+B, C=A+B, or C=A+B if (is_eWiseUnion) { #define GB_IS_EWISEUNION 1 - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" } else { #define GB_IS_EWISEUNION 0 - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" } } @@ -599,12 +599,12 @@ GrB_Info GB_add_phase2 // C=A+B, C=A+B, or C=A+B if (is_eWiseUnion) { #define GB_IS_EWISEUNION 1 - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" } else { #define GB_IS_EWISEUNION 0 - #include "GB_add_template.c" + #include "ewise/template/GB_add_template.c" } } info = GrB_SUCCESS ; diff --git a/GraphBLAS/Source/GB_add_sparsity.c b/GraphBLAS/Source/ewise/GB_add_sparsity.c similarity index 97% rename from GraphBLAS/Source/GB_add_sparsity.c rename to GraphBLAS/Source/ewise/GB_add_sparsity.c index 01c9dd0176..61369f9427 100644 --- a/GraphBLAS/Source/GB_add_sparsity.c +++ b/GraphBLAS/Source/ewise/GB_add_sparsity.c @@ -16,8 +16,8 @@ // If C should be hypersparse or sparse, on output, this function simply // returns GxB_SPARSE. The final determination is made by GB_add_phase0. -#include "GB_add.h" -#include "GB_mask_very_sparse.h" +#include "ewise/GB_add.h" +#include "mask/GB_mask_very_sparse.h" int GB_add_sparsity // return the sparsity structure for C ( @@ -112,9 +112,9 @@ int GB_add_sparsity // return the sparsity structure for C if (A_is_sparse_or_hyper || B_is_sparse_or_hyper) { - // see Template/GB_add_sparse_M_sparse.c for a vector-by-vector - // test of the "easy mask" condition. This test is global for - // all vectors of the matrices: + // see ewise/template/GB_add_sparse_M_sparse.c for a + // vector-by-vector test of the "easy mask" condition. This + // test is global for all vectors of the matrices: bool M_is_A = GB_all_aliased (M, A) ; bool M_is_B = GB_all_aliased (M, B) ; bool all_easy_mask = Mask_struct && diff --git a/GraphBLAS/Source/GB_emult.c b/GraphBLAS/Source/ewise/GB_emult.c similarity index 99% rename from GraphBLAS/Source/GB_emult.c rename to GraphBLAS/Source/ewise/GB_emult.c index 91e123290e..73f67f5891 100644 --- a/GraphBLAS/Source/GB_emult.c +++ b/GraphBLAS/Source/ewise/GB_emult.c @@ -31,9 +31,9 @@ // but T=A.*B is sparse (M sparse, with A and B bitmap), then it too can // be done in place. -#include "GB_emult.h" -#include "GB_add.h" -#include "GB_binop.h" +#include "ewise/GB_emult.h" +#include "ewise/GB_add.h" +#include "binaryop/GB_binop.h" #define GB_FREE_WORKSPACE \ { \ diff --git a/GraphBLAS/Source/GB_emult.h b/GraphBLAS/Source/ewise/GB_emult.h similarity index 99% rename from GraphBLAS/Source/GB_emult.h rename to GraphBLAS/Source/ewise/GB_emult.h index 7a9e7e2a03..510f280438 100644 --- a/GraphBLAS/Source/GB_emult.h +++ b/GraphBLAS/Source/ewise/GB_emult.h @@ -10,8 +10,8 @@ #ifndef GB_EMULT_H #define GB_EMULT_H #include "GB.h" -#include "GB_math.h" -#include "GB_bitmap_assign_methods.h" +#include "math/GB_math.h" +#include "assign/GB_bitmap_assign_methods.h" #define GB_EMULT_METHOD1_ADD 1 /* use GB_add instead of emult */ #define GB_EMULT_METHOD2 2 /* use GB_emult_02 */ diff --git a/GraphBLAS/Source/GB_emult_02.c b/GraphBLAS/Source/ewise/GB_emult_02.c similarity index 97% rename from GraphBLAS/Source/GB_emult_02.c rename to GraphBLAS/Source/ewise/GB_emult_02.c index 4559753184..0cae107881 100644 --- a/GraphBLAS/Source/GB_emult_02.c +++ b/GraphBLAS/Source/ewise/GB_emult_02.c @@ -55,13 +55,13 @@ // sparse full sparse bitmap // sparse full sparse full -#include "GB_ewise.h" -#include "GB_emult.h" -#include "GB_binop.h" -#include "GB_unused.h" -#include "GB_stringify.h" +#include "ewise/GB_ewise.h" +#include "ewise/GB_emult.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif #define GB_FREE_WORKSPACE \ @@ -250,7 +250,7 @@ GrB_Info GB_emult_02 // C=A.*B when A is sparse/hyper, B bitmap/full // pattern of C = set intersection of pattern of A and B #define GB_ISO_EMULT - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" info = GrB_SUCCESS ; } @@ -289,7 +289,7 @@ GrB_Info GB_emult_02 // C=A.*B when A is sparse/hyper, B bitmap/full op, false, &opcode, &xcode, &ycode, &zcode) && ccode == zcode) { #define GB_NO_PAIR - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } #endif diff --git a/GraphBLAS/Source/GB_emult_02_phase1.c b/GraphBLAS/Source/ewise/GB_emult_02_phase1.c similarity index 98% rename from GraphBLAS/Source/GB_emult_02_phase1.c rename to GraphBLAS/Source/ewise/GB_emult_02_phase1.c index b9973d68bb..6289bd6c6f 100644 --- a/GraphBLAS/Source/GB_emult_02_phase1.c +++ b/GraphBLAS/Source/ewise/GB_emult_02_phase1.c @@ -13,10 +13,10 @@ #define GB_FREE_ALL ; -#include "GB_ewise.h" -#include "GB_emult.h" -#include "GB_binop.h" -#include "GB_stringify.h" +#include "ewise/GB_ewise.h" +#include "ewise/GB_emult.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_stringify.h" GrB_Info GB_emult_02_phase1 // symbolic analysis for GB_emult_02 and GB_emult_03 ( diff --git a/GraphBLAS/Source/GB_emult_03.c b/GraphBLAS/Source/ewise/GB_emult_03.c similarity index 97% rename from GraphBLAS/Source/GB_emult_03.c rename to GraphBLAS/Source/ewise/GB_emult_03.c index 295833f30c..539c39007c 100644 --- a/GraphBLAS/Source/GB_emult_03.c +++ b/GraphBLAS/Source/ewise/GB_emult_03.c @@ -55,13 +55,13 @@ // sparse full bitmap sparse // sparse full full sparse -#include "GB_ewise.h" -#include "GB_emult.h" -#include "GB_binop.h" -#include "GB_unused.h" -#include "GB_stringify.h" +#include "ewise/GB_ewise.h" +#include "ewise/GB_emult.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif #define GB_FREE_WORKSPACE \ @@ -250,7 +250,7 @@ GrB_Info GB_emult_03 // C=A.*B when A bitmap/full, B is sparse/hyper // pattern of C = set intersection of pattern of A and B #define GB_ISO_EMULT - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" info = GrB_SUCCESS ; } @@ -290,7 +290,7 @@ GrB_Info GB_emult_03 // C=A.*B when A bitmap/full, B is sparse/hyper { #define GB_NO_PAIR #define GB_NO_COMMUTATIVE_BINARY_OPS - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } #endif diff --git a/GraphBLAS/Source/GB_emult_04.c b/GraphBLAS/Source/ewise/GB_emult_04.c similarity index 97% rename from GraphBLAS/Source/GB_emult_04.c rename to GraphBLAS/Source/ewise/GB_emult_04.c index 0dc8bf55f2..ce8fa8fb69 100644 --- a/GraphBLAS/Source/GB_emult_04.c +++ b/GraphBLAS/Source/ewise/GB_emult_04.c @@ -26,13 +26,13 @@ // Just change the "&&" to "||" in the GB_emult_04_template. // If A and B are both full, eadd and emult are identical. -#include "GB_ewise.h" -#include "GB_emult.h" -#include "GB_binop.h" -#include "GB_unused.h" -#include "GB_stringify.h" +#include "ewise/GB_ewise.h" +#include "ewise/GB_emult.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif #define GB_FREE_WORKSPACE \ @@ -287,7 +287,7 @@ GrB_Info GB_emult_04 // C=A.*B, M sparse/hyper, A and B bitmap/full // pattern of C = set intersection of pattern of A and B #define GB_ISO_EMULT - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" info = GrB_SUCCESS ; } @@ -325,7 +325,7 @@ GrB_Info GB_emult_04 // C=A.*B, M sparse/hyper, A and B bitmap/full op, false, &opcode, &xcode, &ycode, &zcode) && ccode == zcode) { #define GB_NO_PAIR - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } #endif diff --git a/GraphBLAS/Source/GB_emult_08_phase0.c b/GraphBLAS/Source/ewise/GB_emult_08_phase0.c similarity index 99% rename from GraphBLAS/Source/GB_emult_08_phase0.c rename to GraphBLAS/Source/ewise/GB_emult_08_phase0.c index 8ab085d4a1..b0306fdeb1 100644 --- a/GraphBLAS/Source/GB_emult_08_phase0.c +++ b/GraphBLAS/Source/ewise/GB_emult_08_phase0.c @@ -45,7 +45,7 @@ GB_FREE_WORK (&C_to_B, C_to_B_size) ; \ } -#include "GB_emult.h" +#include "ewise/GB_emult.h" GrB_Info GB_emult_08_phase0 // find vectors in C for C=A.*B or C=A.*B ( diff --git a/GraphBLAS/Source/GB_emult_08_phase1.c b/GraphBLAS/Source/ewise/GB_emult_08_phase1.c similarity index 98% rename from GraphBLAS/Source/GB_emult_08_phase1.c rename to GraphBLAS/Source/ewise/GB_emult_08_phase1.c index 142b3a90de..3c94f39502 100644 --- a/GraphBLAS/Source/GB_emult_08_phase1.c +++ b/GraphBLAS/Source/ewise/GB_emult_08_phase1.c @@ -19,7 +19,7 @@ // Cp is either freed by GB_emult_08_phase2, or transplanted into C. -#include "GB_emult.h" +#include "ewise/GB_emult.h" GrB_Info GB_emult_08_phase1 // count nnz in each C(:,j) ( @@ -96,7 +96,7 @@ GrB_Info GB_emult_08_phase1 // count nnz in each C(:,j) //-------------------------------------------------------------------------- #define GB_EMULT_08_PHASE 1 - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" //-------------------------------------------------------------------------- // cumulative sum of Cp and fine tasks in TaskList diff --git a/GraphBLAS/Source/GB_emult_08_phase2.c b/GraphBLAS/Source/ewise/GB_emult_08_phase2.c similarity index 97% rename from GraphBLAS/Source/GB_emult_08_phase2.c rename to GraphBLAS/Source/ewise/GB_emult_08_phase2.c index 55ee004d25..06b29a9f6e 100644 --- a/GraphBLAS/Source/GB_emult_08_phase2.c +++ b/GraphBLAS/Source/ewise/GB_emult_08_phase2.c @@ -25,13 +25,13 @@ // This function either frees Cp or transplants it into C, as C->p. Either // way, the caller must not free it. -#include "GB_ewise.h" -#include "GB_emult.h" -#include "GB_binop.h" -#include "GB_unused.h" -#include "GB_stringify.h" +#include "ewise/GB_ewise.h" +#include "ewise/GB_emult.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif #define GB_FREE_ALL \ @@ -201,7 +201,7 @@ GrB_Info GB_emult_08_phase2 // C=A.*B or C=A.*B // pattern of C = set intersection of pattern of A and B #define GB_ISO_EMULT - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" info = GrB_SUCCESS ; } @@ -240,7 +240,7 @@ GrB_Info GB_emult_08_phase2 // C=A.*B or C=A.*B op, false, &opcode, &xcode, &ycode, &zcode) && ccode == zcode) { #define GB_NO_PAIR - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } #endif diff --git a/GraphBLAS/Source/GB_emult_bitmap.c b/GraphBLAS/Source/ewise/GB_emult_bitmap.c similarity index 97% rename from GraphBLAS/Source/GB_emult_bitmap.c rename to GraphBLAS/Source/ewise/GB_emult_bitmap.c index b177bfdf07..42ce935089 100644 --- a/GraphBLAS/Source/GB_emult_bitmap.c +++ b/GraphBLAS/Source/ewise/GB_emult_bitmap.c @@ -58,14 +58,14 @@ // TODO: if C is bitmap on input and C_sparsity is GxB_BITMAP, then C=A.*B, // C=A.*B and C+=A.*B can all be done in-place. -#include "GB_ewise.h" -#include "GB_emult.h" -#include "GB_binop.h" -#include "GB_unused.h" -#include "GB_ek_slice.h" -#include "GB_stringify.h" +#include "ewise/GB_ewise.h" +#include "ewise/GB_emult.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" +#include "slice/GB_ek_slice.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif #define GB_FREE_WORKSPACE \ @@ -211,7 +211,7 @@ GrB_Info GB_emult_bitmap // C=A.*B, C=A.*B, or C=A.*B // pattern of C = set intersection of pattern of A and B #define GB_ISO_EMULT - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" info = GrB_SUCCESS ; } @@ -251,7 +251,7 @@ GrB_Info GB_emult_bitmap // C=A.*B, C=A.*B, or C=A.*B op, false, &opcode, &xcode, &ycode, &zcode) && ccode == zcode) { #define GB_NO_PAIR - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } #endif diff --git a/GraphBLAS/Source/GB_emult_generic.c b/GraphBLAS/Source/ewise/GB_emult_generic.c similarity index 89% rename from GraphBLAS/Source/GB_emult_generic.c rename to GraphBLAS/Source/ewise/GB_emult_generic.c index ca27862f3a..e8b22c74e3 100644 --- a/GraphBLAS/Source/GB_emult_generic.c +++ b/GraphBLAS/Source/ewise/GB_emult_generic.c @@ -14,12 +14,12 @@ // C is not iso, but A and/or B might be. -#include "GB_ewise.h" -#include "GB_emult.h" -#include "GB_binop.h" -#include "GB_unused.h" -#include "GB_ek_slice.h" -#include "GB_generic.h" +#include "ewise/GB_ewise.h" +#include "ewise/GB_emult.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" +#include "slice/GB_ek_slice.h" +#include "generic/GB_generic.h" GrB_Info GB_emult_generic // generic emult ( @@ -126,7 +126,7 @@ GrB_Info GB_emult_generic // generic emult cast_B_to_Y (bij, Bx +((B_iso) ? 0:(pB)*bsize), bsize) ; \ } - #include "GB_ewise_shared_definitions.h" + #include "ewise/include/GB_ewise_shared_definitions.h" //-------------------------------------------------------------------------- // do the ewise operation @@ -173,29 +173,29 @@ GrB_Info GB_emult_generic // generic emult { // C=A.*B or C<#M>=A.*B; A sparse/hyper; M and B bitmap/full // C is sparse - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" } else if (ewise_method == GB_EMULT_METHOD3) { // C=A.*B or C<#M>=A.*B; B sparse/hyper; M and A bitmap/full // C is sparse - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" } else if (ewise_method == GB_EMULT_METHOD4) { // C=A.*B; M sparse/hyper, A and B bitmap/full // C is sparse - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" } else if (C_sparsity == GxB_BITMAP) { // C is bitmap: emult methods 5, 6, or 7 - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" } else { // C is sparse: emult method 8 (abcdefgh) - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" } } else @@ -215,29 +215,29 @@ GrB_Info GB_emult_generic // generic emult { // C=A.*B or C<#M>=A.*B; A sparse/hyper; M and B bitmap/full // C is sparse - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" } else if (ewise_method == GB_EMULT_METHOD3) { // C=A.*B or C<#M>=A.*B; B sparse/hyper; M and A bitmap/full // C is sparse - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" } else if (ewise_method == GB_EMULT_METHOD4) { // C=A.*B; M sparse/hyper, A and B bitmap/full // C is sparse - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" } else if (C_sparsity == GxB_BITMAP) { // C is bitmap: emult methods 5, 6, or 7 - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" } else { // C is sparse: emult method 8 (abcdefgh) - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" } } @@ -270,30 +270,30 @@ GrB_Info GB_emult_generic // generic emult // emult method 2 (abc) // C=A.*B or C<#M>=A.*B; A sparse/hyper; M and B bitmap/full // C is sparse - #include "GB_emult_02_template.c" + #include "ewise/template/GB_emult_02_template.c" } else if (ewise_method == GB_EMULT_METHOD3) { // emult method 3 (abc) // C=A.*B or C<#M>=A.*B; B sparse/hyper; M and A bitmap/full // C is sparse - #include "GB_emult_03_template.c" + #include "ewise/template/GB_emult_03_template.c" } else if (ewise_method == GB_EMULT_METHOD4) { // C=A.*B; M sparse/hyper, A and B bitmap/full // C is sparse - #include "GB_emult_04_template.c" + #include "ewise/template/GB_emult_04_template.c" } else if (C_sparsity == GxB_BITMAP) { // C is bitmap: emult methods 5, 6, or 7 - #include "GB_emult_bitmap_template.c" + #include "ewise/template/GB_emult_bitmap_template.c" } else { // C is sparse: emult method 8 (abcdefgh) - #include "GB_emult_08_meta.c" + #include "ewise/template/GB_emult_08_meta.c" } } diff --git a/GraphBLAS/Source/GB_emult_iso.c b/GraphBLAS/Source/ewise/GB_emult_iso.c similarity index 99% rename from GraphBLAS/Source/GB_emult_iso.c rename to GraphBLAS/Source/ewise/GB_emult_iso.c index 1775f063c1..56e6183aec 100644 --- a/GraphBLAS/Source/GB_emult_iso.c +++ b/GraphBLAS/Source/ewise/GB_emult_iso.c @@ -11,7 +11,7 @@ // C=kron(A,B) results in an iso matrix C. If true, the output scalar c is the // iso value for the matrix C. -#include "GB_emult.h" +#include "ewise/GB_emult.h" bool GB_emult_iso // c = op(a,b), return true if C is iso ( diff --git a/GraphBLAS/Source/GB_emult_sparsity.c b/GraphBLAS/Source/ewise/GB_emult_sparsity.c similarity index 99% rename from GraphBLAS/Source/GB_emult_sparsity.c rename to GraphBLAS/Source/ewise/GB_emult_sparsity.c index 1a0b3cdf92..f36492cb74 100644 --- a/GraphBLAS/Source/GB_emult_sparsity.c +++ b/GraphBLAS/Source/ewise/GB_emult_sparsity.c @@ -21,8 +21,8 @@ // and as a result, there is no need for a GB_emult to handle the case when // C is full. -#include "GB_emult.h" -#include "GB_mask_very_sparse.h" +#include "ewise/GB_emult.h" +#include "mask/GB_mask_very_sparse.h" int GB_emult_sparsity // return the sparsity structure for C ( diff --git a/GraphBLAS/Source/GB_ewise.c b/GraphBLAS/Source/ewise/GB_ewise.c similarity index 99% rename from GraphBLAS/Source/GB_ewise.c rename to GraphBLAS/Source/ewise/GB_ewise.c index 80a0163293..c24eefbb7f 100644 --- a/GraphBLAS/Source/GB_ewise.c +++ b/GraphBLAS/Source/ewise/GB_ewise.c @@ -19,12 +19,12 @@ GB_Matrix_free (&MT) ; \ } -#include "GB_ewise.h" -#include "GB_add.h" -#include "GB_emult.h" -#include "GB_transpose.h" -#include "GB_accum_mask.h" -#include "GB_binop.h" +#include "ewise/GB_ewise.h" +#include "ewise/GB_add.h" +#include "ewise/GB_emult.h" +#include "transpose/GB_transpose.h" +#include "mask/GB_accum_mask.h" +#include "binaryop/GB_binop.h" GrB_Info GB_ewise // C = accum (C, A+B) or A.*B ( diff --git a/GraphBLAS/Source/GB_ewise.h b/GraphBLAS/Source/ewise/GB_ewise.h similarity index 100% rename from GraphBLAS/Source/GB_ewise.h rename to GraphBLAS/Source/ewise/GB_ewise.h diff --git a/GraphBLAS/Source/GB_ewise_fulla.c b/GraphBLAS/Source/ewise/GB_ewise_fulla.c similarity index 95% rename from GraphBLAS/Source/GB_ewise_fulla.c rename to GraphBLAS/Source/ewise/GB_ewise_fulla.c index 660f27a444..ec9d5161e2 100644 --- a/GraphBLAS/Source/GB_ewise_fulla.c +++ b/GraphBLAS/Source/ewise/GB_ewise_fulla.c @@ -11,11 +11,11 @@ // JIT: done. -#include "GB_ewise.h" -#include "GB_binop.h" -#include "GB_stringify.h" +#include "ewise/GB_ewise.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif GrB_Info GB_ewise_fulla // C += A+B, all matrices full @@ -104,7 +104,7 @@ GrB_Info GB_ewise_fulla // C += A+B, all matrices full op, false, &opcode, &xcode, &ycode, &zcode)) { #define GB_BINOP_SUBSET - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } #endif diff --git a/GraphBLAS/Source/GB_ewise_fulln.c b/GraphBLAS/Source/ewise/GB_ewise_fulln.c similarity index 96% rename from GraphBLAS/Source/GB_ewise_fulln.c rename to GraphBLAS/Source/ewise/GB_ewise_fulln.c index 58d6dd88fc..99fa7c3f66 100644 --- a/GraphBLAS/Source/GB_ewise_fulln.c +++ b/GraphBLAS/Source/ewise/GB_ewise_fulln.c @@ -12,11 +12,11 @@ // C can have any sparsity on input; it becomes a full non-iso matrix on output. // C can have pending work, which is discarded. -#include "GB_ewise.h" -#include "GB_binop.h" -#include "GB_stringify.h" +#include "ewise/GB_ewise.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif #define GB_FREE_ALL ; @@ -129,7 +129,7 @@ GrB_Info GB_ewise_fulln // C = A+B if (GB_binop_builtin (A->type, false, B->type, false, op, false, &opcode, &xcode, &ycode, &zcode)) { - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } #endif diff --git a/GraphBLAS/Source/GrB_Matrix_eWiseAdd.c b/GraphBLAS/Source/ewise/GrB_Matrix_eWiseAdd.c similarity index 99% rename from GraphBLAS/Source/GrB_Matrix_eWiseAdd.c rename to GraphBLAS/Source/ewise/GrB_Matrix_eWiseAdd.c index f2caff05fc..54da87d3f4 100644 --- a/GraphBLAS/Source/GrB_Matrix_eWiseAdd.c +++ b/GraphBLAS/Source/ewise/GrB_Matrix_eWiseAdd.c @@ -9,8 +9,8 @@ // C = accum (C,A+B) and variations. -#include "GB_ewise.h" -#include "GB_get_mask.h" +#include "ewise/GB_ewise.h" +#include "mask/GB_get_mask.h" #define GB_EWISE(op) \ /* check inputs */ \ diff --git a/GraphBLAS/Source/GrB_Matrix_eWiseMult.c b/GraphBLAS/Source/ewise/GrB_Matrix_eWiseMult.c similarity index 99% rename from GraphBLAS/Source/GrB_Matrix_eWiseMult.c rename to GraphBLAS/Source/ewise/GrB_Matrix_eWiseMult.c index 324f02abec..aab642981a 100644 --- a/GraphBLAS/Source/GrB_Matrix_eWiseMult.c +++ b/GraphBLAS/Source/ewise/GrB_Matrix_eWiseMult.c @@ -9,8 +9,8 @@ // C = accum (C,A.*B) and variations. -#include "GB_ewise.h" -#include "GB_get_mask.h" +#include "ewise/GB_ewise.h" +#include "mask/GB_get_mask.h" #define GB_EWISE(op) \ /* check inputs */ \ diff --git a/GraphBLAS/Source/GrB_Vector_eWiseAdd.c b/GraphBLAS/Source/ewise/GrB_Vector_eWiseAdd.c similarity index 99% rename from GraphBLAS/Source/GrB_Vector_eWiseAdd.c rename to GraphBLAS/Source/ewise/GrB_Vector_eWiseAdd.c index e4beecb451..ba1d3e0a3e 100644 --- a/GraphBLAS/Source/GrB_Vector_eWiseAdd.c +++ b/GraphBLAS/Source/ewise/GrB_Vector_eWiseAdd.c @@ -9,8 +9,8 @@ // w = accum (w,u+v) -#include "GB_ewise.h" -#include "GB_get_mask.h" +#include "ewise/GB_ewise.h" +#include "mask/GB_get_mask.h" #define GB_EWISE(op) \ /* check inputs */ \ diff --git a/GraphBLAS/Source/GrB_Vector_eWiseMult.c b/GraphBLAS/Source/ewise/GrB_Vector_eWiseMult.c similarity index 99% rename from GraphBLAS/Source/GrB_Vector_eWiseMult.c rename to GraphBLAS/Source/ewise/GrB_Vector_eWiseMult.c index b1633c86e6..e28930f9c8 100644 --- a/GraphBLAS/Source/GrB_Vector_eWiseMult.c +++ b/GraphBLAS/Source/ewise/GrB_Vector_eWiseMult.c @@ -9,8 +9,8 @@ // w = accum (w,u.*v) -#include "GB_ewise.h" -#include "GB_get_mask.h" +#include "ewise/GB_ewise.h" +#include "mask/GB_get_mask.h" #define GB_EWISE(op) \ /* check inputs */ \ diff --git a/GraphBLAS/Source/GxB_Matrix_eWiseUnion.c b/GraphBLAS/Source/ewise/GxB_Matrix_eWiseUnion.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_eWiseUnion.c rename to GraphBLAS/Source/ewise/GxB_Matrix_eWiseUnion.c index 28aff9f169..9f91bf6d04 100644 --- a/GraphBLAS/Source/GxB_Matrix_eWiseUnion.c +++ b/GraphBLAS/Source/ewise/GxB_Matrix_eWiseUnion.c @@ -25,8 +25,8 @@ // else if A(i,j) does not appear but B(i,j) does: // C(i,j) = B(i,j) -#include "GB_ewise.h" -#include "GB_get_mask.h" +#include "ewise/GB_ewise.h" +#include "mask/GB_get_mask.h" #define GB_EWISE(op) \ /* check inputs */ \ diff --git a/GraphBLAS/Source/GxB_Vector_eWiseUnion.c b/GraphBLAS/Source/ewise/GxB_Vector_eWiseUnion.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_eWiseUnion.c rename to GraphBLAS/Source/ewise/GxB_Vector_eWiseUnion.c index bb48b01d53..fb33508d17 100644 --- a/GraphBLAS/Source/GxB_Vector_eWiseUnion.c +++ b/GraphBLAS/Source/ewise/GxB_Vector_eWiseUnion.c @@ -16,8 +16,8 @@ // else if u(i) does not appear but v(i) does: // C(i,j) = add (alpha, v(i)) -#include "GB_ewise.h" -#include "GB_get_mask.h" +#include "ewise/GB_ewise.h" +#include "mask/GB_get_mask.h" #define GB_EWISE(op) \ /* check inputs */ \ diff --git a/GraphBLAS/Source/Shared/GB_ewise_shared_definitions.h b/GraphBLAS/Source/ewise/include/GB_ewise_shared_definitions.h similarity index 96% rename from GraphBLAS/Source/Shared/GB_ewise_shared_definitions.h rename to GraphBLAS/Source/ewise/include/GB_ewise_shared_definitions.h index ea17ab9a83..8b0e542512 100644 --- a/GraphBLAS/Source/Shared/GB_ewise_shared_definitions.h +++ b/GraphBLAS/Source/ewise/include/GB_ewise_shared_definitions.h @@ -12,7 +12,7 @@ // this file. This file is shared by generic, factory, and both CPU and // CUDA JIT kernels. -#include "GB_kernel_shared_definitions.h" +#include "include/GB_kernel_shared_definitions.h" #ifndef GB_EWISE_SHARED_DEFINITIONS_H #define GB_EWISE_SHARED_DEFINITIONS_H diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_M_bitmap.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_bitmap.c similarity index 92% rename from GraphBLAS/Source/Template/GB_add_bitmap_M_bitmap.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_M_bitmap.c index 3d38a4394e..e9712e32ae 100644 --- a/GraphBLAS/Source/Template/GB_add_bitmap_M_bitmap.c +++ b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_bitmap.c @@ -81,17 +81,17 @@ #if (GB_A_IS_BITMAP || GB_A_IS_FULL) && (GB_B_IS_BITMAP || GB_B_IS_FULL) { // A and B are both bitmap/full - #include "GB_add_bitmap_M_bitmap_27.c" + #include "template/GB_add_bitmap_M_bitmap_27.c" } #elif (GB_A_IS_BITMAP || GB_A_IS_FULL) { // A is bitmap/full, B is sparse/hyper - #include "GB_add_bitmap_M_bitmap_28.c" + #include "template/GB_add_bitmap_M_bitmap_28.c" } #else { // A is sparse/hyper, B is bitmap/full - #include "GB_add_bitmap_M_bitmap_29.c" + #include "template/GB_add_bitmap_M_bitmap_29.c" } #endif } @@ -100,17 +100,17 @@ if ((A_is_bitmap || A_is_full) && (B_is_bitmap || B_is_full)) { // A and B are both bitmap/full - #include "GB_add_bitmap_M_bitmap_27.c" + #include "template/GB_add_bitmap_M_bitmap_27.c" } else if (A_is_bitmap || A_is_full) { // A is bitmap/full, B is sparse/hyper - #include "GB_add_bitmap_M_bitmap_28.c" + #include "template/GB_add_bitmap_M_bitmap_28.c" } else { // A is sparse/hyper, B is bitmap/full - #include "GB_add_bitmap_M_bitmap_29.c" + #include "template/GB_add_bitmap_M_bitmap_29.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_M_bitmap_27.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_bitmap_27.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_bitmap_M_bitmap_27.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_M_bitmap_27.c diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_M_bitmap_28.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_bitmap_28.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_bitmap_M_bitmap_28.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_M_bitmap_28.c diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_M_bitmap_29.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_bitmap_29.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_bitmap_M_bitmap_29.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_M_bitmap_29.c diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_M_sparse.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_sparse.c similarity index 94% rename from GraphBLAS/Source/Template/GB_add_bitmap_M_sparse.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_M_sparse.c index 5ad543bac4..58d60737df 100644 --- a/GraphBLAS/Source/Template/GB_add_bitmap_M_sparse.c +++ b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_sparse.c @@ -86,19 +86,19 @@ #if (GB_A_IS_BITMAP || GB_A_IS_FULL) && (GB_B_IS_BITMAP || GB_B_IS_FULL) { // A and B are both bitmap/full - #include "GB_add_bitmap_M_sparse_24.c" + #include "template/GB_add_bitmap_M_sparse_24.c" #define M_cleared true } #elif (GB_A_IS_BITMAP || GB_A_IS_FULL) { // A is bitmap/full, B is sparse/hyper - #include "GB_add_bitmap_M_sparse_25.c" + #include "template/GB_add_bitmap_M_sparse_25.c" #define M_cleared false } #else { // A is sparse/hyper, B is bitmap/full - #include "GB_add_bitmap_M_sparse_26.c" + #include "template/GB_add_bitmap_M_sparse_26.c" #define M_cleared false } #endif @@ -109,18 +109,18 @@ if ((A_is_bitmap || A_is_full) && (B_is_bitmap || B_is_full)) { // A and B are both bitmap/full - #include "GB_add_bitmap_M_sparse_24.c" + #include "template/GB_add_bitmap_M_sparse_24.c" M_cleared = true ; // M has also been cleared from C } else if (A_is_bitmap || A_is_full) { // A is bitmap/full, B is sparse/hyper - #include "GB_add_bitmap_M_sparse_25.c" + #include "template/GB_add_bitmap_M_sparse_25.c" } else { // A is sparse/hyper, B is bitmap/full - #include "GB_add_bitmap_M_sparse_26.c" + #include "template/GB_add_bitmap_M_sparse_26.c" } #endif diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_M_sparse_24.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_sparse_24.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_bitmap_M_sparse_24.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_M_sparse_24.c diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_M_sparse_25.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_sparse_25.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_bitmap_M_sparse_25.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_M_sparse_25.c diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_M_sparse_26.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_M_sparse_26.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_bitmap_M_sparse_26.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_M_sparse_26.c diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_noM.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_noM.c similarity index 82% rename from GraphBLAS/Source/Template/GB_add_bitmap_noM.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_noM.c index f191d37cc2..1f27120332 100644 --- a/GraphBLAS/Source/Template/GB_add_bitmap_noM.c +++ b/GraphBLAS/Source/ewise/template/GB_add_bitmap_noM.c @@ -28,17 +28,17 @@ #if (GB_A_IS_BITMAP && GB_B_IS_BITMAP) { // A and B are both bitmap - #include "GB_add_bitmap_noM_21.c" + #include "template/GB_add_bitmap_noM_21.c" } #elif (GB_A_IS_BITMAP) { // A is bitmap, B is sparse/hyper - #include "GB_add_bitmap_noM_22.c" + #include "template/GB_add_bitmap_noM_22.c" } #else { // A is sparse/hyper, B is bitmap - #include "GB_add_bitmap_noM_23.c" + #include "template/GB_add_bitmap_noM_23.c" } #endif } @@ -47,17 +47,17 @@ if (A_is_bitmap && B_is_bitmap) { // A and B are both bitmap - #include "GB_add_bitmap_noM_21.c" + #include "template/GB_add_bitmap_noM_21.c" } else if (A_is_bitmap) { // A is bitmap, B is sparse/hyper - #include "GB_add_bitmap_noM_22.c" + #include "template/GB_add_bitmap_noM_22.c" } else { // A is sparse/hyper, B is bitmap - #include "GB_add_bitmap_noM_23.c" + #include "template/GB_add_bitmap_noM_23.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_noM_21.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_noM_21.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_bitmap_noM_21.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_noM_21.c diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_noM_22.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_noM_22.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_bitmap_noM_22.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_noM_22.c diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_noM_23.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_noM_23.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_bitmap_noM_23.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_noM_23.c diff --git a/GraphBLAS/Source/Template/GB_add_bitmap_template.c b/GraphBLAS/Source/ewise/template/GB_add_bitmap_template.c similarity index 85% rename from GraphBLAS/Source/Template/GB_add_bitmap_template.c rename to GraphBLAS/Source/ewise/template/GB_add_bitmap_template.c index 39e2f3613d..9aa944352c 100644 --- a/GraphBLAS/Source/Template/GB_add_bitmap_template.c +++ b/GraphBLAS/Source/ewise/template/GB_add_bitmap_template.c @@ -24,19 +24,19 @@ { // M is not present. // A or B is bitmap (or both). Neither A nor B are full. - #include "GB_add_bitmap_noM.c" + #include "template/GB_add_bitmap_noM.c" } #elif (GB_M_IS_SPARSE || GB_M_IS_HYPER) { // M is sparse/hyper and complemented, value/structural. // A and B can have any format, except at least one is bitmap/full. - #include "GB_add_bitmap_M_sparse.c" + #include "template/GB_add_bitmap_M_sparse.c" } #else { // M is bitmap/full, complemented or not, and valued/structural. // A and B have any sparsity format but at least one is bitmap/full. - #include "GB_add_bitmap_M_bitmap.c" + #include "template/GB_add_bitmap_M_bitmap.c" } #endif @@ -48,19 +48,19 @@ { // M is not present. // A or B is bitmap (or both). Neither A nor B are full. - #include "GB_add_bitmap_noM.c" + #include "template/GB_add_bitmap_noM.c" } else if (M_is_sparse_or_hyper) { // M is sparse/hyper and complemented, value/structural. // A and B can have any format, except at least one is bitmap/full. - #include "GB_add_bitmap_M_sparse.c" + #include "template/GB_add_bitmap_M_sparse.c" } else { // M is bitmap/full, complemented or not, and valued/structural. // A and B have any sparsity format but at least one is bitmap/full. - #include "GB_add_bitmap_M_bitmap.c" + #include "template/GB_add_bitmap_M_bitmap.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_add_full_30.c b/GraphBLAS/Source/ewise/template/GB_add_full_30.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_full_30.c rename to GraphBLAS/Source/ewise/template/GB_add_full_30.c diff --git a/GraphBLAS/Source/Template/GB_add_full_31.c b/GraphBLAS/Source/ewise/template/GB_add_full_31.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_full_31.c rename to GraphBLAS/Source/ewise/template/GB_add_full_31.c diff --git a/GraphBLAS/Source/Template/GB_add_full_32.c b/GraphBLAS/Source/ewise/template/GB_add_full_32.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_full_32.c rename to GraphBLAS/Source/ewise/template/GB_add_full_32.c diff --git a/GraphBLAS/Source/Template/GB_add_full_33.c b/GraphBLAS/Source/ewise/template/GB_add_full_33.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_full_33.c rename to GraphBLAS/Source/ewise/template/GB_add_full_33.c diff --git a/GraphBLAS/Source/Template/GB_add_full_34.c b/GraphBLAS/Source/ewise/template/GB_add_full_34.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_full_34.c rename to GraphBLAS/Source/ewise/template/GB_add_full_34.c diff --git a/GraphBLAS/Source/Template/GB_add_full_template.c b/GraphBLAS/Source/ewise/template/GB_add_full_template.c similarity index 84% rename from GraphBLAS/Source/Template/GB_add_full_template.c rename to GraphBLAS/Source/ewise/template/GB_add_full_template.c index 295bbf63ae..fb9601ff22 100644 --- a/GraphBLAS/Source/Template/GB_add_full_template.c +++ b/GraphBLAS/Source/ewise/template/GB_add_full_template.c @@ -33,7 +33,7 @@ #if (GB_A_IS_FULL && GB_B_IS_FULL) { // C, A, and B are all full - #include "GB_add_full_30.c" + #include "template/GB_add_full_30.c" } #elif (GB_A_IS_FULL) { @@ -41,12 +41,12 @@ #if (GB_B_IS_BITMAP) { // C and A are full; B is bitmap - #include "GB_add_full_31.c" + #include "template/GB_add_full_31.c" } #else { // C and A are full; B is sparse or hypersparse - #include "GB_add_full_32.c" + #include "template/GB_add_full_32.c" } #endif } @@ -56,12 +56,12 @@ #if (GB_A_IS_BITMAP) { // C and B are full; A is bitmap - #include "GB_add_full_33.c" + #include "template/GB_add_full_33.c" } #else { // C and B are full; A is hypersparse or sparse - #include "GB_add_full_34.c" + #include "template/GB_add_full_34.c" } #endif } @@ -72,7 +72,7 @@ if (A_is_full && B_is_full) { // C, A, and B are all full - #include "GB_add_full_30.c" + #include "template/GB_add_full_30.c" } else if (A_is_full) { @@ -80,12 +80,12 @@ if (B_is_bitmap) { // C and A are full; B is bitmap - #include "GB_add_full_31.c" + #include "template/GB_add_full_31.c" } else { // C and A are full; B is sparse or hypersparse - #include "GB_add_full_32.c" + #include "template/GB_add_full_32.c" } } else @@ -94,12 +94,12 @@ if (A_is_bitmap) { // C and B are full; A is bitmap - #include "GB_add_full_33.c" + #include "template/GB_add_full_33.c" } else { // C and B are full; A is hypersparse or sparse - #include "GB_add_full_34.c" + #include "template/GB_add_full_34.c" } } } diff --git a/GraphBLAS/Source/Template/GB_add_sparse_M_bitmap.c b/GraphBLAS/Source/ewise/template/GB_add_sparse_M_bitmap.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_sparse_M_bitmap.c rename to GraphBLAS/Source/ewise/template/GB_add_sparse_M_bitmap.c diff --git a/GraphBLAS/Source/Template/GB_add_sparse_M_sparse.c b/GraphBLAS/Source/ewise/template/GB_add_sparse_M_sparse.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_sparse_M_sparse.c rename to GraphBLAS/Source/ewise/template/GB_add_sparse_M_sparse.c diff --git a/GraphBLAS/Source/Template/GB_add_sparse_noM.c b/GraphBLAS/Source/ewise/template/GB_add_sparse_noM.c similarity index 100% rename from GraphBLAS/Source/Template/GB_add_sparse_noM.c rename to GraphBLAS/Source/ewise/template/GB_add_sparse_noM.c diff --git a/GraphBLAS/Source/Template/GB_add_sparse_template.c b/GraphBLAS/Source/ewise/template/GB_add_sparse_template.c similarity index 95% rename from GraphBLAS/Source/Template/GB_add_sparse_template.c rename to GraphBLAS/Source/ewise/template/GB_add_sparse_template.c index 1741abc40d..58d3e94183 100644 --- a/GraphBLAS/Source/Template/GB_add_sparse_template.c +++ b/GraphBLAS/Source/ewise/template/GB_add_sparse_template.c @@ -193,15 +193,15 @@ { #if GB_NO_MASK { - #include "GB_add_sparse_noM.c" + #include "template/GB_add_sparse_noM.c" } #elif (GB_M_IS_SPARSE || GB_M_IS_HYPER) { - #include "GB_add_sparse_M_sparse.c" + #include "template/GB_add_sparse_M_sparse.c" } #else { - #include "GB_add_sparse_M_bitmap.c" + #include "template/GB_add_sparse_M_bitmap.c" } #endif } @@ -209,15 +209,15 @@ { if (M == NULL) { - #include "GB_add_sparse_noM.c" + #include "template/GB_add_sparse_noM.c" } else if (M_is_sparse_or_hyper) { - #include "GB_add_sparse_M_sparse.c" + #include "template/GB_add_sparse_M_sparse.c" } else { - #include "GB_add_sparse_M_bitmap.c" + #include "template/GB_add_sparse_M_bitmap.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_add_template.c b/GraphBLAS/Source/ewise/template/GB_add_template.c similarity index 94% rename from GraphBLAS/Source/Template/GB_add_template.c rename to GraphBLAS/Source/ewise/template/GB_add_template.c index b6d8d1ebf9..633d9a06fe 100644 --- a/GraphBLAS/Source/Template/GB_add_template.c +++ b/GraphBLAS/Source/ewise/template/GB_add_template.c @@ -149,7 +149,7 @@ // phase1: symbolic phase // C is sparse or hypersparse (never bitmap or full) - #include "GB_add_sparse_template.c" + #include "template/GB_add_sparse_template.c" #else @@ -172,15 +172,15 @@ { #if GB_C_IS_SPARSE || GB_C_IS_HYPER { - #include "GB_add_sparse_template.c" + #include "template/GB_add_sparse_template.c" } #elif GB_C_IS_BITMAP { - #include "GB_add_bitmap_template.c" + #include "template/GB_add_bitmap_template.c" } #else { - #include "GB_add_full_template.c" + #include "template/GB_add_full_template.c" } #endif } @@ -189,18 +189,18 @@ if (C_sparsity == GxB_SPARSE || C_sparsity == GxB_HYPERSPARSE) { // C is sparse or hypersparse - #include "GB_add_sparse_template.c" + #include "template/GB_add_sparse_template.c" } else if (C_sparsity == GxB_BITMAP) { // C is bitmap (phase2 only) - #include "GB_add_bitmap_template.c" + #include "template/GB_add_bitmap_template.c" } else { // C is full (phase2 only), and not iso ASSERT (C_sparsity == GxB_FULL) ; - #include "GB_add_full_template.c" + #include "template/GB_add_full_template.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_emult_02_template.c b/GraphBLAS/Source/ewise/template/GB_emult_02_template.c similarity index 90% rename from GraphBLAS/Source/Template/GB_emult_02_template.c rename to GraphBLAS/Source/ewise/template/GB_emult_02_template.c index 38591794ec..ee5eeb8720 100644 --- a/GraphBLAS/Source/Template/GB_emult_02_template.c +++ b/GraphBLAS/Source/ewise/template/GB_emult_02_template.c @@ -64,19 +64,19 @@ #if GB_B_IS_BITMAP { // C=A.*B, where A is sparse/hyper and B is bitmap - #include "GB_emult_02a.c" + #include "template/GB_emult_02a.c" } #else { // C=A.*B, where A is sparse/hyper and B is full - #include "GB_emult_02b.c" + #include "template/GB_emult_02b.c" } #endif } #else { // C<#M>=A.*B, where A is sparse/hyper; M and B are bitmap/full - #include "GB_emult_02c.c" + #include "template/GB_emult_02c.c" } #endif @@ -87,18 +87,18 @@ if (GB_IS_BITMAP (B)) { // C=A.*B, where A is sparse/hyper and B is bitmap - #include "GB_emult_02a.c" + #include "template/GB_emult_02a.c" } else { // C=A.*B, where A is sparse/hyper and B is full - #include "GB_emult_02b.c" + #include "template/GB_emult_02b.c" } } else { // C<#M>=A.*B, where A is sparse/hyper; M and B are bitmap/full - #include "GB_emult_02c.c" + #include "template/GB_emult_02c.c" } #endif diff --git a/GraphBLAS/Source/Template/GB_emult_02a.c b/GraphBLAS/Source/ewise/template/GB_emult_02a.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_02a.c rename to GraphBLAS/Source/ewise/template/GB_emult_02a.c diff --git a/GraphBLAS/Source/Template/GB_emult_02b.c b/GraphBLAS/Source/ewise/template/GB_emult_02b.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_02b.c rename to GraphBLAS/Source/ewise/template/GB_emult_02b.c diff --git a/GraphBLAS/Source/Template/GB_emult_02c.c b/GraphBLAS/Source/ewise/template/GB_emult_02c.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_02c.c rename to GraphBLAS/Source/ewise/template/GB_emult_02c.c diff --git a/GraphBLAS/Source/Template/GB_emult_03_template.c b/GraphBLAS/Source/ewise/template/GB_emult_03_template.c similarity index 90% rename from GraphBLAS/Source/Template/GB_emult_03_template.c rename to GraphBLAS/Source/ewise/template/GB_emult_03_template.c index 3bd9a4107d..3640aa8f9e 100644 --- a/GraphBLAS/Source/Template/GB_emult_03_template.c +++ b/GraphBLAS/Source/ewise/template/GB_emult_03_template.c @@ -64,19 +64,19 @@ #if GB_A_IS_BITMAP { // C=A.*B, where A is bitmap and B is sparse/hyper - #include "GB_emult_03a.c" + #include "template/GB_emult_03a.c" } #else { // C=A.*B, where A is full and B is sparse/hyper - #include "GB_emult_03b.c" + #include "template/GB_emult_03b.c" } #endif } #else { // C<#M>=A.*B, where M and A are bitmap/full and B is sparse/hyper - #include "GB_emult_03c.c" + #include "template/GB_emult_03c.c" } #endif @@ -87,18 +87,18 @@ if (GB_IS_BITMAP (A)) { // C=A.*B, where A is bitmap and B is sparse/hyper - #include "GB_emult_03a.c" + #include "template/GB_emult_03a.c" } else { // C=A.*B, where A is full and B is sparse/hyper - #include "GB_emult_03b.c" + #include "template/GB_emult_03b.c" } } else { // C<#M>=A.*B, where M and A are bitmap/full and B is sparse/hyper - #include "GB_emult_03c.c" + #include "template/GB_emult_03c.c" } #endif diff --git a/GraphBLAS/Source/Template/GB_emult_03a.c b/GraphBLAS/Source/ewise/template/GB_emult_03a.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_03a.c rename to GraphBLAS/Source/ewise/template/GB_emult_03a.c diff --git a/GraphBLAS/Source/Template/GB_emult_03b.c b/GraphBLAS/Source/ewise/template/GB_emult_03b.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_03b.c rename to GraphBLAS/Source/ewise/template/GB_emult_03b.c diff --git a/GraphBLAS/Source/Template/GB_emult_03c.c b/GraphBLAS/Source/ewise/template/GB_emult_03c.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_03c.c rename to GraphBLAS/Source/ewise/template/GB_emult_03c.c diff --git a/GraphBLAS/Source/Template/GB_emult_04_template.c b/GraphBLAS/Source/ewise/template/GB_emult_04_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_04_template.c rename to GraphBLAS/Source/ewise/template/GB_emult_04_template.c diff --git a/GraphBLAS/Source/Template/GB_emult_08_meta.c b/GraphBLAS/Source/ewise/template/GB_emult_08_meta.c similarity index 97% rename from GraphBLAS/Source/Template/GB_emult_08_meta.c rename to GraphBLAS/Source/ewise/template/GB_emult_08_meta.c index 0dc789885f..322e9b43d8 100644 --- a/GraphBLAS/Source/Template/GB_emult_08_meta.c +++ b/GraphBLAS/Source/ewise/template/GB_emult_08_meta.c @@ -22,7 +22,7 @@ { // iB_first is unused if the operator is FIRST or PAIR - #include "GB_unused.h" + #include "include/GB_unused.h" //-------------------------------------------------------------------------- // get A, B, M, and C @@ -131,12 +131,12 @@ #if ( GB_EMULT_08_PHASE == 1 ) { // phase1: symbolic phase - #include "GB_emult_08_template.c" + #include "template/GB_emult_08_template.c" } #else { // phase2: numerical phase - #include "GB_emult_08_template.c" + #include "template/GB_emult_08_template.c" } #endif } diff --git a/GraphBLAS/Source/Template/GB_emult_08_template.c b/GraphBLAS/Source/ewise/template/GB_emult_08_template.c similarity index 96% rename from GraphBLAS/Source/Template/GB_emult_08_template.c rename to GraphBLAS/Source/ewise/template/GB_emult_08_template.c index 3916c7308d..44027ca605 100644 --- a/GraphBLAS/Source/Template/GB_emult_08_template.c +++ b/GraphBLAS/Source/ewise/template/GB_emult_08_template.c @@ -217,18 +217,18 @@ #if GB_NO_MASK { // C=A.*B, all matrices sparse/hyper - #include "GB_emult_08bcd.c" + #include "template/GB_emult_08bcd.c" } #elif (GB_M_IS_SPARSE || GB_M_IS_HYPER) { // C=A.*B, C and M are sparse/hyper // either A or B are sparse/hyper - #include "GB_emult_08e.c" + #include "template/GB_emult_08e.c" } #else { // C<#M>=A.*B; C, A and B are sparse/hyper; M is bitmap/full - #include "GB_emult_08fgh.c" + #include "template/GB_emult_08fgh.c" } #endif } @@ -237,18 +237,18 @@ if (M == NULL) { // C=A.*B, all matrices sparse/hyper - #include "GB_emult_08bcd.c" + #include "template/GB_emult_08bcd.c" } else if (M_is_sparse_or_hyper) { // C=A.*B, C and M are sparse/hyper // either A or B are sparse/hyper - #include "GB_emult_08e.c" + #include "template/GB_emult_08e.c" } else { // C<#M>=A.*B; C, A and B are sparse/hyper; M is bitmap/full - #include "GB_emult_08fgh.c" + #include "template/GB_emult_08fgh.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_emult_08bcd.c b/GraphBLAS/Source/ewise/template/GB_emult_08bcd.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_08bcd.c rename to GraphBLAS/Source/ewise/template/GB_emult_08bcd.c diff --git a/GraphBLAS/Source/Template/GB_emult_08e.c b/GraphBLAS/Source/ewise/template/GB_emult_08e.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_08e.c rename to GraphBLAS/Source/ewise/template/GB_emult_08e.c diff --git a/GraphBLAS/Source/Template/GB_emult_08fgh.c b/GraphBLAS/Source/ewise/template/GB_emult_08fgh.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_08fgh.c rename to GraphBLAS/Source/ewise/template/GB_emult_08fgh.c diff --git a/GraphBLAS/Source/Template/GB_emult_bitmap_5.c b/GraphBLAS/Source/ewise/template/GB_emult_bitmap_5.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_bitmap_5.c rename to GraphBLAS/Source/ewise/template/GB_emult_bitmap_5.c diff --git a/GraphBLAS/Source/Template/GB_emult_bitmap_6.c b/GraphBLAS/Source/ewise/template/GB_emult_bitmap_6.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_bitmap_6.c rename to GraphBLAS/Source/ewise/template/GB_emult_bitmap_6.c diff --git a/GraphBLAS/Source/Template/GB_emult_bitmap_7.c b/GraphBLAS/Source/ewise/template/GB_emult_bitmap_7.c similarity index 100% rename from GraphBLAS/Source/Template/GB_emult_bitmap_7.c rename to GraphBLAS/Source/ewise/template/GB_emult_bitmap_7.c diff --git a/GraphBLAS/Source/Template/GB_emult_bitmap_template.c b/GraphBLAS/Source/ewise/template/GB_emult_bitmap_template.c similarity index 90% rename from GraphBLAS/Source/Template/GB_emult_bitmap_template.c rename to GraphBLAS/Source/ewise/template/GB_emult_bitmap_template.c index fb9d20e9cd..bab484f47b 100644 --- a/GraphBLAS/Source/Template/GB_emult_bitmap_template.c +++ b/GraphBLAS/Source/ewise/template/GB_emult_bitmap_template.c @@ -61,17 +61,17 @@ #if GB_NO_MASK { // C=A.*B; C bitmap, M not present, A and B are bitmap/full - #include "GB_emult_bitmap_5.c" + #include "template/GB_emult_bitmap_5.c" } #elif GB_M_IS_SPARSE || GB_M_IS_HYPER { // C=A.*B; C bitmap, M sparse/hyper, A and B are bitmap/full - #include "GB_emult_bitmap_6.c" + #include "template/GB_emult_bitmap_6.c" } #else { // C<#M>=A.*B; C bitmap; M, A, and B are all bitmap/full - #include "GB_emult_bitmap_7.c" + #include "template/GB_emult_bitmap_7.c" } #endif } @@ -80,17 +80,17 @@ if (M == NULL) { // C=A.*B; C bitmap, M not present, A and B are bitmap/full - #include "GB_emult_bitmap_5.c" + #include "template/GB_emult_bitmap_5.c" } else if (GB_IS_SPARSE (M) || GB_IS_HYPERSPARSE (M)) { // C=A.*B; C bitmap, M sparse/hyper, A and B are bitmap/full - #include "GB_emult_bitmap_6.c" + #include "template/GB_emult_bitmap_6.c" } else { // C<#M>=A.*B; C bitmap; M, A, and B are all bitmap/full - #include "GB_emult_bitmap_7.c" + #include "template/GB_emult_bitmap_7.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_ewise_fulla_template.c b/GraphBLAS/Source/ewise/template/GB_ewise_fulla_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_ewise_fulla_template.c rename to GraphBLAS/Source/ewise/template/GB_ewise_fulla_template.c diff --git a/GraphBLAS/Source/Template/GB_ewise_fulln_template.c b/GraphBLAS/Source/ewise/template/GB_ewise_fulln_template.c similarity index 98% rename from GraphBLAS/Source/Template/GB_ewise_fulln_template.c rename to GraphBLAS/Source/ewise/template/GB_ewise_fulln_template.c index 044f40170f..0e73d5b45b 100644 --- a/GraphBLAS/Source/Template/GB_ewise_fulln_template.c +++ b/GraphBLAS/Source/ewise/template/GB_ewise_fulln_template.c @@ -9,7 +9,7 @@ // This template is not used for any generic kernels. -#include "GB_unused.h" +#include "include/GB_unused.h" { diff --git a/GraphBLAS/Source/GB_I_inverse.c b/GraphBLAS/Source/extract/GB_I_inverse.c similarity index 99% rename from GraphBLAS/Source/GB_I_inverse.c rename to GraphBLAS/Source/extract/GB_I_inverse.c index a3021fbf94..2798e238e4 100644 --- a/GraphBLAS/Source/GB_I_inverse.c +++ b/GraphBLAS/Source/extract/GB_I_inverse.c @@ -17,7 +17,7 @@ // duplicates in I, and then construct the buckets in parallel after the qsort. // But the time complexity would be higher. -#include "GB_subref.h" +#include "extract/GB_subref.h" GrB_Info GB_I_inverse // invert the I list for C=A(I,:) ( diff --git a/GraphBLAS/Source/GB_bitmap_subref.c b/GraphBLAS/Source/extract/GB_bitmap_subref.c similarity index 96% rename from GraphBLAS/Source/GB_bitmap_subref.c rename to GraphBLAS/Source/extract/GB_bitmap_subref.c index 3b47875534..e5801b8b8c 100644 --- a/GraphBLAS/Source/GB_bitmap_subref.c +++ b/GraphBLAS/Source/extract/GB_bitmap_subref.c @@ -12,8 +12,8 @@ // JIT: needed. -#include "GB_subref.h" -#include "GB_subassign_IxJ_slice.h" +#include "extract/GB_subref.h" +#include "assign/GB_subassign_IxJ_slice.h" #define GB_FREE_ALL \ { \ @@ -153,7 +153,7 @@ GrB_Info GB_bitmap_subref // C = A(I,J): either symbolic or numeric Cx [pC] = pA ; \ task_cnvals += ab ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else #endif @@ -173,7 +173,7 @@ GrB_Info GB_bitmap_subref // C = A(I,J): either symbolic or numeric Cb [pC] = ab ; \ task_cnvals += ab ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else @@ -197,7 +197,7 @@ GrB_Info GB_bitmap_subref // C = A(I,J): either symbolic or numeric task_cnvals++ ; \ } \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } @@ -224,7 +224,7 @@ GrB_Info GB_bitmap_subref // C = A(I,J): either symbolic or numeric { \ Cx [pC] = pA ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } else if (C_iso) @@ -252,7 +252,7 @@ GrB_Info GB_bitmap_subref // C = A(I,J): either symbolic or numeric /* Cx [pC] = Ax [pA] */ \ memcpy (Cx +((pC)*asize), Ax +((pA)*asize), asize) ; \ } - #include "GB_bitmap_assign_IxJ_template.c" + #include "assign/factory/GB_bitmap_assign_IxJ_template.c" } } diff --git a/GraphBLAS/Source/GB_extract.c b/GraphBLAS/Source/extract/GB_extract.c similarity index 98% rename from GraphBLAS/Source/GB_extract.c rename to GraphBLAS/Source/extract/GB_extract.c index a649bd22b9..a8b2db12c4 100644 --- a/GraphBLAS/Source/GB_extract.c +++ b/GraphBLAS/Source/extract/GB_extract.c @@ -19,9 +19,9 @@ #define GB_FREE_ALL GrB_Matrix_free (&T) ; -#include "GB_extract.h" -#include "GB_subref.h" -#include "GB_accum_mask.h" +#include "extract/GB_extract.h" +#include "extract/GB_subref.h" +#include "mask/GB_accum_mask.h" GrB_Info GB_extract // C = accum (C, A(I,J)) ( diff --git a/GraphBLAS/Source/GB_extract.h b/GraphBLAS/Source/extract/GB_extract.h similarity index 100% rename from GraphBLAS/Source/GB_extract.h rename to GraphBLAS/Source/extract/GB_extract.h diff --git a/GraphBLAS/Source/GB_subref.c b/GraphBLAS/Source/extract/GB_subref.c similarity index 99% rename from GraphBLAS/Source/GB_subref.c rename to GraphBLAS/Source/extract/GB_subref.c index 46dc4fe751..c96e10bea6 100644 --- a/GraphBLAS/Source/GB_subref.c +++ b/GraphBLAS/Source/extract/GB_subref.c @@ -86,7 +86,7 @@ GB_FREE_WORKSPACE ; \ } -#include "GB_subref.h" +#include "extract/GB_subref.h" GrB_Info GB_subref // C = A(I,J): either symbolic or numeric ( diff --git a/GraphBLAS/Source/GB_subref.h b/GraphBLAS/Source/extract/GB_subref.h similarity index 99% rename from GraphBLAS/Source/GB_subref.h rename to GraphBLAS/Source/extract/GB_subref.h index f2a8d3cae6..04304dec69 100644 --- a/GraphBLAS/Source/GB_subref.h +++ b/GraphBLAS/Source/extract/GB_subref.h @@ -9,7 +9,7 @@ #ifndef GB_SUBREF_H #define GB_SUBREF_H -#include "GB_ij.h" +#include "ij/GB_ij.h" GrB_Info GB_subref // C = A(I,J): either symbolic or numeric ( diff --git a/GraphBLAS/Source/GB_subref_phase0.c b/GraphBLAS/Source/extract/GB_subref_phase0.c similarity index 99% rename from GraphBLAS/Source/GB_subref_phase0.c rename to GraphBLAS/Source/extract/GB_subref_phase0.c index b85999dc8c..825474fd3a 100644 --- a/GraphBLAS/Source/GB_subref_phase0.c +++ b/GraphBLAS/Source/extract/GB_subref_phase0.c @@ -9,7 +9,7 @@ // JIT: not needed. Only one variant possible. -#include "GB_subref.h" +#include "extract/GB_subref.h" #define GB_Ai(p) GBI_UNFLIP (Ai, p, avlen) diff --git a/GraphBLAS/Source/GB_subref_phase2.c b/GraphBLAS/Source/extract/GB_subref_phase2.c similarity index 96% rename from GraphBLAS/Source/GB_subref_phase2.c rename to GraphBLAS/Source/extract/GB_subref_phase2.c index 29c1a9f787..dcc337461a 100644 --- a/GraphBLAS/Source/GB_subref_phase2.c +++ b/GraphBLAS/Source/extract/GB_subref_phase2.c @@ -14,7 +14,7 @@ // Cp is either freed by phase2, or transplanted into C. -#include "GB_subref.h" +#include "extract/GB_subref.h" GrB_Info GB_subref_phase2 // count nnz in each C(:,j) ( @@ -78,13 +78,13 @@ GrB_Info GB_subref_phase2 // count nnz in each C(:,j) #define GB_SYMBOLIC // symbolic extraction must handle zombies const int64_t nzombies = A->nzombies ; - #include "GB_subref_template.c" + #include "extract/factory/GB_subref_template.c" } else { // iso and non-iso numeric extraction do not see zombies ASSERT (!GB_ZOMBIES (A)) ; - #include "GB_subref_template.c" + #include "extract/factory/GB_subref_template.c" } //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Source/GB_subref_phase3.c b/GraphBLAS/Source/extract/GB_subref_phase3.c similarity index 96% rename from GraphBLAS/Source/GB_subref_phase3.c rename to GraphBLAS/Source/extract/GB_subref_phase3.c index 8747efc815..323f917f63 100644 --- a/GraphBLAS/Source/GB_subref_phase3.c +++ b/GraphBLAS/Source/extract/GB_subref_phase3.c @@ -12,9 +12,9 @@ // This function either frees Cp and Ch, or transplants then into C, as C->p // and C->h. Either way, the caller must not free them. -#include "GB_subref.h" -#include "GB_sort.h" -#include "GB_unused.h" +#include "extract/GB_subref.h" +#include "sort/GB_sort.h" +#include "include/GB_unused.h" GrB_Info GB_subref_phase3 // C=A(I,J) ( @@ -139,7 +139,7 @@ GrB_Info GB_subref_phase3 // C=A(I,J) #define GB_CSIZE1 1 #define GB_CSIZE2 (sizeof (int64_t)) #define GB_SYMBOLIC - #include "GB_subref_template.c" + #include "extract/factory/GB_subref_template.c" } else if (C_iso) @@ -154,7 +154,7 @@ GrB_Info GB_subref_phase3 // C=A(I,J) #define GB_COPY_RANGE(pC,pA,len) ; #define GB_COPY_ENTRY(pC,pA) ; #define GB_ISO_SUBREF - #include "GB_subref_template.c" + #include "extract/factory/GB_subref_template.c" } else @@ -178,7 +178,7 @@ GrB_Info GB_subref_phase3 // C=A(I,J) memcpy (Cx + (pC)*asize, Ax + (pA)*asize, asize) ; #define GB_CSIZE1 asize #define GB_CSIZE2 asize - #include "GB_subref_template.c" + #include "extract/factory/GB_subref_template.c" } //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Source/GB_subref_slice.c b/GraphBLAS/Source/extract/GB_subref_slice.c similarity index 99% rename from GraphBLAS/Source/GB_subref_slice.c rename to GraphBLAS/Source/extract/GB_subref_slice.c index f158ff5da8..add4b745c9 100644 --- a/GraphBLAS/Source/GB_subref_slice.c +++ b/GraphBLAS/Source/extract/GB_subref_slice.c @@ -45,7 +45,7 @@ GB_FREE_WORK (&Inext, Inext_size) ; \ } -#include "GB_subref.h" +#include "extract/GB_subref.h" GrB_Info GB_subref_slice // phase 1 of GB_subref ( @@ -264,7 +264,7 @@ GrB_Info GB_subref_slice // phase 1 of GB_subref GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (Coarse, Cwork, Cnvec, ntasks1, false) ; + GB_p_slice (Coarse, Cwork, Cnvec, ntasks1, false) ; //-------------------------------------------------------------------------- // construct all tasks, both coarse and fine diff --git a/GraphBLAS/Source/GrB_Col_extract.c b/GraphBLAS/Source/extract/GrB_Col_extract.c similarity index 98% rename from GraphBLAS/Source/GrB_Col_extract.c rename to GraphBLAS/Source/extract/GrB_Col_extract.c index 377958be53..f7e4f64c6a 100644 --- a/GraphBLAS/Source/GrB_Col_extract.c +++ b/GraphBLAS/Source/extract/GrB_Col_extract.c @@ -12,8 +12,8 @@ // implementation, both are the same as an n-by-1 GrB_Matrix, except with // restrictions on the matrix operations that can be performed on them. -#include "GB_extract.h" -#include "GB_get_mask.h" +#include "extract/GB_extract.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_Col_extract // w = accum (w, A(I,j)) or (A(j,I))' ( diff --git a/GraphBLAS/Source/GrB_Matrix_extract.c b/GraphBLAS/Source/extract/GrB_Matrix_extract.c similarity index 97% rename from GraphBLAS/Source/GrB_Matrix_extract.c rename to GraphBLAS/Source/extract/GrB_Matrix_extract.c index 20f9e30d53..cd087d7ad6 100644 --- a/GraphBLAS/Source/GrB_Matrix_extract.c +++ b/GraphBLAS/Source/extract/GrB_Matrix_extract.c @@ -7,8 +7,8 @@ //------------------------------------------------------------------------------ -#include "GB_extract.h" -#include "GB_get_mask.h" +#include "extract/GB_extract.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_Matrix_extract // C = accum (C, A(I,J)) ( diff --git a/GraphBLAS/Source/GrB_Vector_extract.c b/GraphBLAS/Source/extract/GrB_Vector_extract.c similarity index 97% rename from GraphBLAS/Source/GrB_Vector_extract.c rename to GraphBLAS/Source/extract/GrB_Vector_extract.c index 84eaaaacfa..c13388b019 100644 --- a/GraphBLAS/Source/GrB_Vector_extract.c +++ b/GraphBLAS/Source/extract/GrB_Vector_extract.c @@ -7,8 +7,8 @@ //------------------------------------------------------------------------------ -#include "GB_extract.h" -#include "GB_get_mask.h" +#include "extract/GB_extract.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_Vector_extract // w = accum (w, u(I)) ( diff --git a/GraphBLAS/Source/Factories/GB_subref_template.c b/GraphBLAS/Source/extract/factory/GB_subref_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_subref_template.c rename to GraphBLAS/Source/extract/factory/GB_subref_template.c diff --git a/GraphBLAS/Source/GB_extractTuples.c b/GraphBLAS/Source/extractTuples/GB_extractTuples.c similarity index 99% rename from GraphBLAS/Source/GB_extractTuples.c rename to GraphBLAS/Source/extractTuples/GB_extractTuples.c index c87213badf..78ba80fa65 100644 --- a/GraphBLAS/Source/GB_extractTuples.c +++ b/GraphBLAS/Source/extractTuples/GB_extractTuples.c @@ -21,6 +21,7 @@ // If A is iso and X is not NULL, the iso scalar Ax [0] is expanded into X. #include "GB.h" +#include "extractTuples/GB_extractTuples.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GB_extractTuples.h b/GraphBLAS/Source/extractTuples/GB_extractTuples.h similarity index 100% rename from GraphBLAS/Source/GB_extractTuples.h rename to GraphBLAS/Source/extractTuples/GB_extractTuples.h diff --git a/GraphBLAS/Source/GB_extract_vector_list.c b/GraphBLAS/Source/extractTuples/GB_extract_vector_list.c similarity index 98% rename from GraphBLAS/Source/GB_extract_vector_list.c rename to GraphBLAS/Source/extractTuples/GB_extract_vector_list.c index 944f31aad1..b3306767cf 100644 --- a/GraphBLAS/Source/GB_extract_vector_list.c +++ b/GraphBLAS/Source/extractTuples/GB_extract_vector_list.c @@ -13,7 +13,8 @@ // the output J for GB_extractTuples, and I for GB_transpose when the qsort // method is used. -#include "GB_ek_slice.h" +#include "slice/GB_ek_slice.h" +#include "extractTuples/GB_extractTuples.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GrB_Matrix_extractTuples.c b/GraphBLAS/Source/extractTuples/GrB_Matrix_extractTuples.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_extractTuples.c rename to GraphBLAS/Source/extractTuples/GrB_Matrix_extractTuples.c index 45732a8b4b..160d7b5505 100644 --- a/GraphBLAS/Source/GrB_Matrix_extractTuples.c +++ b/GraphBLAS/Source/extractTuples/GrB_Matrix_extractTuples.c @@ -20,6 +20,7 @@ // If A is iso and X is not NULL, the iso scalar Ax [0] is expanded into X. #include "GB.h" +#include "extractTuples/GB_extractTuples.h" #define GB_EXTRACT(prefix,type,T) \ GrB_Info GB_EVAL3 (prefix, _Matrix_extractTuples_, T) /* [I,J,X] = find (A) */\ diff --git a/GraphBLAS/Source/GrB_Vector_extractTuples.c b/GraphBLAS/Source/extractTuples/GrB_Vector_extractTuples.c similarity index 98% rename from GraphBLAS/Source/GrB_Vector_extractTuples.c rename to GraphBLAS/Source/extractTuples/GrB_Vector_extractTuples.c index 86340b544c..31328c50ed 100644 --- a/GraphBLAS/Source/GrB_Vector_extractTuples.c +++ b/GraphBLAS/Source/extractTuples/GrB_Vector_extractTuples.c @@ -20,6 +20,7 @@ // If v is iso and X is not NULL, the iso scalar vx [0] is expanded into X. #include "GB.h" +#include "extractTuples/GB_extractTuples.h" #define GB_EXTRACT(prefix,type,T) \ GrB_Info GB_EVAL3 (prefix, _Vector_extractTuples_, T) \ diff --git a/GraphBLAS/Source/gateway/GB_cuda_gateway.h b/GraphBLAS/Source/gateway/GB_cuda_gateway.h new file mode 100644 index 0000000000..239b425a5b --- /dev/null +++ b/GraphBLAS/Source/gateway/GB_cuda_gateway.h @@ -0,0 +1,259 @@ +//------------------------------------------------------------------------------ +// GB_cuda_gateway.h: definitions for interface to GB_cuda_* functions +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2019, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// CUDA gateway functions (DRAFT: in progress) + +// This file can be #include'd into any GraphBLAS/Source file that needs to +// call a CUDA gateway function, or use the typedef defined below. It is also +// #include'd in GraphBLAS/CUDA/GB_cuda.h, for use by the CUDA/GB_cuda_*.cu +// gateway functions. + +// If GRAPHBLAS_HAS_CUDA is defined in GraphBLAS/CMakeLists.txt, then GraphBLAS +// can call the C-callable gateway functions defined in GraphBLAS/CUDA/*.cu +// source files. If GRAPHBLAS_HAS_CUDA is not defined, then these functions +// are not called. The typedef always appears, since it is part of the +// GB_Global struct, whether or not CUDA is used. + +#ifndef GB_CUDA_GATEWAY_H +#define GB_CUDA_GATEWAY_H + +#define GB_CUDA_MAX_GPUS 32 + +// The GPU is only used if the work is larger than the GxB_GPU_CHUNK. +// The default value of this parameter is GB_GPU_CHUNK_DEFAULT: +#define GB_GPU_CHUNK_DEFAULT (1024*1024) + +//------------------------------------------------------------------------------ +// GB_cuda_device: properties of each GPU in the system +//------------------------------------------------------------------------------ + +typedef struct +{ + char name [256] ; + size_t total_global_memory ; + int number_of_sms ; + int compute_capability_major ; + int compute_capability_minor ; + bool use_memory_pool ; + size_t pool_size ; + size_t max_pool_size ; + void *memory_resource ; +} +GB_cuda_device ; + +//------------------------------------------------------------------------------ +// GB_ngpus_to_use: determine # of GPUs to use for the next computation +//------------------------------------------------------------------------------ + +static inline int GB_ngpus_to_use +( + double work // total work to do +) +{ + + // gpu_hack: for testing only + // 2: never use GPU + // 1: always use GPU + // 0: default + int gpu_hack = (int) GB_Global_hack_get (2) ; + + // get # of GPUs avaiable + int gpu_count = GB_Global_gpu_count_get ( ) ; + + if (gpu_hack == 2 || gpu_count == 0 || work == 0) + { + // never use the GPU(s) + return (0) ; + } + else if (gpu_hack == 1) + { + // always use all available GPU(s) + // fixme for CUDA: allow 1 to gpu_count to be requested + return (gpu_count) ; + } + else + { + // default: use no more than max_gpus_to_use + double gpu_chunk = 2e6 ; + double max_gpus_to_use = floor (work / gpu_chunk) ; + // but use no more than the # of GPUs available + if (max_gpus_to_use > gpu_count) return (gpu_count) ; + return ((int) max_gpus_to_use) ; + } +} + +//------------------------------------------------------------------------------ +// GB_cuda_* gateway functions +//------------------------------------------------------------------------------ + +GrB_Info GB_cuda_init (void) ; + +bool GB_cuda_get_device_count // true if OK, false if failure +( + int *gpu_count // return # of GPUs in the system +) ; + +bool GB_cuda_warmup (int device) ; + +bool GB_cuda_get_device( int *device) ; + +bool GB_cuda_set_device( int device) ; + +bool GB_cuda_get_device_properties +( + int device, + GB_cuda_device *prop +) ; + +bool GB_cuda_type_branch // return true if the type is OK on GPU +( + const GrB_Type type // type to query +) ; + +bool GB_cuda_reduce_to_scalar_branch // return true to use the GPU +( + const GrB_Monoid monoid, // monoid to do the reduction + const GrB_Matrix A // input matrix +) ; + +GrB_Info GB_cuda_reduce_to_scalar +( + // output: + GB_void *s, // note: statically allocated on CPU stack; if + // the result is in s then V is NULL. + GrB_Matrix *V_handle, // partial result if unable to reduce to scalar; + // NULL if result is in s. + // input: + const GrB_Monoid monoid, + const GrB_Matrix A +) ; + +bool GB_cuda_rowscale_branch +( + const GrB_Matrix D, + const GrB_Matrix B, + const GrB_Semiring semiring, + const bool flipxy +) ; + +GrB_Info GB_cuda_rowscale +( + GrB_Matrix C, + const GrB_Matrix D, + const GrB_Matrix B, + const GrB_Semiring semiring, + const bool flipxy +) ; + +bool GB_cuda_colscale_branch +( + const GrB_Matrix A, + const GrB_Matrix D, + const GrB_Semiring semiring, + const bool flipxy +) ; + +GrB_Info GB_cuda_colscale +( + GrB_Matrix C, + const GrB_Matrix A, + const GrB_Matrix D, + const GrB_Semiring semiring, + const bool flipxy +) ; + +bool GB_cuda_apply_binop_branch +( + const GrB_Type ctype, + const GrB_BinaryOp op, + const GrB_Matrix A +) ; + +bool GB_cuda_apply_unop_branch +( + const GrB_Type ctype, + const GrB_Matrix A, + const GB_Operator op +) ; + +GrB_Info GB_cuda_apply_unop +( + GB_void *Cx, + const GrB_Type ctype, + const GB_Operator op, + const bool flipij, + const GrB_Matrix A, + const GB_void *ythunk +) ; + +GrB_Info GB_cuda_apply_binop +( + GB_void *Cx, + const GrB_Type ctype, + const GrB_BinaryOp op, + const GrB_Matrix A, + const GB_void *scalarx, + const bool bind1st +) ; + +bool GB_cuda_select_branch +( + const GrB_Matrix A, + const GrB_IndexUnaryOp op +) ; + +GrB_Info GB_cuda_select_bitmap +( + int8_t *Cb, + int64_t *cnvals, + const bool C_iso, + const GrB_Matrix A, + const bool flipij, + const GB_void *ythunk, + const GrB_IndexUnaryOp op +) ; + +GrB_Info GB_cuda_select_sparse +( + GrB_Matrix C, + const bool C_iso, + const GrB_IndexUnaryOp op, + const bool flipij, + const GrB_Matrix A, + const GB_void *ythunk +) ; + +bool GB_cuda_type_branch // return true if the type is OK on GPU +( + const GrB_Type type // type to query +) ; + +GrB_Info GB_cuda_AxB_dot3 // C = A'*B using dot product method +( + GrB_Matrix C, // output matrix, static header + const GrB_Matrix M, // mask matrix + const bool Mask_struct, // if true, use the only structure of M + const GrB_Matrix A, // input matrix + const GrB_Matrix B, // input matrix + const GrB_Semiring semiring, // semiring that defines C=A*B + const bool flipxy // if true, do z=fmult(b,a) vs fmult(a,b) +) ; + +bool GB_cuda_AxB_dot3_branch +( + const GrB_Matrix M, // mask matrix + const bool Mask_struct, // if true, use the only structure of M + const GrB_Matrix A, // input matrix + const GrB_Matrix B, // input matrix + const GrB_Semiring semiring, // semiring that defines C=A*B + const bool flipxy // if true, do z=fmult(b,a) vs fmult(a,b) +); + +#endif + diff --git a/GraphBLAS/Source/GB_generic.h b/GraphBLAS/Source/generic/GB_generic.h similarity index 100% rename from GraphBLAS/Source/GB_generic.h rename to GraphBLAS/Source/generic/GB_generic.h diff --git a/GraphBLAS/Source/GB_Descriptor_get.c b/GraphBLAS/Source/get_set/GB_Descriptor_get.c similarity index 100% rename from GraphBLAS/Source/GB_Descriptor_get.c rename to GraphBLAS/Source/get_set/GB_Descriptor_get.c diff --git a/GraphBLAS/Source/GB_Descriptor_get.h b/GraphBLAS/Source/get_set/GB_Descriptor_get.h similarity index 100% rename from GraphBLAS/Source/GB_Descriptor_get.h rename to GraphBLAS/Source/get_set/GB_Descriptor_get.h diff --git a/GraphBLAS/Source/GB_code_name_get.c b/GraphBLAS/Source/get_set/GB_code_name_get.c similarity index 97% rename from GraphBLAS/Source/GB_code_name_get.c rename to GraphBLAS/Source/get_set/GB_code_name_get.c index 1d5c3af53c..106aaaf6f3 100644 --- a/GraphBLAS/Source/GB_code_name_get.c +++ b/GraphBLAS/Source/get_set/GB_code_name_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" const char *GB_code_name_get (GB_Type_code code, char *user_name) { diff --git a/GraphBLAS/Source/GB_get_set.h b/GraphBLAS/Source/get_set/GB_get_set.h similarity index 100% rename from GraphBLAS/Source/GB_get_set.h rename to GraphBLAS/Source/get_set/GB_get_set.h diff --git a/GraphBLAS/Source/GB_matvec_enum_get.c b/GraphBLAS/Source/get_set/GB_matvec_enum_get.c similarity index 90% rename from GraphBLAS/Source/GB_matvec_enum_get.c rename to GraphBLAS/Source/get_set/GB_matvec_enum_get.c index 69156f2ca3..2e9470e77e 100644 --- a/GraphBLAS/Source/GB_matvec_enum_get.c +++ b/GraphBLAS/Source/get_set/GB_matvec_enum_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_matvec_enum_get (GrB_Matrix A, int32_t *value, int field) { @@ -33,6 +33,11 @@ GrB_Info GB_matvec_enum_get (GrB_Matrix A, int32_t *value, int field) (*value) = GB_sparsity (A) ; break ; + case GxB_HYPER_HASH : + + (*value) = !(A->no_hyper_hash) ; + break ; + case GxB_FORMAT : (*value) = (A->is_csc) ? GxB_BY_COL : GxB_BY_ROW ; diff --git a/GraphBLAS/Source/GB_matvec_name_get.c b/GraphBLAS/Source/get_set/GB_matvec_name_get.c similarity index 97% rename from GraphBLAS/Source/GB_matvec_name_get.c rename to GraphBLAS/Source/get_set/GB_matvec_name_get.c index 43aaae300e..aba111807d 100644 --- a/GraphBLAS/Source/GB_matvec_name_get.c +++ b/GraphBLAS/Source/get_set/GB_matvec_name_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_matvec_name_get (GrB_Matrix A, char *name, int field) { diff --git a/GraphBLAS/Source/GB_matvec_name_set.c b/GraphBLAS/Source/get_set/GB_matvec_name_set.c similarity index 95% rename from GraphBLAS/Source/GB_matvec_name_set.c rename to GraphBLAS/Source/get_set/GB_matvec_name_set.c index f0747f4075..4a89bef29b 100644 --- a/GraphBLAS/Source/GB_matvec_name_set.c +++ b/GraphBLAS/Source/get_set/GB_matvec_name_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_matvec_name_set ( diff --git a/GraphBLAS/Source/GB_matvec_name_size_get.c b/GraphBLAS/Source/get_set/GB_matvec_name_size_get.c similarity index 96% rename from GraphBLAS/Source/GB_matvec_name_size_get.c rename to GraphBLAS/Source/get_set/GB_matvec_name_size_get.c index 85fcd12ff7..e2febc941c 100644 --- a/GraphBLAS/Source/GB_matvec_name_size_get.c +++ b/GraphBLAS/Source/get_set/GB_matvec_name_size_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_matvec_name_size_get (GrB_Matrix A, size_t *value, int field) { diff --git a/GraphBLAS/Source/GB_matvec_set.c b/GraphBLAS/Source/get_set/GB_matvec_set.c similarity index 93% rename from GraphBLAS/Source/GB_matvec_set.c rename to GraphBLAS/Source/get_set/GB_matvec_set.c index 2d6139d82b..5aac944c1b 100644 --- a/GraphBLAS/Source/GB_matvec_set.c +++ b/GraphBLAS/Source/get_set/GB_matvec_set.c @@ -7,8 +7,8 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" -#include "GB_transpose.h" +#include "get_set/GB_get_set.h" +#include "transpose/GB_transpose.h" #define GB_FREE_ALL ; GrB_Info GB_matvec_set @@ -39,6 +39,11 @@ GrB_Info GB_matvec_set A->hyper_switch = (float) dvalue ; break ; + case GxB_HYPER_HASH : + + A->no_hyper_hash = !((bool) ivalue) ; + break ; + case GxB_BITMAP_SWITCH : A->bitmap_switch = (float) dvalue ; diff --git a/GraphBLAS/Source/GB_monoid_get.c b/GraphBLAS/Source/get_set/GB_monoid_get.c similarity index 98% rename from GraphBLAS/Source/GB_monoid_get.c rename to GraphBLAS/Source/get_set/GB_monoid_get.c index 00fbe8e15f..876fe293e3 100644 --- a/GraphBLAS/Source/GB_monoid_get.c +++ b/GraphBLAS/Source/get_set/GB_monoid_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_monoid_get ( diff --git a/GraphBLAS/Source/GB_monoid_name_get.c b/GraphBLAS/Source/get_set/GB_monoid_name_get.c similarity index 99% rename from GraphBLAS/Source/GB_monoid_name_get.c rename to GraphBLAS/Source/get_set/GB_monoid_name_get.c index 222bab4c6c..7201e4e3bb 100644 --- a/GraphBLAS/Source/GB_monoid_name_get.c +++ b/GraphBLAS/Source/get_set/GB_monoid_name_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" const char *GB_monoid_name_get (GrB_Monoid monoid) { diff --git a/GraphBLAS/Source/GB_op_enum_get.c b/GraphBLAS/Source/get_set/GB_op_enum_get.c similarity index 97% rename from GraphBLAS/Source/GB_op_enum_get.c rename to GraphBLAS/Source/get_set/GB_op_enum_get.c index f2557fec26..978e96832c 100644 --- a/GraphBLAS/Source/GB_op_enum_get.c +++ b/GraphBLAS/Source/get_set/GB_op_enum_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_op_enum_get ( diff --git a/GraphBLAS/Source/GB_op_name_get.c b/GraphBLAS/Source/get_set/GB_op_name_get.c similarity index 99% rename from GraphBLAS/Source/GB_op_name_get.c rename to GraphBLAS/Source/get_set/GB_op_name_get.c index e7a5af1132..3fd79eca29 100644 --- a/GraphBLAS/Source/GB_op_name_get.c +++ b/GraphBLAS/Source/get_set/GB_op_name_get.c @@ -12,7 +12,7 @@ // GB_binop_second, and do not exist outside GraphBLAS. The user application // cannot pass them to GrB_get. -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" const char *GB_op_name_get (GB_Operator op) { diff --git a/GraphBLAS/Source/GB_op_or_type_string_set.c b/GraphBLAS/Source/get_set/GB_op_or_type_string_set.c similarity index 98% rename from GraphBLAS/Source/GB_op_or_type_string_set.c rename to GraphBLAS/Source/get_set/GB_op_or_type_string_set.c index 2e44f32f0a..c06de4664f 100644 --- a/GraphBLAS/Source/GB_op_or_type_string_set.c +++ b/GraphBLAS/Source/get_set/GB_op_or_type_string_set.c @@ -7,9 +7,9 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" #include -#include "GB_jitifyer.h" +#include "jitifyer/GB_jitifyer.h" GrB_Info GB_op_or_type_string_set ( diff --git a/GraphBLAS/Source/GB_op_scalar_get.c b/GraphBLAS/Source/get_set/GB_op_scalar_get.c similarity index 96% rename from GraphBLAS/Source/GB_op_scalar_get.c rename to GraphBLAS/Source/get_set/GB_op_scalar_get.c index 74b9a8c9c9..02f1d00855 100644 --- a/GraphBLAS/Source/GB_op_scalar_get.c +++ b/GraphBLAS/Source/get_set/GB_op_scalar_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_op_scalar_get ( diff --git a/GraphBLAS/Source/GB_op_size_get.c b/GraphBLAS/Source/get_set/GB_op_size_get.c similarity index 98% rename from GraphBLAS/Source/GB_op_size_get.c rename to GraphBLAS/Source/get_set/GB_op_size_get.c index a560de918d..b9f14c165f 100644 --- a/GraphBLAS/Source/GB_op_size_get.c +++ b/GraphBLAS/Source/get_set/GB_op_size_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_op_size_get ( diff --git a/GraphBLAS/Source/GB_op_string_get.c b/GraphBLAS/Source/get_set/GB_op_string_get.c similarity index 98% rename from GraphBLAS/Source/GB_op_string_get.c rename to GraphBLAS/Source/get_set/GB_op_string_get.c index 6353c8afed..548e196557 100644 --- a/GraphBLAS/Source/GB_op_string_get.c +++ b/GraphBLAS/Source/get_set/GB_op_string_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_op_string_get ( diff --git a/GraphBLAS/Source/GB_op_string_set.c b/GraphBLAS/Source/get_set/GB_op_string_set.c similarity index 97% rename from GraphBLAS/Source/GB_op_string_set.c rename to GraphBLAS/Source/get_set/GB_op_string_set.c index 6f49a5fbc5..a15c875a0b 100644 --- a/GraphBLAS/Source/GB_op_string_set.c +++ b/GraphBLAS/Source/get_set/GB_op_string_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_op_string_set ( diff --git a/GraphBLAS/Source/GB_semiring_name_get.c b/GraphBLAS/Source/get_set/GB_semiring_name_get.c similarity index 99% rename from GraphBLAS/Source/GB_semiring_name_get.c rename to GraphBLAS/Source/get_set/GB_semiring_name_get.c index 54a6d24843..d816baf228 100644 --- a/GraphBLAS/Source/GB_semiring_name_get.c +++ b/GraphBLAS/Source/get_set/GB_semiring_name_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" const char *GB_semiring_name_get (GrB_Semiring semiring) { diff --git a/GraphBLAS/Source/GB_type_code_get.c b/GraphBLAS/Source/get_set/GB_type_code_get.c similarity index 97% rename from GraphBLAS/Source/GB_type_code_get.c rename to GraphBLAS/Source/get_set/GB_type_code_get.c index b0c3609555..29386d1a44 100644 --- a/GraphBLAS/Source/GB_type_code_get.c +++ b/GraphBLAS/Source/get_set/GB_type_code_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Type_Code GB_type_code_get // return the GrB_Type_Code for the code ( diff --git a/GraphBLAS/Source/GB_type_name_get.c b/GraphBLAS/Source/get_set/GB_type_name_get.c similarity index 94% rename from GraphBLAS/Source/GB_type_name_get.c rename to GraphBLAS/Source/get_set/GB_type_name_get.c index 5ab8f2d278..7d70f29e77 100644 --- a/GraphBLAS/Source/GB_type_name_get.c +++ b/GraphBLAS/Source/get_set/GB_type_name_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" const char *GB_type_name_get (GrB_Type type) { diff --git a/GraphBLAS/Source/GB_user_name_set.c b/GraphBLAS/Source/get_set/GB_user_name_set.c similarity index 98% rename from GraphBLAS/Source/GB_user_name_set.c rename to GraphBLAS/Source/get_set/GB_user_name_set.c index 7b9bed82be..5626178303 100644 --- a/GraphBLAS/Source/GB_user_name_set.c +++ b/GraphBLAS/Source/get_set/GB_user_name_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" GrB_Info GB_user_name_set ( diff --git a/GraphBLAS/Source/GrB_BinaryOp_get.c b/GraphBLAS/Source/get_set/GrB_BinaryOp_get.c similarity index 99% rename from GraphBLAS/Source/GrB_BinaryOp_get.c rename to GraphBLAS/Source/get_set/GrB_BinaryOp_get.c index 39e0ba7ed0..7dc791946d 100644 --- a/GraphBLAS/Source/GrB_BinaryOp_get.c +++ b/GraphBLAS/Source/get_set/GrB_BinaryOp_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_BinaryOp_get_Scalar diff --git a/GraphBLAS/Source/GrB_BinaryOp_set.c b/GraphBLAS/Source/get_set/GrB_BinaryOp_set.c similarity index 98% rename from GraphBLAS/Source/GrB_BinaryOp_set.c rename to GraphBLAS/Source/get_set/GrB_BinaryOp_set.c index 9a72236c4d..cf0d7efed0 100644 --- a/GraphBLAS/Source/GrB_BinaryOp_set.c +++ b/GraphBLAS/Source/get_set/GrB_BinaryOp_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_BinaryOp_set_Scalar diff --git a/GraphBLAS/Source/GrB_Descriptor_get2.c b/GraphBLAS/Source/get_set/GrB_Descriptor_get2.c similarity index 99% rename from GraphBLAS/Source/GrB_Descriptor_get2.c rename to GraphBLAS/Source/get_set/GrB_Descriptor_get2.c index 8f9340af52..ac239e0632 100644 --- a/GraphBLAS/Source/GrB_Descriptor_get2.c +++ b/GraphBLAS/Source/get_set/GrB_Descriptor_get2.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ diff --git a/GraphBLAS/Source/GrB_Descriptor_set.c b/GraphBLAS/Source/get_set/GrB_Descriptor_set.c similarity index 100% rename from GraphBLAS/Source/GrB_Descriptor_set.c rename to GraphBLAS/Source/get_set/GrB_Descriptor_set.c diff --git a/GraphBLAS/Source/GrB_Descriptor_set2.c b/GraphBLAS/Source/get_set/GrB_Descriptor_set2.c similarity index 99% rename from GraphBLAS/Source/GrB_Descriptor_set2.c rename to GraphBLAS/Source/get_set/GrB_Descriptor_set2.c index 0fa1a4b5f3..e84de0d280 100644 --- a/GraphBLAS/Source/GrB_Descriptor_set2.c +++ b/GraphBLAS/Source/get_set/GrB_Descriptor_set2.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GB_desc_set diff --git a/GraphBLAS/Source/get_set/GrB_Global_get.c b/GraphBLAS/Source/get_set/GrB_Global_get.c new file mode 100644 index 0000000000..75ac49d15c --- /dev/null +++ b/GraphBLAS/Source/get_set/GrB_Global_get.c @@ -0,0 +1,579 @@ +//------------------------------------------------------------------------------ +// GrB_Global_get_*: get a global option +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "get_set/GB_get_set.h" +#include "jitifyer/GB_jitifyer.h" + +//------------------------------------------------------------------------------ +// GrB_Global: an object defining the global state +//------------------------------------------------------------------------------ + +struct GB_Global_opaque GB_OPAQUE (WORLD_OBJECT) = +{ + GB_MAGIC, // magic: initialized + 0, // header_size: statically allocated +} ; + +const GrB_Global GrB_GLOBAL = & GB_OPAQUE (WORLD_OBJECT) ; + +//------------------------------------------------------------------------------ +// GB_global_enum_get: get an enum value from the global state +//------------------------------------------------------------------------------ + +static GrB_Info GB_global_enum_get (int32_t *value, int field) +{ + + switch (field) + { + + case GrB_LIBRARY_VER_MAJOR : + + (*value) = GxB_IMPLEMENTATION_MAJOR ; + break ; + + case GrB_LIBRARY_VER_MINOR : + + (*value) = GxB_IMPLEMENTATION_MINOR ; + break ; + + case GrB_LIBRARY_VER_PATCH : + + (*value) = GxB_IMPLEMENTATION_SUB ; + break ; + + case GrB_API_VER_MAJOR : + + (*value) = GxB_SPEC_MAJOR ; + break ; + + case GrB_API_VER_MINOR : + + (*value) = GxB_SPEC_MINOR ; + break ; + + case GrB_API_VER_PATCH : + + (*value) = GxB_SPEC_SUB ; + break ; + + case GrB_BLOCKING_MODE : + + // return just the GrB modes + (*value) = (int) GB_Global_mode_get ( ) ; + if ((*value) == GxB_NONBLOCKING_GPU) (*value) = GrB_NONBLOCKING ; + if ((*value) == GxB_BLOCKING_GPU) (*value) = GrB_BLOCKING ; + break ; + + case GxB_MODE : + + // return all 4 possible modes (GrB and GxB) + (*value) = (int) GB_Global_mode_get ( ) ; + break ; + + case GrB_STORAGE_ORIENTATION_HINT : + + (*value) = (int) (GB_Global_is_csc_get ( )) ? + GrB_COLMAJOR : GrB_ROWMAJOR ; + break ; + + case GxB_FORMAT : + + (*value) = (int) (GB_Global_is_csc_get ( )) ? + GxB_BY_COL : GxB_BY_ROW ; + break ; + + case GxB_GLOBAL_NTHREADS : // same as GxB_NTHREADS + + (*value) = (int) GB_Context_nthreads_max_get (NULL) ; + break ; + + case GxB_GLOBAL_GPU_ID : // same as GxB_GPU_ID + + (*value) = (int) GB_Context_gpu_id_get (NULL) ; + break ; + + case GxB_BURBLE : + + (*value) = (int) GB_Global_burble_get ( ) ; + break ; + + case GxB_LIBRARY_OPENMP : + + #ifdef _OPENMP + (*value) = (int) true ; + #else + (*value) = (int) false ; + #endif + break ; + + case GxB_PRINT_1BASED : + + (*value) = (int) GB_Global_print_one_based_get ( ) ; + break ; + + case GxB_JIT_C_CONTROL : + + (*value) = (int) GB_jitifyer_get_control ( ) ; + break ; + + case GxB_JIT_USE_CMAKE : + + (*value) = (int) GB_jitifyer_get_use_cmake ( ) ; + break ; + + default : + + return (GrB_INVALID_VALUE) ; + } + + #pragma omp flush + return (GrB_SUCCESS) ; +} + +//------------------------------------------------------------------------------ +// GrB_Global_get_Scalar +//------------------------------------------------------------------------------ + +GrB_Info GrB_Global_get_Scalar +( + GrB_Global g, + GrB_Scalar value, + GrB_Field field +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GB_WHERE1 ("GrB_Global_get_Scalar (g, value, field)") ; + GB_RETURN_IF_NULL_OR_FAULTY (g) ; + GB_RETURN_IF_NULL_OR_FAULTY (value) ; + + //-------------------------------------------------------------------------- + // get the field + //-------------------------------------------------------------------------- + + GrB_Info info = GrB_NO_VALUE ; + + #pragma omp critical (GB_global_get_set) + { + int32_t i ; + info = GB_global_enum_get (&i, field) ; + if (info == GrB_SUCCESS) + { + // field specifies an int: assign it to the scalar + info = GB_setElement ((GrB_Matrix) value, NULL, &i, 0, 0, + GB_INT32_code, Werk) ; + } + else + { + double x ; + int64_t i64 ; + switch ((int) field) + { + + case GxB_HYPER_SWITCH : + + x = (double) GB_Global_hyper_switch_get ( ) ; + info = GB_setElement ((GrB_Matrix) value, NULL, &x, 0, 0, + GB_FP64_code, Werk) ; + + break ; + + case GxB_GLOBAL_CHUNK : // same as GxB_CHUNK + + x = GB_Context_chunk_get (NULL) ; + info = GB_setElement ((GrB_Matrix) value, NULL, &x, 0, 0, + GB_FP64_code, Werk) ; + break ; + + case GxB_HYPER_HASH : + + i64 = GB_Global_hyper_hash_get ( ) ; + info = GB_setElement ((GrB_Matrix) value, NULL, &i64, 0, 0, + GB_INT64_code, Werk) ; + break ; + + default : + + info = GrB_INVALID_VALUE ; + } + } + } + + return (info) ; +} + +//------------------------------------------------------------------------------ +// GB_global_string_get: get a string from the global state +//------------------------------------------------------------------------------ + +static GrB_Info GB_global_string_get (const char **value, int field) +{ + + switch ((int) field) + { + + case GrB_NAME : + case GxB_LIBRARY_NAME : + + (*value) = GxB_IMPLEMENTATION_NAME ; + break ; + + case GxB_LIBRARY_DATE : + + (*value) = GxB_IMPLEMENTATION_DATE ; + break ; + + case GxB_LIBRARY_ABOUT : + + (*value) = GxB_IMPLEMENTATION_ABOUT ; + break ; + + case GxB_LIBRARY_LICENSE : + + (*value) = GxB_IMPLEMENTATION_LICENSE ; + break ; + + case GxB_LIBRARY_COMPILE_DATE : + + (*value) = __DATE__ ; + break ; + + case GxB_LIBRARY_COMPILE_TIME : + + (*value) = __TIME__ ; + break ; + + case GxB_LIBRARY_URL : + + (*value) = "http://faculty.cse.tamu.edu/davis/GraphBLAS" ; + break ; + + case GxB_API_DATE : + + (*value) = GxB_SPEC_DATE ; + break ; + + case GxB_API_ABOUT : + + (*value) = GxB_SPEC_ABOUT ; + break ; + + case GxB_API_URL : + + (*value) = "http://graphblas.org" ; + break ; + + case GxB_COMPILER_NAME : + + (*value) = GB_COMPILER_NAME ; + break ; + + //---------------------------------------------------------------------- + // JIT configuration: + //---------------------------------------------------------------------- + + case GxB_JIT_C_COMPILER_NAME : + + (*value) = GB_jitifyer_get_C_compiler ( ) ; + break ; + + case GxB_JIT_C_COMPILER_FLAGS : + + (*value) = GB_jitifyer_get_C_flags ( ) ; + break ; + + case GxB_JIT_C_LINKER_FLAGS : + + (*value) = GB_jitifyer_get_C_link_flags ( ) ; + break ; + + case GxB_JIT_C_LIBRARIES : + + (*value) = GB_jitifyer_get_C_libraries ( ) ; + break ; + + case GxB_JIT_C_CMAKE_LIBS : + + (*value) = GB_jitifyer_get_C_cmake_libs ( ) ; + break ; + + case GxB_JIT_C_PREFACE : + + (*value) = GB_jitifyer_get_C_preface ( ) ; + break ; + + case GxB_JIT_CUDA_PREFACE : + + (*value) = GB_jitifyer_get_CUDA_preface ( ) ; + break ; + + case GxB_JIT_ERROR_LOG : + + (*value) = GB_jitifyer_get_error_log ( ) ; + break ; + + case GxB_JIT_CACHE_PATH : + + (*value) = GB_jitifyer_get_cache_path ( ) ; + break ; + + default : + + return (GrB_INVALID_VALUE) ; + } + + return (GrB_SUCCESS) ; +} + +//------------------------------------------------------------------------------ +// GrB_Global_get_String +//------------------------------------------------------------------------------ + +GrB_Info GrB_Global_get_String +( + GrB_Global g, + char * value, + GrB_Field field +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GB_WHERE1 ("GrB_Global_get_String (g, value, field)") ; + GB_RETURN_IF_NULL_OR_FAULTY (g) ; + GB_RETURN_IF_NULL (value) ; + (*value) = '\0' ; + + //-------------------------------------------------------------------------- + // get the field + //-------------------------------------------------------------------------- + + GrB_Info info = GrB_NO_VALUE ; + + #pragma omp critical (GB_global_get_set) + { + const char *s ; + info = GB_global_string_get (&s, field) ; + if (info == GrB_SUCCESS) + { + strcpy (value, s) ; + } + } + + #pragma omp flush + return (info) ; +} + +//------------------------------------------------------------------------------ +// GrB_Global_get_INT32 +//------------------------------------------------------------------------------ + +GrB_Info GrB_Global_get_INT32 +( + GrB_Global g, + int32_t * value, + GrB_Field field +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GB_WHERE1 ("GrB_Global_get_INT32 (g, value, field)") ; + GB_RETURN_IF_NULL_OR_FAULTY (g) ; + GB_RETURN_IF_NULL (value) ; + + //-------------------------------------------------------------------------- + // get the field + //-------------------------------------------------------------------------- + + GrB_Info info = GrB_NO_VALUE ; + + #pragma omp critical (GB_global_get_set) + { + info = GB_global_enum_get (value, field) ; + } + + return (info) ; +} + +//------------------------------------------------------------------------------ +// GrB_Global_get_SIZE +//------------------------------------------------------------------------------ + +GrB_Info GrB_Global_get_SIZE +( + GrB_Global g, + size_t * value, + GrB_Field field +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GB_WHERE1 ("GrB_Global_get_SIZE (g, value, field)") ; + GB_RETURN_IF_NULL_OR_FAULTY (g) ; + GB_RETURN_IF_NULL (value) ; + (*value) = 0 ; + + //-------------------------------------------------------------------------- + // get the size of the field + //-------------------------------------------------------------------------- + + const char *s ; + GrB_Info info = GrB_NO_VALUE ; + + #pragma omp critical (GB_global_get_set) + { + info = GB_global_string_get (&s, field) ; + if (info == GrB_SUCCESS) + { + (*value) = GB_STRLEN (s) + 1 ; + } + else + { + switch ((int) field) + { + + case GxB_BITMAP_SWITCH : + + (*value) = sizeof (double) * GxB_NBITMAP_SWITCH ; + info = GrB_SUCCESS ; + break ; + + case GxB_COMPILER_VERSION : + + (*value) = sizeof (int32_t) * 3 ; + info = GrB_SUCCESS ; + break ; + + case GxB_MALLOC_FUNCTION : + case GxB_CALLOC_FUNCTION : + case GxB_REALLOC_FUNCTION : + case GxB_FREE_FUNCTION : + + (*value) = sizeof (void *) ; + info = GrB_SUCCESS ; + break ; + + default : + + info = GrB_INVALID_VALUE ; + } + } + } + + #pragma omp flush + return (info) ; +} + +//------------------------------------------------------------------------------ +// GrB_Global_get_VOID +//------------------------------------------------------------------------------ + +GrB_Info GrB_Global_get_VOID +( + GrB_Global g, + void * value, + GrB_Field field +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GB_WHERE1 ("GrB_Global_get_VOID (g, value, field)") ; + GB_RETURN_IF_NULL_OR_FAULTY (g) ; + GB_RETURN_IF_NULL (value) ; + + //-------------------------------------------------------------------------- + // get the field + //-------------------------------------------------------------------------- + + GrB_Info info = GrB_NO_VALUE ; + + #pragma omp critical (GB_global_get_set) + { + switch ((int) field) + { + + case GxB_BITMAP_SWITCH : + + { + double *dvalue = (double *) value ; + for (int k = 0 ; k < GxB_NBITMAP_SWITCH ; k++) + { + dvalue [k] = (double) GB_Global_bitmap_switch_get (k) ; + } + } + info = GrB_SUCCESS ; + break ; + + case GxB_COMPILER_VERSION : + + { + int32_t *ivalue = (int32_t *) value ; + ivalue [0] = GB_COMPILER_MAJOR ; + ivalue [1] = GB_COMPILER_MINOR ; + ivalue [2] = GB_COMPILER_SUB ; + } + info = GrB_SUCCESS ; + break ; + + case GxB_MALLOC_FUNCTION : + { + void **func = (void **) value ; + (*func) = GB_Global_malloc_function_get ( ) ; + } + info = GrB_SUCCESS ; + break ; + + case GxB_CALLOC_FUNCTION : + { + void **func = (void **) value ; + (*func) = GB_Global_calloc_function_get ( ) ; + } + info = GrB_SUCCESS ; + break ; + + case GxB_REALLOC_FUNCTION : + { + void **func = (void **) value ; + (*func) = GB_Global_realloc_function_get ( ) ; + } + info = GrB_SUCCESS ; + break ; + + case GxB_FREE_FUNCTION : + { + void **func = (void **) value ; + (*func) = GB_Global_free_function_get ( ) ; + } + info = GrB_SUCCESS ; + break ; + + default : + + info = GrB_INVALID_VALUE ; + } + } + + #pragma omp flush + return (info) ; +} + diff --git a/GraphBLAS/Source/get_set/GrB_Global_set.c b/GraphBLAS/Source/get_set/GrB_Global_set.c new file mode 100644 index 0000000000..21c3806db0 --- /dev/null +++ b/GraphBLAS/Source/get_set/GrB_Global_set.c @@ -0,0 +1,366 @@ +//------------------------------------------------------------------------------ +// GrB_Global_set_*: set a global option +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "get_set/GB_get_set.h" +#include "jitifyer/GB_jitifyer.h" + +//------------------------------------------------------------------------------ +// GB_global_enum_set: get an enum value from the global state +//------------------------------------------------------------------------------ + +static GrB_Info GB_global_enum_set (int32_t value, int field) +{ + + switch (field) + { + + case GrB_STORAGE_ORIENTATION_HINT : + + switch (value) + { + case GrB_ROWMAJOR : value = GxB_BY_ROW ; break ; + case GrB_COLMAJOR : value = GxB_BY_COL ; break ; + case GrB_BOTH : value = GxB_BY_ROW ; break ; + case GrB_UNKNOWN : value = GxB_BY_ROW ; break ; + default : return (GrB_INVALID_VALUE) ; + } + // fall through to the GxB_FORMAT case + + case GxB_FORMAT : + + if (! (value == GxB_BY_ROW || value == GxB_BY_COL)) + { + return (GrB_INVALID_VALUE) ; + } + GB_Global_is_csc_set (value != (int) GxB_BY_ROW) ; + break ; + + case GxB_GLOBAL_NTHREADS : // same as GxB_NTHREADS + + GB_Context_nthreads_max_set (NULL, value) ; + break ; + + case GxB_GLOBAL_GPU_ID : // same as GxB_GPU_ID + + GB_Context_gpu_id_set (NULL, value) ; + break ; + + case GxB_BURBLE : + + GB_Global_burble_set ((bool) value) ; + break ; + + case GxB_PRINT_1BASED : + + GB_Global_print_one_based_set ((bool) value) ; + break ; + + case GxB_JIT_USE_CMAKE : + + GB_jitifyer_set_use_cmake ((bool) value) ; + break ; + + case GxB_JIT_C_CONTROL : + + GB_jitifyer_set_control (value) ; + break ; + + default : + + return (GrB_INVALID_VALUE) ; + } + + return (GrB_SUCCESS) ; +} + +//------------------------------------------------------------------------------ +// GrB_Global_set_Scalar +//------------------------------------------------------------------------------ + +GrB_Info GrB_Global_set_Scalar +( + GrB_Global g, + GrB_Scalar value, + GrB_Field field +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GB_WHERE1 ("GrB_Global_set_Scalar (g, value, field)") ; + GB_RETURN_IF_NULL_OR_FAULTY (g) ; + GB_RETURN_IF_NULL_OR_FAULTY (value) ; + + //-------------------------------------------------------------------------- + // set the field + //-------------------------------------------------------------------------- + + GrB_Info info = GrB_NO_VALUE ; + + #pragma omp critical (GB_global_get_set) + { + double dvalue = 0 ; + int32_t ivalue = 0 ; + int64_t i64value = 0 ; + switch ((int) field) + { + + case GxB_HYPER_SWITCH : + + info = GrB_Scalar_extractElement_FP64 (&dvalue, value) ; + if (info == GrB_SUCCESS) + { + GB_Global_hyper_switch_set ((float) dvalue) ; + } + break ; + + case GxB_GLOBAL_CHUNK : // same as GxB_CHUNK + + info = GrB_Scalar_extractElement_FP64 (&dvalue, value) ; + if (info == GrB_SUCCESS) + { + GB_Context_chunk_set (NULL, dvalue) ; + } + break ; + + case GxB_HYPER_HASH : + + info = GrB_Scalar_extractElement_INT64 (&i64value, value) ; + if (info == GrB_SUCCESS) + { + GB_Global_hyper_hash_set (i64value) ; + } + break ; + + default : + + info = GrB_Scalar_extractElement_INT32 (&ivalue, value) ; + if (info == GrB_SUCCESS) + { + info = GB_global_enum_set (ivalue, field) ; + } + break ; + } + } + + return ((info == GrB_NO_VALUE) ? GrB_EMPTY_OBJECT : info) ; +} + +//------------------------------------------------------------------------------ +// GrB_Global_set_String +//------------------------------------------------------------------------------ + +GrB_Info GrB_Global_set_String +( + GrB_Global g, + char * value, + GrB_Field field +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GB_WHERE1 ("GrB_Global_set_String (g, value, field)") ; + GB_RETURN_IF_NULL_OR_FAULTY (g) ; + GB_RETURN_IF_NULL (value) ; + + //-------------------------------------------------------------------------- + // get the field + //-------------------------------------------------------------------------- + + GrB_Info info = GrB_NO_VALUE ; + + #pragma omp critical (GB_global_get_set) + { + switch ((int) field) + { + + case GxB_JIT_C_COMPILER_NAME : + + info = GB_jitifyer_set_C_compiler (value) ; + break ; + + case GxB_JIT_C_COMPILER_FLAGS : + + info = GB_jitifyer_set_C_flags (value) ; + break ; + + case GxB_JIT_C_LINKER_FLAGS : + + info = GB_jitifyer_set_C_link_flags (value) ; + break ; + + case GxB_JIT_C_LIBRARIES : + + info = GB_jitifyer_set_C_libraries (value) ; + break ; + + case GxB_JIT_C_CMAKE_LIBS : + + info = GB_jitifyer_set_C_cmake_libs (value) ; + break ; + + case GxB_JIT_C_PREFACE : + + info = GB_jitifyer_set_C_preface (value) ; + break ; + + case GxB_JIT_CUDA_PREFACE : + + info = GB_jitifyer_set_CUDA_preface (value) ; + break ; + + case GxB_JIT_ERROR_LOG : + + info = GB_jitifyer_set_error_log (value) ; + break ; + + case GxB_JIT_CACHE_PATH : + + info = GB_jitifyer_set_cache_path (value) ; + break ; + + default : + + info = GrB_INVALID_VALUE ; + break ; + } + } + + return (info) ; +} + +//------------------------------------------------------------------------------ +// GrB_Global_set_INT32 +//------------------------------------------------------------------------------ + +GrB_Info GrB_Global_set_INT32 +( + GrB_Global g, + int32_t value, + GrB_Field field +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GB_WHERE1 ("GrB_Global_set_INT32 (g, value, field)") ; + GB_RETURN_IF_NULL_OR_FAULTY (g) ; + + //-------------------------------------------------------------------------- + // set the field + //-------------------------------------------------------------------------- + + GrB_Info info = GrB_NO_VALUE ; + + #pragma omp critical (GB_global_get_set) + { + info = GB_global_enum_set (value, field) ; + } + + return (info) ; +} + +//------------------------------------------------------------------------------ +// GrB_Global_set_VOID +//------------------------------------------------------------------------------ + +GrB_Info GrB_Global_set_VOID +( + GrB_Global g, + void * value, + GrB_Field field, + size_t size +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GB_WHERE1 ("GrB_Global_set_VOID (g, value, field, size)") ; + GB_RETURN_IF_NULL_OR_FAULTY (g) ; + + //-------------------------------------------------------------------------- + // set the field + //-------------------------------------------------------------------------- + + GrB_Info info = GrB_SUCCESS ; + + #pragma omp critical (GB_global_get_set) + { + switch ((int) field) + { + + case GxB_BITMAP_SWITCH : + + if (value == NULL) + { + // set all switches to their default + GB_Global_bitmap_switch_default ( ) ; + } + else + { + if (size < sizeof (double) * GxB_NBITMAP_SWITCH) + { + info = GrB_INVALID_VALUE ; + } + else + { + double *dvalue = (double *) value ; + for (int k = 0 ; k < GxB_NBITMAP_SWITCH ; k++) + { + float b = (float) dvalue [k] ; + GB_Global_bitmap_switch_set (k, b) ; + } + } + } + break ; + + case GxB_PRINTF : + + if (size != sizeof (GB_printf_function_t)) + { + info = GrB_INVALID_VALUE ; + } + else + { + GB_Global_printf_set ((GB_printf_function_t) value) ; + } + break ; + + case GxB_FLUSH : + + if (size != sizeof (GB_flush_function_t)) + { + info = GrB_INVALID_VALUE ; + } + else + { + GB_Global_flush_set ((GB_flush_function_t) value) ; + } + break ; + + default : + + info = GrB_INVALID_VALUE ; + break ; + } + } + + #pragma omp flush + return (info) ; +} + diff --git a/GraphBLAS/Source/GrB_IndexUnaryOp_get.c b/GraphBLAS/Source/get_set/GrB_IndexUnaryOp_get.c similarity index 99% rename from GraphBLAS/Source/GrB_IndexUnaryOp_get.c rename to GraphBLAS/Source/get_set/GrB_IndexUnaryOp_get.c index d1708eaccc..b36db229b7 100644 --- a/GraphBLAS/Source/GrB_IndexUnaryOp_get.c +++ b/GraphBLAS/Source/get_set/GrB_IndexUnaryOp_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_IndexUnaryOp_get_Scalar diff --git a/GraphBLAS/Source/GrB_IndexUnaryOp_set.c b/GraphBLAS/Source/get_set/GrB_IndexUnaryOp_set.c similarity index 98% rename from GraphBLAS/Source/GrB_IndexUnaryOp_set.c rename to GraphBLAS/Source/get_set/GrB_IndexUnaryOp_set.c index 7a4ed5824a..2759b206de 100644 --- a/GraphBLAS/Source/GrB_IndexUnaryOp_set.c +++ b/GraphBLAS/Source/get_set/GrB_IndexUnaryOp_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_IndexUnaryOp_set_Scalar diff --git a/GraphBLAS/Source/GrB_Matrix_get.c b/GraphBLAS/Source/get_set/GrB_Matrix_get.c similarity index 99% rename from GraphBLAS/Source/GrB_Matrix_get.c rename to GraphBLAS/Source/get_set/GrB_Matrix_get.c index d2b12ed58b..15bb6484cb 100644 --- a/GraphBLAS/Source/GrB_Matrix_get.c +++ b/GraphBLAS/Source/get_set/GrB_Matrix_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Matrix_get_Scalar diff --git a/GraphBLAS/Source/GrB_Matrix_set.c b/GraphBLAS/Source/get_set/GrB_Matrix_set.c similarity index 99% rename from GraphBLAS/Source/GrB_Matrix_set.c rename to GraphBLAS/Source/get_set/GrB_Matrix_set.c index 365907e651..2fa8c28631 100644 --- a/GraphBLAS/Source/GrB_Matrix_set.c +++ b/GraphBLAS/Source/get_set/GrB_Matrix_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Matrix_set_Scalar diff --git a/GraphBLAS/Source/GrB_Monoid_get.c b/GraphBLAS/Source/get_set/GrB_Monoid_get.c similarity index 99% rename from GraphBLAS/Source/GrB_Monoid_get.c rename to GraphBLAS/Source/get_set/GrB_Monoid_get.c index 823ff5aab8..a3b40adba1 100644 --- a/GraphBLAS/Source/GrB_Monoid_get.c +++ b/GraphBLAS/Source/get_set/GrB_Monoid_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Monoid_get_Scalar diff --git a/GraphBLAS/Source/GrB_Monoid_set.c b/GraphBLAS/Source/get_set/GrB_Monoid_set.c similarity index 98% rename from GraphBLAS/Source/GrB_Monoid_set.c rename to GraphBLAS/Source/get_set/GrB_Monoid_set.c index fc1fcc7958..bf2adcbf23 100644 --- a/GraphBLAS/Source/GrB_Monoid_set.c +++ b/GraphBLAS/Source/get_set/GrB_Monoid_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Monoid_set_Scalar diff --git a/GraphBLAS/Source/GrB_Scalar_get.c b/GraphBLAS/Source/get_set/GrB_Scalar_get.c similarity index 99% rename from GraphBLAS/Source/GrB_Scalar_get.c rename to GraphBLAS/Source/get_set/GrB_Scalar_get.c index 0e88c2ffbe..37dff04bbd 100644 --- a/GraphBLAS/Source/GrB_Scalar_get.c +++ b/GraphBLAS/Source/get_set/GrB_Scalar_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Scalar_get_Scalar diff --git a/GraphBLAS/Source/GrB_Scalar_set.c b/GraphBLAS/Source/get_set/GrB_Scalar_set.c similarity index 98% rename from GraphBLAS/Source/GrB_Scalar_set.c rename to GraphBLAS/Source/get_set/GrB_Scalar_set.c index ff7f002084..0ca6231600 100644 --- a/GraphBLAS/Source/GrB_Scalar_set.c +++ b/GraphBLAS/Source/get_set/GrB_Scalar_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Scalar_set_Scalar diff --git a/GraphBLAS/Source/GrB_Semiring_get.c b/GraphBLAS/Source/get_set/GrB_Semiring_get.c similarity index 99% rename from GraphBLAS/Source/GrB_Semiring_get.c rename to GraphBLAS/Source/get_set/GrB_Semiring_get.c index 257137b2a0..8717d1602f 100644 --- a/GraphBLAS/Source/GrB_Semiring_get.c +++ b/GraphBLAS/Source/get_set/GrB_Semiring_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Semiring_get_Scalar diff --git a/GraphBLAS/Source/GrB_Semiring_set.c b/GraphBLAS/Source/get_set/GrB_Semiring_set.c similarity index 98% rename from GraphBLAS/Source/GrB_Semiring_set.c rename to GraphBLAS/Source/get_set/GrB_Semiring_set.c index e398567ea7..5c87c85a5e 100644 --- a/GraphBLAS/Source/GrB_Semiring_set.c +++ b/GraphBLAS/Source/get_set/GrB_Semiring_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Semiring_set_Scalar diff --git a/GraphBLAS/Source/GrB_Type_get.c b/GraphBLAS/Source/get_set/GrB_Type_get.c similarity index 99% rename from GraphBLAS/Source/GrB_Type_get.c rename to GraphBLAS/Source/get_set/GrB_Type_get.c index 1b2bad06e7..5c9ef4eb5c 100644 --- a/GraphBLAS/Source/GrB_Type_get.c +++ b/GraphBLAS/Source/get_set/GrB_Type_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Type_get_Scalar diff --git a/GraphBLAS/Source/GrB_Type_set.c b/GraphBLAS/Source/get_set/GrB_Type_set.c similarity index 98% rename from GraphBLAS/Source/GrB_Type_set.c rename to GraphBLAS/Source/get_set/GrB_Type_set.c index 3fa6b4b95f..bef8fc659c 100644 --- a/GraphBLAS/Source/GrB_Type_set.c +++ b/GraphBLAS/Source/get_set/GrB_Type_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Type_set_Scalar diff --git a/GraphBLAS/Source/GrB_UnaryOp_get.c b/GraphBLAS/Source/get_set/GrB_UnaryOp_get.c similarity index 99% rename from GraphBLAS/Source/GrB_UnaryOp_get.c rename to GraphBLAS/Source/get_set/GrB_UnaryOp_get.c index 1a88de4c5b..3aca01c81e 100644 --- a/GraphBLAS/Source/GrB_UnaryOp_get.c +++ b/GraphBLAS/Source/get_set/GrB_UnaryOp_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_UnaryOp_get_Scalar diff --git a/GraphBLAS/Source/GrB_UnaryOp_set.c b/GraphBLAS/Source/get_set/GrB_UnaryOp_set.c similarity index 98% rename from GraphBLAS/Source/GrB_UnaryOp_set.c rename to GraphBLAS/Source/get_set/GrB_UnaryOp_set.c index bf92f6d71a..08f35bc370 100644 --- a/GraphBLAS/Source/GrB_UnaryOp_set.c +++ b/GraphBLAS/Source/get_set/GrB_UnaryOp_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_UnaryOp_set_Scalar diff --git a/GraphBLAS/Source/GrB_Vector_get.c b/GraphBLAS/Source/get_set/GrB_Vector_get.c similarity index 99% rename from GraphBLAS/Source/GrB_Vector_get.c rename to GraphBLAS/Source/get_set/GrB_Vector_get.c index 8eb0aef5df..8c4d2281fe 100644 --- a/GraphBLAS/Source/GrB_Vector_get.c +++ b/GraphBLAS/Source/get_set/GrB_Vector_get.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Vector_get_Scalar diff --git a/GraphBLAS/Source/GrB_Vector_set.c b/GraphBLAS/Source/get_set/GrB_Vector_set.c similarity index 99% rename from GraphBLAS/Source/GrB_Vector_set.c rename to GraphBLAS/Source/get_set/GrB_Vector_set.c index aae8adb393..9d8a4109f2 100644 --- a/GraphBLAS/Source/GrB_Vector_set.c +++ b/GraphBLAS/Source/get_set/GrB_Vector_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GrB_Vector_set_Scalar diff --git a/GraphBLAS/Source/GxB_Context_get.c b/GraphBLAS/Source/get_set/GxB_Context_get.c similarity index 100% rename from GraphBLAS/Source/GxB_Context_get.c rename to GraphBLAS/Source/get_set/GxB_Context_get.c diff --git a/GraphBLAS/Source/GxB_Context_get2.c b/GraphBLAS/Source/get_set/GxB_Context_get2.c similarity index 99% rename from GraphBLAS/Source/GxB_Context_get2.c rename to GraphBLAS/Source/get_set/GxB_Context_get2.c index 7a8a5a5ea4..aca4701468 100644 --- a/GraphBLAS/Source/GxB_Context_get2.c +++ b/GraphBLAS/Source/get_set/GxB_Context_get2.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GxB_Context_get_Scalar diff --git a/GraphBLAS/Source/GxB_Context_set.c b/GraphBLAS/Source/get_set/GxB_Context_set.c similarity index 100% rename from GraphBLAS/Source/GxB_Context_set.c rename to GraphBLAS/Source/get_set/GxB_Context_set.c diff --git a/GraphBLAS/Source/GxB_Context_set2.c b/GraphBLAS/Source/get_set/GxB_Context_set2.c similarity index 99% rename from GraphBLAS/Source/GxB_Context_set2.c rename to GraphBLAS/Source/get_set/GxB_Context_set2.c index dd5dabea2c..3eff66b0b9 100644 --- a/GraphBLAS/Source/GxB_Context_set2.c +++ b/GraphBLAS/Source/get_set/GxB_Context_set2.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" +#include "get_set/GB_get_set.h" //------------------------------------------------------------------------------ // GxB_Context_set_Scalar diff --git a/GraphBLAS/Source/GxB_Desc_get.c b/GraphBLAS/Source/get_set/GxB_Desc_get.c similarity index 100% rename from GraphBLAS/Source/GxB_Desc_get.c rename to GraphBLAS/Source/get_set/GxB_Desc_get.c diff --git a/GraphBLAS/Source/GxB_Desc_set.c b/GraphBLAS/Source/get_set/GxB_Desc_set.c similarity index 100% rename from GraphBLAS/Source/GxB_Desc_set.c rename to GraphBLAS/Source/get_set/GxB_Desc_set.c diff --git a/GraphBLAS/Source/GxB_Descriptor_get.c b/GraphBLAS/Source/get_set/GxB_Descriptor_get.c similarity index 100% rename from GraphBLAS/Source/GxB_Descriptor_get.c rename to GraphBLAS/Source/get_set/GxB_Descriptor_get.c diff --git a/GraphBLAS/Source/GxB_Global_Option_get.c b/GraphBLAS/Source/get_set/GxB_Global_Option_get.c similarity index 99% rename from GraphBLAS/Source/GxB_Global_Option_get.c rename to GraphBLAS/Source/get_set/GxB_Global_Option_get.c index 226a315fb7..08e44cb813 100644 --- a/GraphBLAS/Source/GxB_Global_Option_get.c +++ b/GraphBLAS/Source/get_set/GxB_Global_Option_get.c @@ -18,7 +18,7 @@ // GxB_Global_Option_get_FUNCTION function pointers (as void **) #include "GB.h" -#include "GB_jitifyer.h" +#include "jitifyer/GB_jitifyer.h" //------------------------------------------------------------------------------ // GxB_Global_Option_get_INT32: get global options (int32_t scalars or arrays) diff --git a/GraphBLAS/Source/GxB_Global_Option_set.c b/GraphBLAS/Source/get_set/GxB_Global_Option_set.c similarity index 99% rename from GraphBLAS/Source/GxB_Global_Option_set.c rename to GraphBLAS/Source/get_set/GxB_Global_Option_set.c index 05905ddfc2..a9be33b81f 100644 --- a/GraphBLAS/Source/GxB_Global_Option_set.c +++ b/GraphBLAS/Source/get_set/GxB_Global_Option_set.c @@ -19,7 +19,7 @@ // GxB_Global_Option_set_FUNCTION function pointers (as void *) #include "GB.h" -#include "GB_jitifyer.h" +#include "jitifyer/GB_jitifyer.h" //------------------------------------------------------------------------------ // GxB_Global_Option_set_INT32: set a global option (int32_t) diff --git a/GraphBLAS/Source/GxB_Matrix_Option_get.c b/GraphBLAS/Source/get_set/GxB_Matrix_Option_get.c similarity index 100% rename from GraphBLAS/Source/GxB_Matrix_Option_get.c rename to GraphBLAS/Source/get_set/GxB_Matrix_Option_get.c diff --git a/GraphBLAS/Source/GxB_Matrix_Option_set.c b/GraphBLAS/Source/get_set/GxB_Matrix_Option_set.c similarity index 99% rename from GraphBLAS/Source/GxB_Matrix_Option_set.c rename to GraphBLAS/Source/get_set/GxB_Matrix_Option_set.c index 8f3cc66ef2..230c541058 100644 --- a/GraphBLAS/Source/GxB_Matrix_Option_set.c +++ b/GraphBLAS/Source/get_set/GxB_Matrix_Option_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_transpose.h" +#include "transpose/GB_transpose.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Serialized_get.c b/GraphBLAS/Source/get_set/GxB_Serialized_get.c similarity index 99% rename from GraphBLAS/Source/GxB_Serialized_get.c rename to GraphBLAS/Source/get_set/GxB_Serialized_get.c index 5d5a22a7da..31a2320788 100644 --- a/GraphBLAS/Source/GxB_Serialized_get.c +++ b/GraphBLAS/Source/get_set/GxB_Serialized_get.c @@ -7,8 +7,8 @@ //------------------------------------------------------------------------------ -#include "GB_get_set.h" -#include "GB_serialize.h" +#include "get_set/GB_get_set.h" +#include "serialize/GB_serialize.h" //------------------------------------------------------------------------------ // GB_blob_header_get: get all properties of the blob diff --git a/GraphBLAS/Source/GxB_Vector_Option_get.c b/GraphBLAS/Source/get_set/GxB_Vector_Option_get.c similarity index 100% rename from GraphBLAS/Source/GxB_Vector_Option_get.c rename to GraphBLAS/Source/get_set/GxB_Vector_Option_get.c diff --git a/GraphBLAS/Source/GxB_Vector_Option_set.c b/GraphBLAS/Source/get_set/GxB_Vector_Option_set.c similarity index 99% rename from GraphBLAS/Source/GxB_Vector_Option_set.c rename to GraphBLAS/Source/get_set/GxB_Vector_Option_set.c index 3fdd2185c8..e8f4b47ae0 100644 --- a/GraphBLAS/Source/GxB_Vector_Option_set.c +++ b/GraphBLAS/Source/get_set/GxB_Vector_Option_set.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_transpose.h" +#include "transpose/GB_transpose.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GB_Global.c b/GraphBLAS/Source/global/GB_Global.c similarity index 99% rename from GraphBLAS/Source/GB_Global.c rename to GraphBLAS/Source/global/GB_Global.c index 1eb2750a78..f0b53e9962 100644 --- a/GraphBLAS/Source/GB_Global.c +++ b/GraphBLAS/Source/global/GB_Global.c @@ -14,7 +14,7 @@ // global matrix options, and other settings. #include "GB.h" -#include "GB_cpu_features.h" +#include "cpu/GB_cpu_features.h" //------------------------------------------------------------------------------ // Global storage: for all threads in a user application that uses GraphBLAS diff --git a/GraphBLAS/Source/GB_Global.h b/GraphBLAS/Source/global/GB_Global.h similarity index 100% rename from GraphBLAS/Source/GB_Global.h rename to GraphBLAS/Source/global/GB_Global.h diff --git a/GraphBLAS/Source/GB_factory.h b/GraphBLAS/Source/helper/GB_factory.h similarity index 100% rename from GraphBLAS/Source/GB_factory.h rename to GraphBLAS/Source/helper/GB_factory.h diff --git a/GraphBLAS/Source/GB_helper.c b/GraphBLAS/Source/helper/GB_helper.c similarity index 99% rename from GraphBLAS/Source/GB_helper.c rename to GraphBLAS/Source/helper/GB_helper.c index 3d632848e3..776891416a 100644 --- a/GraphBLAS/Source/GB_helper.c +++ b/GraphBLAS/Source/helper/GB_helper.c @@ -12,7 +12,7 @@ // These functions are only used by the @GrB interface for // SuiteSparse:GraphBLAS. -#include "GB_helper.h" +#include "helper/GB_helper.h" bool GB_factory_kernels_enabled = true ; diff --git a/GraphBLAS/Source/GB_helper.h b/GraphBLAS/Source/helper/GB_helper.h similarity index 99% rename from GraphBLAS/Source/GB_helper.h rename to GraphBLAS/Source/helper/GB_helper.h index 5cb05a5c27..9e59c4865b 100644 --- a/GraphBLAS/Source/GB_helper.h +++ b/GraphBLAS/Source/helper/GB_helper.h @@ -14,7 +14,7 @@ #define GB_HELPER_H #include "GB.h" -#include "GB_math.h" +#include "math/GB_math.h" double GB_helper0 (void) ; diff --git a/GraphBLAS/Source/GB_hyper.h b/GraphBLAS/Source/hyper/GB_hyper.h similarity index 96% rename from GraphBLAS/Source/GB_hyper.h rename to GraphBLAS/Source/hyper/GB_hyper.h index 884c33e09b..7db13c0b49 100644 --- a/GraphBLAS/Source/GB_hyper.h +++ b/GraphBLAS/Source/hyper/GB_hyper.h @@ -22,12 +22,6 @@ GrB_Info GB_hyper_realloc GB_Werk Werk ) ; -GrB_Info GB_conform_hyper // conform a matrix to sparse/hypersparse -( - GrB_Matrix A, // matrix to conform - GB_Werk Werk -) ; - GrB_Info GB_hyper_prune ( // output, not allocated on input: diff --git a/GraphBLAS/Source/GB_hyper_hash_need.c b/GraphBLAS/Source/hyper/GB_hyper_hash_need.c similarity index 95% rename from GraphBLAS/Source/GB_hyper_hash_need.c rename to GraphBLAS/Source/hyper/GB_hyper_hash_need.c index aefdcd33e8..3f296f1637 100644 --- a/GraphBLAS/Source/GB_hyper_hash_need.c +++ b/GraphBLAS/Source/hyper/GB_hyper_hash_need.c @@ -24,7 +24,7 @@ bool GB_hyper_hash_need ) { - if (A == NULL || !GB_IS_HYPERSPARSE (A)) + if (A == NULL || !GB_IS_HYPERSPARSE (A) || A->no_hyper_hash) { // only hypersparse matrices require a hyper_hash return (false) ; diff --git a/GraphBLAS/Source/GB_hyper_prune.c b/GraphBLAS/Source/hyper/GB_hyper_prune.c similarity index 100% rename from GraphBLAS/Source/GB_hyper_prune.c rename to GraphBLAS/Source/hyper/GB_hyper_prune.c diff --git a/GraphBLAS/Source/GB_hyper_realloc.c b/GraphBLAS/Source/hyper/GB_hyper_realloc.c similarity index 98% rename from GraphBLAS/Source/GB_hyper_realloc.c rename to GraphBLAS/Source/hyper/GB_hyper_realloc.c index 62a35a018e..78ac0320d5 100644 --- a/GraphBLAS/Source/GB_hyper_realloc.c +++ b/GraphBLAS/Source/hyper/GB_hyper_realloc.c @@ -12,7 +12,7 @@ // No change is made to A->Y. #include "GB.h" -#include "GB_unused.h" +#include "include/GB_unused.h" GrB_Info GB_hyper_realloc ( diff --git a/GraphBLAS/Source/GB_hyper_shallow.c b/GraphBLAS/Source/hyper/GB_hyper_shallow.c similarity index 95% rename from GraphBLAS/Source/GB_hyper_shallow.c rename to GraphBLAS/Source/hyper/GB_hyper_shallow.c index f12a51736f..e413a9f528 100644 --- a/GraphBLAS/Source/GB_hyper_shallow.c +++ b/GraphBLAS/Source/hyper/GB_hyper_shallow.c @@ -13,7 +13,7 @@ // is iso then so is C. #include "GB.h" -#include "GB_convert.h" +#include "convert/GB_convert.h" GrB_Matrix GB_hyper_shallow // return C ( @@ -54,6 +54,7 @@ GrB_Matrix GB_hyper_shallow // return C C->h_shallow = false ; C->Y = NULL ; C->Y_shallow = false ; + C->no_hyper_hash = false ; // C is sparse, this flag is not necessary // flag all content of C as shallow C->p_shallow = true ; diff --git a/GraphBLAS/Source/GB_hypermatrix_prune.c b/GraphBLAS/Source/hyper/GB_hypermatrix_prune.c similarity index 100% rename from GraphBLAS/Source/GB_hypermatrix_prune.c rename to GraphBLAS/Source/hyper/GB_hypermatrix_prune.c diff --git a/GraphBLAS/Source/GB_nvec_nonempty.c b/GraphBLAS/Source/hyper/GB_nvec_nonempty.c similarity index 100% rename from GraphBLAS/Source/GB_nvec_nonempty.c rename to GraphBLAS/Source/hyper/GB_nvec_nonempty.c diff --git a/GraphBLAS/Source/Shared/GB_hyper_hash_lookup.h b/GraphBLAS/Source/hyper/include/GB_hyper_hash_lookup.h similarity index 88% rename from GraphBLAS/Source/Shared/GB_hyper_hash_lookup.h rename to GraphBLAS/Source/hyper/include/GB_hyper_hash_lookup.h index c32640cb1d..0a1b5fc173 100644 --- a/GraphBLAS/Source/Shared/GB_hyper_hash_lookup.h +++ b/GraphBLAS/Source/hyper/include/GB_hyper_hash_lookup.h @@ -25,6 +25,7 @@ GB_STATIC_INLINE int64_t GB_hyper_hash_lookup // k if j==Ah[k]; -1 if not found const int64_t *restrict Yx, // A->Y->x const int64_t hash_bits, // A->Y->vdim-1, which is hash table size-1 const int64_t j, // find j in Ah [0..anvec-1], using A->Y +// const bool no_hyper_hash, // A->no_hyper_hash // output int64_t *restrict pstart, // start of vector: Ap [k] int64_t *restrict pend // end of vector: Ap [k+1] @@ -41,10 +42,24 @@ GB_STATIC_INLINE int64_t GB_hyper_hash_lookup // k if j==Ah[k]; -1 if not found // no hyper_hash constructed //---------------------------------------------------------------------- +// if (no_hyper_hash) + { + // the hyper_hash is disabled. Quick lookup for j == Ah [j]. + if (j < anvec && Ah [j] == j) + { + // found j == Ah [j], so return k = j + k = j ; + found = true ; + } + } + // binary search of Ah [0...A->nvec-1] for the value j - k = 0 ; - int64_t pright = anvec - 1 ; - GB_BINARY_SEARCH (j, Ah, k, pright, found) ; + if (!found) + { + k = 0 ; + int64_t pright = anvec - 1 ; + GB_BINARY_SEARCH (j, Ah, k, pright, found) ; + } } else diff --git a/GraphBLAS/Source/GB_ij.h b/GraphBLAS/Source/ij/GB_ij.h similarity index 99% rename from GraphBLAS/Source/GB_ij.h rename to GraphBLAS/Source/ij/GB_ij.h index 704cb759e9..5f8b81df73 100644 --- a/GraphBLAS/Source/GB_ij.h +++ b/GraphBLAS/Source/ij/GB_ij.h @@ -119,7 +119,7 @@ static inline bool GB_ij_is_in_list // determine if i is in the list I int64_t inc = Icolon [GxB_INC] ; int64_t e = Icolon [GxB_END] ; if (inc == 0) - { + { // lo:stride:hi with stride of zero. // I is empty if inc is zero, so i is not in I. return (false) ; diff --git a/GraphBLAS/Source/GB_ijlength.c b/GraphBLAS/Source/ij/GB_ijlength.c similarity index 99% rename from GraphBLAS/Source/GB_ijlength.c rename to GraphBLAS/Source/ij/GB_ijlength.c index c96e0e643a..b56ad01b4a 100644 --- a/GraphBLAS/Source/GB_ijlength.c +++ b/GraphBLAS/Source/ij/GB_ijlength.c @@ -10,7 +10,7 @@ // Determine the length of I, and process the colon notation I = begin:inc:end. // No error checking is done. -#include "GB_ij.h" +#include "ij/GB_ij.h" // ensure an unsigned integer does not cause signed integer overflow #define GB_LIMIT(u) (int64_t) (GB_IMIN (u, INT64_MAX)) diff --git a/GraphBLAS/Source/GB_ijproperties.c b/GraphBLAS/Source/ij/GB_ijproperties.c similarity index 99% rename from GraphBLAS/Source/GB_ijproperties.c rename to GraphBLAS/Source/ij/GB_ijproperties.c index ee6eafe774..6cffe282b7 100644 --- a/GraphBLAS/Source/GB_ijproperties.c +++ b/GraphBLAS/Source/ij/GB_ijproperties.c @@ -11,7 +11,7 @@ // check a list of indices I and determine its properties -#include "GB_ij.h" +#include "ij/GB_ij.h" // FUTURE:: if limit=0, print a different message. see also setEl, extractEl. #define GB_ICHECK(i,limit) \ diff --git a/GraphBLAS/Source/GB_ijsort.c b/GraphBLAS/Source/ij/GB_ijsort.c similarity index 99% rename from GraphBLAS/Source/GB_ijsort.c rename to GraphBLAS/Source/ij/GB_ijsort.c index 29ed4564c2..d64cc9f9ee 100644 --- a/GraphBLAS/Source/GB_ijsort.c +++ b/GraphBLAS/Source/ij/GB_ijsort.c @@ -18,8 +18,8 @@ I2k = I1k (~Iduplicate) ; */ -#include "GB_ij.h" -#include "GB_sort.h" +#include "ij/GB_ij.h" +#include "sort/GB_sort.h" #define GB_FREE_WORKSPACE \ { \ diff --git a/GraphBLAS/Source/GB_export.c b/GraphBLAS/Source/import_export/GB_export.c similarity index 99% rename from GraphBLAS/Source/GB_export.c rename to GraphBLAS/Source/import_export/GB_export.c index a8950e1f86..5ebe2a8e7f 100644 --- a/GraphBLAS/Source/GB_export.c +++ b/GraphBLAS/Source/import_export/GB_export.c @@ -11,7 +11,7 @@ // matrix is exported in its current sparsity structure and by-row/by-col // format. -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GB_export.h b/GraphBLAS/Source/import_export/GB_export.h similarity index 99% rename from GraphBLAS/Source/GB_export.h rename to GraphBLAS/Source/import_export/GB_export.h index 3cc4f40401..4c89e3aa80 100644 --- a/GraphBLAS/Source/GB_export.h +++ b/GraphBLAS/Source/import_export/GB_export.h @@ -9,7 +9,7 @@ #ifndef GB_EXPORT_H #define GB_EXPORT_H -#include "GB_transpose.h" +#include "transpose/GB_transpose.h" GrB_Info GB_import // import/pack a matrix in any format diff --git a/GraphBLAS/Source/GB_import.c b/GraphBLAS/Source/import_export/GB_import.c similarity index 99% rename from GraphBLAS/Source/GB_import.c rename to GraphBLAS/Source/import_export/GB_import.c index 5658ea7ebc..6f86ff5139 100644 --- a/GraphBLAS/Source/GB_import.c +++ b/GraphBLAS/Source/import_export/GB_import.c @@ -10,7 +10,7 @@ // This method takes O(1) time and memory, unless secure is true (used // when the input data is not trusted). -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL GB_Matrix_free (A) ; diff --git a/GraphBLAS/Source/GrB_Matrix_export.c b/GraphBLAS/Source/import_export/GrB_Matrix_export.c similarity index 99% rename from GraphBLAS/Source/GrB_Matrix_export.c rename to GraphBLAS/Source/import_export/GrB_Matrix_export.c index 9dcb2afe2b..f65ae3242f 100644 --- a/GraphBLAS/Source/GrB_Matrix_export.c +++ b/GraphBLAS/Source/import_export/GrB_Matrix_export.c @@ -28,7 +28,8 @@ GB_Matrix_free (&T) ; \ } -#include "GB_transpose.h" +#include "transpose/GB_transpose.h" +#include "extractTuples/GB_extractTuples.h" //------------------------------------------------------------------------------ // GB_export_worker: export a matrix of any type diff --git a/GraphBLAS/Source/GrB_Matrix_exportHint.c b/GraphBLAS/Source/import_export/GrB_Matrix_exportHint.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_exportHint.c rename to GraphBLAS/Source/import_export/GrB_Matrix_exportHint.c index 33eff6b32f..a3ddab6273 100644 --- a/GraphBLAS/Source/GrB_Matrix_exportHint.c +++ b/GraphBLAS/Source/import_export/GrB_Matrix_exportHint.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_transpose.h" +#include "transpose/GB_transpose.h" #define GB_FREE_ALL ; GrB_Info GrB_Matrix_exportHint // suggest the best export format diff --git a/GraphBLAS/Source/GrB_Matrix_exportSize.c b/GraphBLAS/Source/import_export/GrB_Matrix_exportSize.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_exportSize.c rename to GraphBLAS/Source/import_export/GrB_Matrix_exportSize.c index 9e3a440db7..49731b21dc 100644 --- a/GraphBLAS/Source/GrB_Matrix_exportSize.c +++ b/GraphBLAS/Source/import_export/GrB_Matrix_exportSize.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_transpose.h" +#include "transpose/GB_transpose.h" #define GB_FREE_ALL ; GrB_Info GrB_Matrix_exportSize // determine sizes of user arrays for export diff --git a/GraphBLAS/Source/GrB_Matrix_import.c b/GraphBLAS/Source/import_export/GrB_Matrix_import.c similarity index 99% rename from GraphBLAS/Source/GrB_Matrix_import.c rename to GraphBLAS/Source/import_export/GrB_Matrix_import.c index 2996b659ce..5d3b331269 100644 --- a/GraphBLAS/Source/GrB_Matrix_import.c +++ b/GraphBLAS/Source/import_export/GrB_Matrix_import.c @@ -10,8 +10,8 @@ // No typecasting is done. The type of entries in the Ax array must match // the GrB_Type type parameter. -#include "GB_export.h" -#include "GB_build.h" +#include "import_export/GB_export.h" +#include "builder/GB_build.h" #define GB_FREE_ALL \ { \ @@ -307,7 +307,7 @@ static GrB_Info GB_import_worker // import a matrix of any type // determine if A is iso //-------------------------------------------------------------------------- - if (GB_check_if_iso (*A)) + if (GB_all_entries_are_iso (*A)) { // All entries in A are the same; convert A to iso GBURBLE ("(import post iso) ") ; diff --git a/GraphBLAS/Source/GxB_Matrix_export_BitmapC.c b/GraphBLAS/Source/import_export/GxB_Matrix_export_BitmapC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_export_BitmapC.c rename to GraphBLAS/Source/import_export/GxB_Matrix_export_BitmapC.c index 84be7fcd79..825f987cb1 100644 --- a/GraphBLAS/Source/GxB_Matrix_export_BitmapC.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_export_BitmapC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_export_BitmapR.c b/GraphBLAS/Source/import_export/GxB_Matrix_export_BitmapR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_export_BitmapR.c rename to GraphBLAS/Source/import_export/GxB_Matrix_export_BitmapR.c index 425b6ae3b8..acfbbc5e43 100644 --- a/GraphBLAS/Source/GxB_Matrix_export_BitmapR.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_export_BitmapR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_export_CSC.c b/GraphBLAS/Source/import_export/GxB_Matrix_export_CSC.c similarity index 99% rename from GraphBLAS/Source/GxB_Matrix_export_CSC.c rename to GraphBLAS/Source/import_export/GxB_Matrix_export_CSC.c index 2056ff1cb0..53afe49e20 100644 --- a/GraphBLAS/Source/GxB_Matrix_export_CSC.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_export_CSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_export_CSR.c b/GraphBLAS/Source/import_export/GxB_Matrix_export_CSR.c similarity index 99% rename from GraphBLAS/Source/GxB_Matrix_export_CSR.c rename to GraphBLAS/Source/import_export/GxB_Matrix_export_CSR.c index 2948a84db1..edb919d0ca 100644 --- a/GraphBLAS/Source/GxB_Matrix_export_CSR.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_export_CSR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_export_FullC.c b/GraphBLAS/Source/import_export/GxB_Matrix_export_FullC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_export_FullC.c rename to GraphBLAS/Source/import_export/GxB_Matrix_export_FullC.c index 633d174548..43e8443032 100644 --- a/GraphBLAS/Source/GxB_Matrix_export_FullC.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_export_FullC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_export_FullR.c b/GraphBLAS/Source/import_export/GxB_Matrix_export_FullR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_export_FullR.c rename to GraphBLAS/Source/import_export/GxB_Matrix_export_FullR.c index b5685bcef1..93579b6aff 100644 --- a/GraphBLAS/Source/GxB_Matrix_export_FullR.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_export_FullR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_export_HyperCSC.c b/GraphBLAS/Source/import_export/GxB_Matrix_export_HyperCSC.c similarity index 99% rename from GraphBLAS/Source/GxB_Matrix_export_HyperCSC.c rename to GraphBLAS/Source/import_export/GxB_Matrix_export_HyperCSC.c index 5228f1376a..bb81925dbc 100644 --- a/GraphBLAS/Source/GxB_Matrix_export_HyperCSC.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_export_HyperCSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_export_HyperCSR.c b/GraphBLAS/Source/import_export/GxB_Matrix_export_HyperCSR.c similarity index 99% rename from GraphBLAS/Source/GxB_Matrix_export_HyperCSR.c rename to GraphBLAS/Source/import_export/GxB_Matrix_export_HyperCSR.c index d7da8d3ec3..4b0556e826 100644 --- a/GraphBLAS/Source/GxB_Matrix_export_HyperCSR.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_export_HyperCSR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_import_BitmapC.c b/GraphBLAS/Source/import_export/GxB_Matrix_import_BitmapC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_import_BitmapC.c rename to GraphBLAS/Source/import_export/GxB_Matrix_import_BitmapC.c index 16330fc1c7..e2edabd3e0 100644 --- a/GraphBLAS/Source/GxB_Matrix_import_BitmapC.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_import_BitmapC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_import_BitmapC // import a bitmap matrix, held by column ( diff --git a/GraphBLAS/Source/GxB_Matrix_import_BitmapR.c b/GraphBLAS/Source/import_export/GxB_Matrix_import_BitmapR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_import_BitmapR.c rename to GraphBLAS/Source/import_export/GxB_Matrix_import_BitmapR.c index c5098ccced..07c139ba2b 100644 --- a/GraphBLAS/Source/GxB_Matrix_import_BitmapR.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_import_BitmapR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_import_BitmapR // import a bitmap matrix, held by row ( diff --git a/GraphBLAS/Source/GxB_Matrix_import_CSC.c b/GraphBLAS/Source/import_export/GxB_Matrix_import_CSC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_import_CSC.c rename to GraphBLAS/Source/import_export/GxB_Matrix_import_CSC.c index 32d4877e3b..1e61780ab2 100644 --- a/GraphBLAS/Source/GxB_Matrix_import_CSC.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_import_CSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_import_CSC // import a CSC matrix ( diff --git a/GraphBLAS/Source/GxB_Matrix_import_CSR.c b/GraphBLAS/Source/import_export/GxB_Matrix_import_CSR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_import_CSR.c rename to GraphBLAS/Source/import_export/GxB_Matrix_import_CSR.c index 7b6b1e6b82..48ada1482c 100644 --- a/GraphBLAS/Source/GxB_Matrix_import_CSR.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_import_CSR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_import_CSR // import a CSR matrix ( diff --git a/GraphBLAS/Source/GxB_Matrix_import_FullC.c b/GraphBLAS/Source/import_export/GxB_Matrix_import_FullC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_import_FullC.c rename to GraphBLAS/Source/import_export/GxB_Matrix_import_FullC.c index 3e47812494..8fb7324123 100644 --- a/GraphBLAS/Source/GxB_Matrix_import_FullC.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_import_FullC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_import_FullC // import a full matrix, held by column ( diff --git a/GraphBLAS/Source/GxB_Matrix_import_FullR.c b/GraphBLAS/Source/import_export/GxB_Matrix_import_FullR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_import_FullR.c rename to GraphBLAS/Source/import_export/GxB_Matrix_import_FullR.c index 91ef3b496e..03ac96b7f3 100644 --- a/GraphBLAS/Source/GxB_Matrix_import_FullR.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_import_FullR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_import_FullR // import a full matrix, held by row ( diff --git a/GraphBLAS/Source/GxB_Matrix_import_HyperCSC.c b/GraphBLAS/Source/import_export/GxB_Matrix_import_HyperCSC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_import_HyperCSC.c rename to GraphBLAS/Source/import_export/GxB_Matrix_import_HyperCSC.c index 9ab99ad60a..18e673d8b7 100644 --- a/GraphBLAS/Source/GxB_Matrix_import_HyperCSC.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_import_HyperCSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_import_HyperCSC // import a hypersparse CSC matrix ( diff --git a/GraphBLAS/Source/GxB_Matrix_import_HyperCSR.c b/GraphBLAS/Source/import_export/GxB_Matrix_import_HyperCSR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_import_HyperCSR.c rename to GraphBLAS/Source/import_export/GxB_Matrix_import_HyperCSR.c index 5acd633a02..b98626ad35 100644 --- a/GraphBLAS/Source/GxB_Matrix_import_HyperCSR.c +++ b/GraphBLAS/Source/import_export/GxB_Matrix_import_HyperCSR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_import_HyperCSR // import a hypersparse CSR matrix ( diff --git a/GraphBLAS/Source/GxB_Vector_export_Bitmap.c b/GraphBLAS/Source/import_export/GxB_Vector_export_Bitmap.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_export_Bitmap.c rename to GraphBLAS/Source/import_export/GxB_Vector_export_Bitmap.c index cb9976912a..9cf21e386c 100644 --- a/GraphBLAS/Source/GxB_Vector_export_Bitmap.c +++ b/GraphBLAS/Source/import_export/GxB_Vector_export_Bitmap.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Vector_export_CSC.c b/GraphBLAS/Source/import_export/GxB_Vector_export_CSC.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_export_CSC.c rename to GraphBLAS/Source/import_export/GxB_Vector_export_CSC.c index cf8498fc7a..a005791ae2 100644 --- a/GraphBLAS/Source/GxB_Vector_export_CSC.c +++ b/GraphBLAS/Source/import_export/GxB_Vector_export_CSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Vector_export_Full.c b/GraphBLAS/Source/import_export/GxB_Vector_export_Full.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_export_Full.c rename to GraphBLAS/Source/import_export/GxB_Vector_export_Full.c index d916e5821b..4e03075f0e 100644 --- a/GraphBLAS/Source/GxB_Vector_export_Full.c +++ b/GraphBLAS/Source/import_export/GxB_Vector_export_Full.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Vector_import_Bitmap.c b/GraphBLAS/Source/import_export/GxB_Vector_import_Bitmap.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_import_Bitmap.c rename to GraphBLAS/Source/import_export/GxB_Vector_import_Bitmap.c index b6de05e71c..35ce480873 100644 --- a/GraphBLAS/Source/GxB_Vector_import_Bitmap.c +++ b/GraphBLAS/Source/import_export/GxB_Vector_import_Bitmap.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Vector_import_Bitmap // import a bitmap vector ( diff --git a/GraphBLAS/Source/GxB_Vector_import_CSC.c b/GraphBLAS/Source/import_export/GxB_Vector_import_CSC.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_import_CSC.c rename to GraphBLAS/Source/import_export/GxB_Vector_import_CSC.c index 67b340ed70..fff56672ee 100644 --- a/GraphBLAS/Source/GxB_Vector_import_CSC.c +++ b/GraphBLAS/Source/import_export/GxB_Vector_import_CSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Vector_import_CSC // import a vector in CSC format ( diff --git a/GraphBLAS/Source/GxB_Vector_import_Full.c b/GraphBLAS/Source/import_export/GxB_Vector_import_Full.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_import_Full.c rename to GraphBLAS/Source/import_export/GxB_Vector_import_Full.c index 0aec58ab3f..7d8a5ebaf4 100644 --- a/GraphBLAS/Source/GxB_Vector_import_Full.c +++ b/GraphBLAS/Source/import_export/GxB_Vector_import_Full.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Vector_import_Full // import a full vector ( diff --git a/GraphBLAS/Source/Template/GB_compiler.h b/GraphBLAS/Source/include/GB_compiler.h similarity index 100% rename from GraphBLAS/Source/Template/GB_compiler.h rename to GraphBLAS/Source/include/GB_compiler.h diff --git a/GraphBLAS/Source/Template/GB_coverage.h b/GraphBLAS/Source/include/GB_coverage.h similarity index 100% rename from GraphBLAS/Source/Template/GB_coverage.h rename to GraphBLAS/Source/include/GB_coverage.h diff --git a/GraphBLAS/Source/Template/GB_defaults.h b/GraphBLAS/Source/include/GB_defaults.h similarity index 100% rename from GraphBLAS/Source/Template/GB_defaults.h rename to GraphBLAS/Source/include/GB_defaults.h diff --git a/GraphBLAS/Source/Template/GB_dev.h b/GraphBLAS/Source/include/GB_dev.h similarity index 100% rename from GraphBLAS/Source/Template/GB_dev.h rename to GraphBLAS/Source/include/GB_dev.h diff --git a/GraphBLAS/Source/include/GB_include.h b/GraphBLAS/Source/include/GB_include.h new file mode 100644 index 0000000000..81c0b3463d --- /dev/null +++ b/GraphBLAS/Source/include/GB_include.h @@ -0,0 +1,139 @@ +//------------------------------------------------------------------------------ +// GB_include.h: internal definitions for GraphBLAS, including JIT kernels +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#ifndef GB_TEMPLATE_H +#define GB_TEMPLATE_H + +//------------------------------------------------------------------------------ +// definitions that modify GraphBLAS.h +//------------------------------------------------------------------------------ + +#include "include/GB_dev.h" +#include "include/GB_compiler.h" +#include "include/GB_warnings.h" +#include "include/GB_coverage.h" + +//------------------------------------------------------------------------------ +// user-visible GraphBLAS.h +//------------------------------------------------------------------------------ + +#include "GraphBLAS.h" +#undef I + +#ifdef GBMATLAB +#undef GRAPHBLAS_HAS_CUDA +#endif + +//------------------------------------------------------------------------------ +// handle the restrict and 'static inline' keywords +//------------------------------------------------------------------------------ + +// Intentionally shadow the built-in "restrict" keyword. See GraphBLAS.h for +// the definition of GB_restrict. It becomes empty for C++, and "__restrict" +// for MS Visual Studio. Otherwise, GB_restrict is just "restrict" on C11 +// compliant compilers. I prefer to use the "restrict" keyword to make the +// code readable. This #define is a patch for compilers that don't support it: + +#define restrict GB_restrict + +// for internal static inline functions (will be redefined for CUDA) +#undef GB_STATIC_INLINE +#define GB_STATIC_INLINE static inline + +//------------------------------------------------------------------------------ +// internal #include files +//------------------------------------------------------------------------------ + +#include "include/GB_prefix.h" +#include "include/GB_defaults.h" + +#ifdef GB_JIT_KERNEL + + //-------------------------------------------------------------------------- + // include files for JIT kernels + //-------------------------------------------------------------------------- + + // Placed in the SuiteSparse/GrB(version)/src/include folder by GrB_init, + // via the JITPackage. These files are used by the CPU JIT kernels (via + // this file) and the CUDA JIT kernels (CUDA/include/GB_cuda_kernel.cuh): + #include "include/GB_pun.h" + #include "include/GB_partition.h" + #include "include/GB_binary_search.h" + #include "include/GB_zombie.h" + #include "include/GB_int64_mult.h" + #include "include/GB_index.h" + #include "include/GB_hash.h" + #include "include/GB_complex.h" + #include "include/GB_iceil.h" + #include "include/GB_math_macros.h" + #include "include/GB_memory_macros.h" + #include "include/GB_printf_kernels.h" + #include "include/GB_opaque.h" + #include "include/GB_werk.h" + #include "include/GB_callback_proto.h" + #include "include/GB_saxpy3task_struct.h" + #include "include/GB_callback.h" + #include "include/GB_hyper_hash_lookup.h" + + // the remaining files are only used in the CPU JIT kernels: + #include "include/GB_bytes.h" + #include "include/GB_atomics.h" + #include "include/GB_assert_kernels.h" + #include "include/GB_nthreads.h" + #include "include/GB_log2.h" + #include "include/GB_task_struct.h" + #include "include/GB_wait_macros.h" + #include "include/GB_AxB_macros.h" + #include "include/GB_ek_slice_kernels.h" + #include "include/GB_bitmap_scatter.h" + #include "include/GB_omp_kernels.h" + +#else + + //-------------------------------------------------------------------------- + // include files for the GraphBLAS libary + //-------------------------------------------------------------------------- + + // Original location in the GraphBLAS/Source folder, for compiling + // the GraphBLAS library, including PreJIT kernels: + #include "type/include/GB_pun.h" + #include "slice/include/GB_partition.h" + #include "math/include/GB_binary_search.h" + #include "math/include/GB_zombie.h" + #include "math/include/GB_int64_mult.h" + #include "assign/include/GB_index.h" + #include "math/include/GB_hash.h" + #include "math/include/GB_complex.h" + #include "math/include/GB_iceil.h" + #include "math/include/GB_math_macros.h" + #include "memory/include/GB_memory_macros.h" + #include "print/include/GB_printf_kernels.h" + #include "builtin/include/GB_opaque.h" + #include "werk/include/GB_werk.h" + #include "callback/include/GB_callback_proto.h" + #include "mxm/include/GB_saxpy3task_struct.h" + #include "callback/include/GB_callback.h" + #include "hyper/include/GB_hyper_hash_lookup.h" + + #include "type/include/GB_bytes.h" + #include "omp/include/GB_atomics.h" + #include "ok/include/GB_assert_kernels.h" + #include "omp/include/GB_nthreads.h" + #include "math/include/GB_log2.h" + #include "slice/include/GB_task_struct.h" + #include "wait/include/GB_wait_macros.h" + #include "mxm/include/GB_AxB_macros.h" + #include "slice/include/GB_ek_slice_kernels.h" + #include "assign/include/GB_bitmap_scatter.h" + #include "omp/include/GB_omp_kernels.h" + +#endif + +#endif + diff --git a/GraphBLAS/Source/Template/GB_prefix.h b/GraphBLAS/Source/include/GB_prefix.h similarity index 100% rename from GraphBLAS/Source/Template/GB_prefix.h rename to GraphBLAS/Source/include/GB_prefix.h diff --git a/GraphBLAS/Source/Shared/GB_unused.h b/GraphBLAS/Source/include/GB_unused.h similarity index 100% rename from GraphBLAS/Source/Shared/GB_unused.h rename to GraphBLAS/Source/include/GB_unused.h diff --git a/GraphBLAS/Source/Template/GB_warnings.h b/GraphBLAS/Source/include/GB_warnings.h similarity index 100% rename from GraphBLAS/Source/Template/GB_warnings.h rename to GraphBLAS/Source/include/GB_warnings.h diff --git a/GraphBLAS/Source/GrB_IndexUnaryOp_free.c b/GraphBLAS/Source/indexunaryop/GrB_IndexUnaryOp_free.c similarity index 100% rename from GraphBLAS/Source/GrB_IndexUnaryOp_free.c rename to GraphBLAS/Source/indexunaryop/GrB_IndexUnaryOp_free.c diff --git a/GraphBLAS/Source/GrB_IndexUnaryOp_new.c b/GraphBLAS/Source/indexunaryop/GrB_IndexUnaryOp_new.c similarity index 100% rename from GraphBLAS/Source/GrB_IndexUnaryOp_new.c rename to GraphBLAS/Source/indexunaryop/GrB_IndexUnaryOp_new.c diff --git a/GraphBLAS/Source/GxB_IndexUnaryOp_new.c b/GraphBLAS/Source/indexunaryop/GxB_IndexUnaryOp_new.c similarity index 99% rename from GraphBLAS/Source/GxB_IndexUnaryOp_new.c rename to GraphBLAS/Source/indexunaryop/GxB_IndexUnaryOp_new.c index 17f9d227c3..17d10f6c00 100644 --- a/GraphBLAS/Source/GxB_IndexUnaryOp_new.c +++ b/GraphBLAS/Source/indexunaryop/GxB_IndexUnaryOp_new.c @@ -18,7 +18,7 @@ // If the function pointer is NULL, the function is compiled with the JIT. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" GrB_Info GxB_IndexUnaryOp_new // create a named user-created IndexUnaryOp ( diff --git a/GraphBLAS/Source/GxB_IndexUnaryOp_xtype_name.c b/GraphBLAS/Source/indexunaryop/GxB_IndexUnaryOp_xtype_name.c similarity index 100% rename from GraphBLAS/Source/GxB_IndexUnaryOp_xtype_name.c rename to GraphBLAS/Source/indexunaryop/GxB_IndexUnaryOp_xtype_name.c diff --git a/GraphBLAS/Source/GxB_IndexUnaryOp_ytype_name.c b/GraphBLAS/Source/indexunaryop/GxB_IndexUnaryOp_ytype_name.c similarity index 100% rename from GraphBLAS/Source/GxB_IndexUnaryOp_ytype_name.c rename to GraphBLAS/Source/indexunaryop/GxB_IndexUnaryOp_ytype_name.c diff --git a/GraphBLAS/Source/GxB_IndexUnaryOp_ztype_name.c b/GraphBLAS/Source/indexunaryop/GxB_IndexUnaryOp_ztype_name.c similarity index 100% rename from GraphBLAS/Source/GxB_IndexUnaryOp_ztype_name.c rename to GraphBLAS/Source/indexunaryop/GxB_IndexUnaryOp_ztype_name.c diff --git a/GraphBLAS/Source/GxB_SelectOp_ttype.c b/GraphBLAS/Source/indexunaryop/GxB_SelectOp_ttype.c similarity index 100% rename from GraphBLAS/Source/GxB_SelectOp_ttype.c rename to GraphBLAS/Source/indexunaryop/GxB_SelectOp_ttype.c diff --git a/GraphBLAS/Source/GxB_SelectOp_xtype.c b/GraphBLAS/Source/indexunaryop/GxB_SelectOp_xtype.c similarity index 100% rename from GraphBLAS/Source/GxB_SelectOp_xtype.c rename to GraphBLAS/Source/indexunaryop/GxB_SelectOp_xtype.c diff --git a/GraphBLAS/Source/GB_init.c b/GraphBLAS/Source/init/GB_init.c similarity index 94% rename from GraphBLAS/Source/GB_init.c rename to GraphBLAS/Source/init/GB_init.c index 4a45839f36..62eac4e653 100644 --- a/GraphBLAS/Source/GB_init.c +++ b/GraphBLAS/Source/init/GB_init.c @@ -36,8 +36,8 @@ #define GB_FREE_ALL ; #include "GB.h" -#include "GB_init.h" -#include "GB_stringify.h" +#include "init/GB_init.h" +#include "jitifyer/GB_stringify.h" //------------------------------------------------------------------------------ // GB_init @@ -82,6 +82,7 @@ GrB_Info GB_init // start up GraphBLAS bool malloc_is_thread_safe = true ; #if defined ( GRAPHBLAS_HAS_CUDA ) + mode = GxB_NONBLOCKING_GPU ; // HACK FIXME: force GPU to be used if (mode == GxB_NONBLOCKING_GPU || mode == GxB_BLOCKING_GPU) { // ignore the memory management function pointers and use rmm_wrap_* @@ -197,6 +198,12 @@ GrB_Info GB_init // start up GraphBLAS //-------------------------------------------------------------------------- #pragma omp flush + #if defined ( GRAPHBLAS_HAS_CUDA ) +// this hack_get setting is used by GB_ngpus_to_use: +// GB_Global_hack_set (2,0) ; // HACK FIXME: default: GPU for big enough probs + GB_Global_hack_set (2,1) ; // HACK FIXME: force the GPU always to be used +// GB_Global_hack_set (2,2) ; // HACK FIXME: force the GPU never to be used + #endif return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/GB_init.h b/GraphBLAS/Source/init/GB_init.h similarity index 100% rename from GraphBLAS/Source/GB_init.h rename to GraphBLAS/Source/init/GB_init.h diff --git a/GraphBLAS/Source/GrB_error.c b/GraphBLAS/Source/init/GrB_error.c similarity index 100% rename from GraphBLAS/Source/GrB_error.c rename to GraphBLAS/Source/init/GrB_error.c diff --git a/GraphBLAS/Source/GrB_finalize.c b/GraphBLAS/Source/init/GrB_finalize.c similarity index 95% rename from GraphBLAS/Source/GrB_finalize.c rename to GraphBLAS/Source/init/GrB_finalize.c index e77287c3c8..5690f1181f 100644 --- a/GraphBLAS/Source/GrB_finalize.c +++ b/GraphBLAS/Source/init/GrB_finalize.c @@ -13,7 +13,7 @@ // same time. #include "GB.h" -#include "GB_jitifyer.h" +#include "jitifyer/GB_jitifyer.h" GrB_Info GrB_finalize ( ) { diff --git a/GraphBLAS/Source/GrB_getVersion.c b/GraphBLAS/Source/init/GrB_getVersion.c similarity index 100% rename from GraphBLAS/Source/GrB_getVersion.c rename to GraphBLAS/Source/init/GrB_getVersion.c diff --git a/GraphBLAS/Source/GrB_init.c b/GraphBLAS/Source/init/GrB_init.c similarity index 98% rename from GraphBLAS/Source/GrB_init.c rename to GraphBLAS/Source/init/GrB_init.c index c4fe7d0e51..5deba02cac 100644 --- a/GraphBLAS/Source/GrB_init.c +++ b/GraphBLAS/Source/init/GrB_init.c @@ -15,7 +15,7 @@ // FIXME: rename GxB_*BLOCKING_GPU to GxB_*BLOCKING_CUDA. #include "GB.h" -#include "GB_init.h" +#include "init/GB_init.h" GrB_Info GrB_init // start up GraphBLAS ( diff --git a/GraphBLAS/Source/GxB_init.c b/GraphBLAS/Source/init/GxB_init.c similarity index 99% rename from GraphBLAS/Source/GxB_init.c rename to GraphBLAS/Source/init/GxB_init.c index fb453ccf50..d08a7dafac 100644 --- a/GraphBLAS/Source/GxB_init.c +++ b/GraphBLAS/Source/init/GxB_init.c @@ -49,7 +49,7 @@ // GxB_init (mode, my_malloc, NULL, NULL, my_free) ; #include "GB.h" -#include "GB_init.h" +#include "init/GB_init.h" GrB_Info GxB_init // start up GraphBLAS and also define malloc, etc ( diff --git a/GraphBLAS/Source/iso/GB_all_entries_are_iso.c b/GraphBLAS/Source/iso/GB_all_entries_are_iso.c new file mode 100644 index 0000000000..dda232c2c2 --- /dev/null +++ b/GraphBLAS/Source/iso/GB_all_entries_are_iso.c @@ -0,0 +1,146 @@ +//------------------------------------------------------------------------------ +// GB_all_entries_are_iso: check if all entries in a matrix are identical +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// JIT: needed. + +// Returns true if all entries in A are the same, and A can then be converted +// to iso if currently non-iso. Returns false if A is bitmap, has any zombies, +// or has or pending tuples, since these are more costly to check. + +#include "GB.h" + +bool GB_all_entries_are_iso // return true if A is iso, false otherwise +( + const GrB_Matrix A // matrix to test if all entries are the same +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + if (A == NULL || GB_nnz (A) == 0 || GB_nnz_held (A) == 0) + { + // empty matrices cannot be iso + return (false) ; + } + else if (A->iso) + { + // nothing to do; A is already iso + return (true) ; + } + else if (GB_PENDING (A) || GB_ZOMBIES (A) || GB_IS_BITMAP (A)) + { + // Non-iso matrices with pending work are assumed to be non-iso. + // Bitmap matrices and matrices with zombies could be checked, but + // finding the first entry is tedious so this is skipped. Matrices + // with pending work could be finished first, but this is costly so it + // is skipped. + return (false) ; + } + + ASSERT (!GB_ZOMBIES (A)) ; + ASSERT (GB_JUMBLED_OK (A)) ; + ASSERT (!GB_PENDING (A)) ; + ASSERT (!GB_IS_BITMAP (A)) ; + ASSERT_MATRIX_OK (A, "A input for GB_all_entries_are_iso", GB0) ; + + //-------------------------------------------------------------------------- + // get A + //-------------------------------------------------------------------------- + + int64_t asize = A->type->size ; + int64_t anz = GB_nnz_held (A) ; + bool iso = true ; // A is iso until proven otherwise + + //-------------------------------------------------------------------------- + // determine the number of threads to use + //-------------------------------------------------------------------------- + + int nthreads = 0, ntasks = 0 ; + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + nthreads = GB_nthreads (anz, chunk, nthreads_max) ; + ntasks = (nthreads == 1) ? 1 : (64 * nthreads) ; + ntasks = GB_IMIN (ntasks, anz) ; + ntasks = GB_IMAX (ntasks, 1) ; + + //-------------------------------------------------------------------------- + // check if A is iso + //-------------------------------------------------------------------------- + + bool done = false ; + + // TODO: disable these kernels for the compact case: + { + + #define GB_GET_FIRST_VALUE(atype_t, a, Ax) \ + const atype_t a = Ax [0] + #define GB_COMPARE_WITH_FIRST_VALUE(my_iso, a, Ax, p) \ + my_iso = my_iso & (a == Ax [p]) + + switch (asize) + { + case GB_1BYTE : // uint8, int8, bool, or 1-byte user + #define GB_A_TYPE uint8_t + #include "iso/factory/GB_all_entries_are_iso_template.c" + break ; + + case GB_2BYTE : // uint16, int16, or 2-byte user + #define GB_A_TYPE uint16_t + #include "iso/factory/GB_all_entries_are_iso_template.c" + break ; + + case GB_4BYTE : // uint32, int32, float, or 4-byte user + #define GB_A_TYPE uint32_t + #include "iso/factory/GB_all_entries_are_iso_template.c" + break ; + + case GB_8BYTE : // uint64, int64, double, float complex, + // or 8-byte user defined + #define GB_A_TYPE uint64_t + #include "iso/factory/GB_all_entries_are_iso_template.c" + break ; + + case GB_16BYTE : // double complex or 16-byte user + #define GB_A_TYPE uint64_t + #undef GB_GET_FIRST_VALUE + #define GB_GET_FIRST_VALUE(atype_t, a, Ax) \ + const atype_t a ## 0 = Ax [0] ; \ + const atype_t a ## 1 = Ax [1] ; + #undef GB_COMPARE_WITH_FIRST_VALUE + #define GB_COMPARE_WITH_FIRST_VALUE(my_iso, a, Ax, p) \ + my_iso = my_iso & (a ## 0 == Ax [2*p ]) \ + & (a ## 1 == Ax [2*p+1]) + #include "iso/factory/GB_all_entries_are_iso_template.c" + break ; + + default:; + } + } + + // TODO: JIT would go here + + if (!done) + { + // with user-defined types of any size + #define GB_A_TYPE GB_void + #undef GB_GET_FIRST_VALUE + #define GB_GET_FIRST_VALUE(atype_t, a, Ax) \ + GB_void a [GB_VLA(asize)] ; \ + memcpy (a, Ax, asize) ; + #undef GB_COMPARE_WITH_FIRST_VALUE + #define GB_COMPARE_WITH_FIRST_VALUE(my_iso, a, Ax, p) \ + my_iso = my_iso & (memcmp (a, Ax + (p)*asize, asize) == 0) + #include "iso/factory/GB_all_entries_are_iso_template.c" + } + + return (iso) ; +} + diff --git a/GraphBLAS/Source/GB_expand_iso.c b/GraphBLAS/Source/iso/GB_expand_iso.c similarity index 99% rename from GraphBLAS/Source/GB_expand_iso.c rename to GraphBLAS/Source/iso/GB_expand_iso.c index ccf42b72ae..2d3adbe75c 100644 --- a/GraphBLAS/Source/GB_expand_iso.c +++ b/GraphBLAS/Source/iso/GB_expand_iso.c @@ -10,7 +10,7 @@ // JIT: needed. #include "GB.h" -#include "GB_is_nonzero.h" +#include "iso/GB_is_nonzero.h" void GB_expand_iso // expand an iso scalar into an entire array ( diff --git a/GraphBLAS/Source/GB_is_nonzero.h b/GraphBLAS/Source/iso/GB_is_nonzero.h similarity index 100% rename from GraphBLAS/Source/GB_is_nonzero.h rename to GraphBLAS/Source/iso/GB_is_nonzero.h diff --git a/GraphBLAS/Source/GB_iso.h b/GraphBLAS/Source/iso/GB_iso.h similarity index 93% rename from GraphBLAS/Source/GB_iso.h rename to GraphBLAS/Source/iso/GB_iso.h index 463987070d..c3ed11697d 100644 --- a/GraphBLAS/Source/GB_iso.h +++ b/GraphBLAS/Source/iso/GB_iso.h @@ -61,9 +61,9 @@ void GB_expand_iso // expand an iso scalar into an entire array size_t size // size of the scalar and each entry of X ) ; -bool GB_check_if_iso // return true if A is iso, false otherwise +bool GB_all_entries_are_iso // return true if A is iso, false otherwise ( - const GrB_Matrix A // matrix to reduce + const GrB_Matrix A // matrix to test if all entries are the same ) ; #endif diff --git a/GraphBLAS/Source/GB_unop_code_iso.c b/GraphBLAS/Source/iso/GB_unop_code_iso.c similarity index 100% rename from GraphBLAS/Source/GB_unop_code_iso.c rename to GraphBLAS/Source/iso/GB_unop_code_iso.c diff --git a/GraphBLAS/Source/GB_unop_iso.c b/GraphBLAS/Source/iso/GB_unop_iso.c similarity index 100% rename from GraphBLAS/Source/GB_unop_iso.c rename to GraphBLAS/Source/iso/GB_unop_iso.c diff --git a/GraphBLAS/Source/GxB_Matrix_iso.c b/GraphBLAS/Source/iso/GxB_Matrix_iso.c similarity index 100% rename from GraphBLAS/Source/GxB_Matrix_iso.c rename to GraphBLAS/Source/iso/GxB_Matrix_iso.c diff --git a/GraphBLAS/Source/GxB_Vector_iso.c b/GraphBLAS/Source/iso/GxB_Vector_iso.c similarity index 100% rename from GraphBLAS/Source/GxB_Vector_iso.c rename to GraphBLAS/Source/iso/GxB_Vector_iso.c diff --git a/GraphBLAS/Source/iso/factory/GB_all_entries_are_iso_template.c b/GraphBLAS/Source/iso/factory/GB_all_entries_are_iso_template.c new file mode 100644 index 0000000000..b88bc4589e --- /dev/null +++ b/GraphBLAS/Source/iso/factory/GB_all_entries_are_iso_template.c @@ -0,0 +1,52 @@ +//------------------------------------------------------------------------------ +// GB_all_entries_are_iso_template: check if all entries in a matrix are identical +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +{ + + //-------------------------------------------------------------------------- + // get A + //-------------------------------------------------------------------------- + + const GB_A_TYPE *restrict Ax = (GB_A_TYPE *) A->x ; + + //-------------------------------------------------------------------------- + // check all entries to see if they are equal to the first entry + //-------------------------------------------------------------------------- + + int tid ; + #pragma omp parallel for num_threads(nthreads) schedule(dynamic,1) + for (tid = 0 ; tid < ntasks ; tid++) + { + int64_t pstart, pend ; + GB_PARTITION (pstart, pend, anz, tid, ntasks) ; + bool my_iso ; + GB_ATOMIC_READ + my_iso = iso ; + if (my_iso) + { + // GB_A_TYPE a = Ax [0] ; + GB_GET_FIRST_VALUE (GB_A_TYPE, a, Ax) ; + for (int64_t p = pstart ; my_iso && p < pend ; p++) + { + // my_iso = my_iso && (a == Ax [p]) + GB_COMPARE_WITH_FIRST_VALUE (my_iso, a, Ax, p) ; + } + if (!my_iso) + { + // tell the other tasks to exit early + GB_ATOMIC_WRITE + iso = false ; + } + } + } + done = true ; +} + +#undef GB_A_TYPE + diff --git a/GraphBLAS/Source/GB_Iterator_attach.c b/GraphBLAS/Source/iterator/GB_Iterator_attach.c similarity index 100% rename from GraphBLAS/Source/GB_Iterator_attach.c rename to GraphBLAS/Source/iterator/GB_Iterator_attach.c diff --git a/GraphBLAS/Source/GB_Iterator_rc_bitmap_next.c b/GraphBLAS/Source/iterator/GB_Iterator_rc_bitmap_next.c similarity index 100% rename from GraphBLAS/Source/GB_Iterator_rc_bitmap_next.c rename to GraphBLAS/Source/iterator/GB_Iterator_rc_bitmap_next.c diff --git a/GraphBLAS/Source/GB_Iterator_rc_seek.c b/GraphBLAS/Source/iterator/GB_Iterator_rc_seek.c similarity index 98% rename from GraphBLAS/Source/GB_Iterator_rc_seek.c rename to GraphBLAS/Source/iterator/GB_Iterator_rc_seek.c index 1a64ac0c41..79e25922ce 100644 --- a/GraphBLAS/Source/GB_Iterator_rc_seek.c +++ b/GraphBLAS/Source/iterator/GB_Iterator_rc_seek.c @@ -18,7 +18,7 @@ GrB_Info GB_Iterator_rc_seek ( GxB_Iterator iterator, - GrB_Index j, + GrB_Index j_input, bool jth_vector ) { @@ -27,6 +27,7 @@ GrB_Info GB_Iterator_rc_seek // check if the iterator is exhausted //-------------------------------------------------------------------------- + int64_t j = (int64_t) j_input ; if (j >= ((jth_vector) ? iterator->anvec : iterator->avdim)) { iterator->pstart = 0 ; diff --git a/GraphBLAS/Source/GxB_Iterator_free.c b/GraphBLAS/Source/iterator/GxB_Iterator_free.c similarity index 100% rename from GraphBLAS/Source/GxB_Iterator_free.c rename to GraphBLAS/Source/iterator/GxB_Iterator_free.c diff --git a/GraphBLAS/Source/GxB_Iterator_get.c b/GraphBLAS/Source/iterator/GxB_Iterator_get.c similarity index 100% rename from GraphBLAS/Source/GxB_Iterator_get.c rename to GraphBLAS/Source/iterator/GxB_Iterator_get.c diff --git a/GraphBLAS/Source/GxB_Iterator_new.c b/GraphBLAS/Source/iterator/GxB_Iterator_new.c similarity index 100% rename from GraphBLAS/Source/GxB_Iterator_new.c rename to GraphBLAS/Source/iterator/GxB_Iterator_new.c diff --git a/GraphBLAS/Source/GxB_Matrix_Iterator.c b/GraphBLAS/Source/iterator/GxB_Matrix_Iterator.c similarity index 91% rename from GraphBLAS/Source/GxB_Matrix_Iterator.c rename to GraphBLAS/Source/iterator/GxB_Matrix_Iterator.c index afa30605db..daac48e640 100644 --- a/GraphBLAS/Source/GxB_Matrix_Iterator.c +++ b/GraphBLAS/Source/iterator/GxB_Matrix_Iterator.c @@ -6,7 +6,7 @@ // SPDX-License-Identifier: Apache-2.0 #include "GB.h" -#include "GB_search_for_vector_template.c" +#include "slice/factory/GB_search_for_vector_template.c" //------------------------------------------------------------------------------ // GxB_Matrix_Iterator_attach: attach an entry iterator to a matrix @@ -161,9 +161,10 @@ GrB_Info GxB_Matrix_Iterator_next (GxB_Iterator iterator) GrB_Info GxB_Matrix_Iterator_seek ( GxB_Iterator iterator, - GrB_Index p + GrB_Index p_input ) { + int64_t p = (int64_t) p_input ; if (p >= iterator->pmax) { // the iterator is exhausted @@ -262,13 +263,13 @@ void GxB_Matrix_Iterator_getIndex { if (iterator->by_col) { - (*row) = iterator->Ai [iterator->p] ; - (*col) = iterator->k ; + (*row) = (GrB_Index) (iterator->Ai [iterator->p]) ; + (*col) = (GrB_Index) (iterator->k) ; } else { - (*row) = iterator->k ; - (*col) = iterator->Ai [iterator->p] ; + (*row) = (GrB_Index) (iterator->k) ; + (*col) = (GrB_Index) (iterator->Ai [iterator->p]) ; } } break ; @@ -277,13 +278,13 @@ void GxB_Matrix_Iterator_getIndex { if (iterator->by_col) { - (*row) = iterator->Ai [iterator->p] ; - (*col) = iterator->Ah [iterator->k] ; + (*row) = (GrB_Index) (iterator->Ai [iterator->p]) ; + (*col) = (GrB_Index) (iterator->Ah [iterator->k]) ; } else { - (*row) = iterator->Ah [iterator->k] ; - (*col) = iterator->Ai [iterator->p] ; + (*row) = (GrB_Index) (iterator->Ah [iterator->k]) ; + (*col) = (GrB_Index) (iterator->Ai [iterator->p]) ; } } break ; @@ -293,13 +294,13 @@ void GxB_Matrix_Iterator_getIndex { if (iterator->by_col) { - (*row) = iterator->p - iterator->pstart ; - (*col) = iterator->k ; + (*row) = (GrB_Index) (iterator->p - iterator->pstart) ; + (*col) = (GrB_Index) (iterator->k) ; } else { - (*row) = iterator->k ; - (*col) = iterator->p - iterator->pstart ; + (*row) = (GrB_Index) (iterator->k) ; + (*col) = (GrB_Index) (iterator->p - iterator->pstart) ; } } break ; diff --git a/GraphBLAS/Source/GxB_Vector_Iterator.c b/GraphBLAS/Source/iterator/GxB_Vector_Iterator.c similarity index 100% rename from GraphBLAS/Source/GxB_Vector_Iterator.c rename to GraphBLAS/Source/iterator/GxB_Vector_Iterator.c diff --git a/GraphBLAS/Source/GxB_colIterator.c b/GraphBLAS/Source/iterator/GxB_colIterator.c similarity index 100% rename from GraphBLAS/Source/GxB_colIterator.c rename to GraphBLAS/Source/iterator/GxB_colIterator.c diff --git a/GraphBLAS/Source/GxB_rowIterator.c b/GraphBLAS/Source/iterator/GxB_rowIterator.c similarity index 100% rename from GraphBLAS/Source/GxB_rowIterator.c rename to GraphBLAS/Source/iterator/GxB_rowIterator.c diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel.h b/GraphBLAS/Source/jit_kernels/include/GB_jit_kernel.h similarity index 87% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel.h rename to GraphBLAS/Source/jit_kernels/include/GB_jit_kernel.h index f421485751..2156d6a43d 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel.h +++ b/GraphBLAS/Source/jit_kernels/include/GB_jit_kernel.h @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -// This file is #include'd into all JIT kernels on the CPU. +// This file is #include'd into all JIT kernels on the CPU and the GPU. #ifndef GB_JIT_KERNEL_H #define GB_JIT_KERNEL_H @@ -16,14 +16,14 @@ #ifndef GB_CUDA_KERNEL // for CPU JIT kernels: - #include "GB_Template.h" + #include "include/GB_include.h" #else // for CUDA JIT kernels: - #include "GB_cuda_kernel.cuh" + #include "include/GB_cuda_kernel.cuh" #endif // for all JIT kernels -#include "GB_jit_kernel_proto.h" +#include "include/GB_jit_kernel_proto.h" #if defined (_MSC_VER) && !(defined (__INTEL_COMPILER) || defined(__INTEL_CLANG_COMPILER)) #define GB_JIT_GLOBAL extern __declspec ( dllexport ) #else @@ -32,7 +32,7 @@ #ifndef GB_JIT_RUNTIME // for PreJIT kernels (CPU and CUDA) - #include "GB_callbacks.h" + #include "callback/GB_callbacks.h" #endif // these macros are redefined by the JIT kernels to specialize them for each diff --git a/GraphBLAS/Source/Template/GB_jit_kernel_proto.h b/GraphBLAS/Source/jit_kernels/include/GB_jit_kernel_proto.h similarity index 89% rename from GraphBLAS/Source/Template/GB_jit_kernel_proto.h rename to GraphBLAS/Source/jit_kernels/include/GB_jit_kernel_proto.h index 5c260789ab..55261b0add 100644 --- a/GraphBLAS/Source/Template/GB_jit_kernel_proto.h +++ b/GraphBLAS/Source/jit_kernels/include/GB_jit_kernel_proto.h @@ -572,6 +572,73 @@ GrB_Info GB_jit_kernel_reduce \ int32_t blocksz \ ) +#define GB_JIT_CUDA_KERNEL_ROWSCALE_PROTO(GB_jit_kernel_rowscale) \ +GrB_Info GB_jit_kernel_rowscale \ +( \ + GrB_Matrix C, \ + GrB_Matrix D, \ + GrB_Matrix B, \ + cudaStream_t stream, \ + int32_t gridsz, \ + int32_t blocksz \ +) + +#define GB_JIT_CUDA_KERNEL_COLSCALE_PROTO(GB_jit_kernel_colscale) \ +GrB_Info GB_jit_kernel_colscale \ +( \ + GrB_Matrix C, \ + GrB_Matrix A, \ + GrB_Matrix D, \ + cudaStream_t stream, \ + int32_t gridsz, \ + int32_t blocksz \ +) + +#define GB_JIT_CUDA_KERNEL_APPLY_BIND1ST_PROTO(GB_jit_kernel_apply_bind1st) \ +GrB_Info GB_jit_kernel_apply_bind1st \ +( \ + GB_void *Cx, \ + const GB_void *scalarx, \ + GrB_Matrix B, \ + cudaStream_t stream, \ + int32_t gridsz, \ + int32_t blocksz \ +) \ + +#define GB_JIT_CUDA_KERNEL_APPLY_BIND2ND_PROTO(GB_jit_kernel_apply_bind2nd) \ +GrB_Info GB_jit_kernel_apply_bind2nd \ +( \ + GB_void *Cx, \ + GrB_Matrix A, \ + const GB_void *scalarx, \ + cudaStream_t stream, \ + int32_t gridsz, \ + int32_t blocksz \ +) \ + +#define GB_JIT_CUDA_KERNEL_APPLY_UNOP_PROTO(GB_jit_kernel_apply_unop) \ +GrB_Info GB_jit_kernel_apply_unop \ +( \ + GB_void *Cx, \ + GrB_Matrix A, \ + const GB_void *ythunk, \ + cudaStream_t stream, \ + int32_t gridsz, \ + int32_t blocksz \ +) \ + +#define GB_JIT_CUDA_KERNEL_SELECT_BITMAP_PROTO(GB_jit_kernel_select_bitmap) \ +GrB_Info GB_jit_kernel_select_bitmap \ +( \ + int8_t *Cb, \ + uint64_t *cnvals, \ + GrB_Matrix A, \ + const GB_void *ythunk, \ + cudaStream_t stream, \ + int32_t gridsz, \ + int32_t blocksz \ +) \ + #define GB_JIT_CUDA_KERNEL_DOT3_PROTO(GB_jit_kernel_AxB_dot3) \ GrB_Info GB_jit_kernel_AxB_dot3 \ ( \ diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot2.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot2.c similarity index 93% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot2.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot2.c index b4eb6e8911..d01fffcf6a 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot2.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot2.c @@ -12,7 +12,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_DOT2_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_DOT2_PROTO (GB_jit_kernel) { - #include "GB_AxB_dot2_meta.c" + #include "template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot2n.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot2n.c similarity index 94% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot2n.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot2n.c index 68a0ada24a..df6f5db20d 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot2n.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot2n.c @@ -13,7 +13,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_DOT2N_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_DOT2N_PROTO (GB_jit_kernel) { #define GB_A_NOT_TRANSPOSED - #include "GB_AxB_dot2_meta.c" + #include "template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot3.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot3.c similarity index 93% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot3.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot3.c index 2319d49462..2998e6b049 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot3.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot3.c @@ -12,7 +12,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_DOT3_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_DOT3_PROTO (GB_jit_kernel) { - #include "GB_AxB_dot3_meta.c" + #include "template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot4.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot4.c similarity index 95% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot4.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot4.c index ffe72670b7..3c359e790a 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_dot4.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_dot4.c @@ -18,7 +18,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_DOT4_PROTO (GB_jit_kernel) GB_malloc_memory_f GB_malloc_memory = my_callback->GB_malloc_memory_func ; #endif - #include "GB_AxB_dot4_meta.c" + #include "template/GB_AxB_dot4_meta.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxbit.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxbit.c similarity index 89% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxbit.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxbit.c index 3e074b34ba..c3b0ea7f1c 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxbit.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxbit.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "include/GB_AxB_saxpy3_template.h" GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXBIT_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXBIT_PROTO (GB_jit_kernel) @@ -18,7 +18,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXBIT_PROTO (GB_jit_kernel) my_callback->GB_bitmap_M_scatter_func ; #endif - #include "GB_AxB_saxbit_template.c" + #include "template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxpy3.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxpy3.c similarity index 91% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxpy3.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxpy3.c index f4d02397af..1425727e51 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxpy3.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxpy3.c @@ -9,7 +9,7 @@ #define Mask_comp GB_MASK_COMP #define Mask_struct GB_MASK_STRUCT -#include "GB_AxB_saxpy3_template.h" +#include "include/GB_AxB_saxpy3_template.h" GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY3_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY3_PROTO (GB_jit_kernel) @@ -23,7 +23,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY3_PROTO (GB_jit_kernel) #endif ASSERT (GB_IS_SPARSE (C) || GB_IS_HYPERSPARSE (C)) ; - #include "GB_AxB_saxpy3_template.c" + #include "template/GB_AxB_saxpy3_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxpy4.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxpy4.c similarity index 87% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxpy4.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxpy4.c index ff43300964..5b9a09e075 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxpy4.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxpy4.c @@ -9,12 +9,12 @@ // C+=A*B: C is full, saxpy4 method -#include "GB_AxB_saxpy3_template.h" +#include "include/GB_AxB_saxpy3_template.h" GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY4_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY4_PROTO (GB_jit_kernel) { - #include "GB_AxB_saxpy4_meta.c" + #include "template/GB_AxB_saxpy4_meta.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxpy5.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxpy5.c similarity index 94% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxpy5.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxpy5.c index 315b3ed609..4b3acc6653 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_AxB_saxpy5.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_AxB_saxpy5.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "include/GB_AxB_saxpy3_template.h" GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY5_PROTO (GB_jit_kernel) ; @@ -42,7 +42,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY5_PROTO (GB_jit_kernel) ; const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -78,7 +78,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY5_PROTO (GB_jit_kernel) ; const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -107,7 +107,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY5_PROTO (GB_jit_kernel) ; const int64_t *B_slice ) { - #include "GB_AxB_saxpy5_unrolled.c" + #include "template/GB_AxB_saxpy5_unrolled.c" } #endif @@ -126,7 +126,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY5_PROTO (GB_jit_kernel) // saxpy5: C+=A*B where A is bitmap/full and iso or pattern //---------------------------------------------------------------------- - #include "GB_AxB_saxpy5_A_iso_or_pattern.c" + #include "template/GB_AxB_saxpy5_A_iso_or_pattern.c" } #elif GB_A_IS_BITMAP @@ -136,7 +136,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_AXB_SAXPY5_PROTO (GB_jit_kernel) // saxpy5: C+=A*B where A is bitmap (but not iso or pattern) //---------------------------------------------------------------------- - #include "GB_AxB_saxpy5_A_bitmap.c" + #include "template/GB_AxB_saxpy5_A_bitmap.c" } #else diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_add.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_add.c similarity index 93% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_add.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_add.c index 13959032c1..ebce5d982e 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_add.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_add.c @@ -11,7 +11,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_ADD_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_ADD_PROTO (GB_jit_kernel) { #define GB_IS_EWISEUNION 0 - #include "GB_add_template.c" + #include "template/GB_add_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_apply_bind1st.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_apply_bind1st.c similarity index 91% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_apply_bind1st.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_apply_bind1st.c index aad7cd2349..32324415d2 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_apply_bind1st.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_apply_bind1st.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_APPLY_BIND1ST_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_APPLY_BIND1ST_PROTO (GB_jit_kernel) { - #include "GB_apply_bind1st_template.c" + #include "template/GB_apply_bind1st_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_apply_bind2nd.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_apply_bind2nd.c similarity index 91% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_apply_bind2nd.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_apply_bind2nd.c index eac2cac648..01a874bc84 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_apply_bind2nd.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_apply_bind2nd.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_APPLY_BIND2ND_PROTO(GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_APPLY_BIND2ND_PROTO(GB_jit_kernel) { - #include "GB_apply_bind2nd_template.c" + #include "template/GB_apply_bind2nd_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_apply_unop.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_apply_unop.c similarity index 79% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_apply_unop.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_apply_unop.c index f33e92677a..7d06c0d915 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_apply_unop.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_apply_unop.c @@ -10,16 +10,16 @@ #if GB_DEPENDS_ON_I // cij = op (aij) - #define GB_APPLY_OP(p) \ + #define GB_APPLY_OP(pC,pA) \ { \ - int64_t i = GBI_A (Ai, p, avlen) ; \ - GB_UNOP (Cx, p, Ax, p, A_iso, i, j, y) ; \ + int64_t i = GBI_A (Ai, pA, avlen) ; \ + GB_UNOP (Cx, pC, Ax, pA, A_iso, i, j, y) ; \ } #else // cij = op (aij) - #define GB_APPLY_OP(p) GB_UNOP (Cx, p, Ax, p, A_iso, i, j, y) + #define GB_APPLY_OP(pC,pA) GB_UNOP (Cx, pC, Ax, pC, A_iso, i, j, y) #endif @@ -42,11 +42,11 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_APPLY_UNOP_PROTO (GB_jit_kernel) const int64_t *restrict Ah = A->h ; const int64_t *restrict Ai = A->i ; int64_t avlen = A->vlen ; - #include "GB_apply_unop_ijp.c" + #include "template/GB_apply_unop_ijp.c" } #else { - #include "GB_apply_unop_ip.c" + #include "template/GB_apply_unop_ip.c" } #endif diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_build.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_build.c similarity index 94% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_build.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_build.c index 6e17a00275..395daddb7f 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_build.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_build.c @@ -12,7 +12,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_BUILD_PROTO (GB_jit_kernel) { GB_T_TYPE *restrict Tx = (GB_T_TYPE *) Tx_void ; const GB_S_TYPE *restrict Sx = (GB_S_TYPE *) Sx_void ; - #include "GB_bld_template.c" + #include "template/GB_bld_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_colscale.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_colscale.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_colscale.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_colscale.c index 0fa102e74f..3417f6ecb2 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_colscale.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_colscale.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_COLSCALE_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_COLSCALE_PROTO (GB_jit_kernel) { - #include "GB_colscale_template.c" + #include "template/GB_colscale_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_concat_bitmap.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_concat_bitmap.c similarity index 94% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_concat_bitmap.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_concat_bitmap.c index 6b51615767..1f9ae289dd 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_concat_bitmap.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_concat_bitmap.c @@ -20,7 +20,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_CONCAT_BITMAP_PROTO (GB_jit_kernel) GB_werk_push_f GB_werk_push = my_callback->GB_werk_push_func ; #endif - #include "GB_concat_bitmap_template.c" + #include "template/GB_concat_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_concat_full.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_concat_full.c similarity index 93% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_concat_full.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_concat_full.c index f05275a5b3..231e44de00 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_concat_full.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_concat_full.c @@ -13,7 +13,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_CONCAT_FULL_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_CONCAT_FULL_PROTO (GB_jit_kernel) { - #include "GB_concat_full_template.c" + #include "template/GB_concat_full_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_concat_sparse.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_concat_sparse.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_concat_sparse.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_concat_sparse.c index 76d79ff728..36a7becb0b 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_concat_sparse.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_concat_sparse.c @@ -13,7 +13,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_CONCAT_SPARSE_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_CONCAT_SPARSE_PROTO (GB_jit_kernel) { - #include "GB_concat_sparse_template.c" + #include "template/GB_concat_sparse_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_convert_s2b.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_convert_s2b.c similarity index 93% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_convert_s2b.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_convert_s2b.c index 68d46dd84b..d509b8d883 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_convert_s2b.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_convert_s2b.c @@ -13,7 +13,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_CONVERT_S2B_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_CONVERT_S2B_PROTO (GB_jit_kernel) { - #include "GB_convert_s2b_template.c" + #include "template/GB_convert_s2b_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_02.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_02.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_02.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_02.c index a766157f32..4f9699479d 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_02.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_02.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_EMULT_02_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_EMULT_02_PROTO (GB_jit_kernel) { - #include "GB_emult_02_template.c" + #include "template/GB_emult_02_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_03.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_03.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_03.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_03.c index ac2f6b1707..e029403939 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_03.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_03.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_EMULT_03_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_EMULT_03_PROTO (GB_jit_kernel) { - #include "GB_emult_03_template.c" + #include "template/GB_emult_03_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_04.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_04.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_04.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_04.c index 2a1a72294a..63e4a8d7e5 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_04.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_04.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_EMULT_04_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_EMULT_04_PROTO (GB_jit_kernel) { - #include "GB_emult_04_template.c" + #include "template/GB_emult_04_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_08.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_08.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_08.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_08.c index a265c3fbfa..948f05dc15 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_08.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_08.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_EMULT_08_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_EMULT_08_PROTO (GB_jit_kernel) { - #include "GB_emult_08_meta.c" + #include "template/GB_emult_08_meta.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_bitmap.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_bitmap.c similarity index 93% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_bitmap.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_bitmap.c index 07eb43c286..043ca3564f 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_emult_bitmap.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_emult_bitmap.c @@ -16,7 +16,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_EMULT_BITMAP_PROTO (GB_jit_kernel) my_callback->GB_bitmap_M_scatter_whole_func ; #endif - #include "GB_emult_bitmap_template.c" + #include "template/GB_emult_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_ewise_fulla.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_ewise_fulla.c similarity index 91% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_ewise_fulla.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_ewise_fulla.c index 1f2ebc7c39..85715b2fae 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_ewise_fulla.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_ewise_fulla.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_EWISE_FULLA_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_EWISE_FULLA_PROTO (GB_jit_kernel) { - #include "GB_ewise_fulla_template.c" + #include "template/GB_ewise_fulla_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_ewise_fulln.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_ewise_fulln.c similarity index 91% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_ewise_fulln.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_ewise_fulln.c index f2be53dfd3..988931ac68 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_ewise_fulln.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_ewise_fulln.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_EWISE_FULLN_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_EWISE_FULLN_PROTO (GB_jit_kernel) { - #include "GB_ewise_fulln_template.c" + #include "template/GB_ewise_fulln_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_reduce.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_reduce.c new file mode 100644 index 0000000000..5c7ad514a8 --- /dev/null +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_reduce.c @@ -0,0 +1,173 @@ +//------------------------------------------------------------------------------ +// GB_jit_kernel_reduce.c: JIT kernel for reduction to scalar +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// The GB_jitifyer constructs a *.c file with macro definitions specific to the +// problem instance, such as the excerpts for the GB_jit__reduce__ac1fbb2 +// kernel, below, which a kernel that computes the scalar reduce of a double +// matrix in bitmap form, using the GrB_PLUS_FP64_MONOID. The code ac1fbb2 is +// computed by GB_enumify_reduce. The macros are followed by an #include with +// this file, to define the kernel routine itself. The kernel is always called +// GB_jit_kernel, regardless of what it computes. However, if this kernel is +// copied into GraphBLAS/PreJit, the name GB_jit_kernel is replaced with its +// full name, GB_jit__reduce__ac1fbb2, which then appears as a compiled +// function in libgraphblas.so when the GraphBLAS library itself is recompiled. + +// The GB_jit_query function provides a mechanism for GraphBLAS to query the +// kernels it has already compiled. When a compiled kernel is loaded, its +// definitions are checked to make sure they haven't changed. If the user +// application has changed the definition of a user-defined data type, for +// example, the string defn [0] would differ. See the gauss_demo program for +// an example. When GraphBLAS detects any such change, the old compiled kernel +// is discarded and a new one is compiled to match the expected definition. + +#ifdef for_comments_only // only so vim will add color to the code below: + + // example file: GB_jit__reduce__ac1fbb2.c + + //-------------------------------------------------------------------------- + // GB_jit__reduce__ac1fbb2.c + //-------------------------------------------------------------------------- + // SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, + // All Rights Reserved. + // SPDX-License-Identifier: Apache-2.0 + // The above copyright and license do not apply to any + // user-defined types and operators defined below. + //-------------------------------------------------------------------------- + + #include "include/GB_jit_kernel.h" + + // reduce: (plus, double) + + // monoid: + #define GB_Z_TYPE double + #define GB_ADD(z,x,y) z = (x) + (y) + #define GB_UPDATE(z,y) z += y + #define GB_DECLARE_IDENTITY(z) double z = 0 + #define GB_DECLARE_IDENTITY_CONST(z) const double z = 0 + #define GB_HAS_IDENTITY_BYTE 1 + #define GB_IDENTITY_BYTE 0x00 + #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) + #define GB_Z_IGNORE_OVERFLOW 1 + #define GB_Z_SIZE 8 + #define GB_Z_NBITS 64 + #define GB_Z_ATOMIC_BITS 64 + #define GB_Z_HAS_ATOMIC_UPDATE 1 + #define GB_Z_HAS_OMP_ATOMIC_UPDATE 1 + #define GB_Z_HAS_CUDA_ATOMIC_BUILTIN 1 + #define GB_Z_CUDA_ATOMIC GB_cuda_atomic_add + #define GB_Z_CUDA_ATOMIC_TYPE double + #define GB_GETA_AND_UPDATE(z,Ax,p) GB_UPDATE (z, Ax [p]) + + // A matrix: bitmap + #define GB_A_IS_HYPER 0 + #define GB_A_IS_SPARSE 0 + #define GB_A_IS_BITMAP 1 + #define GB_A_IS_FULL 0 + #define GBP_A(Ap,k,vlen) ((k) * (vlen)) + #define GBH_A(Ah,k) (k) + #define GBI_A(Ai,p,vlen) ((p) % (vlen)) + #define GBB_A(Ab,p) Ab [p] + #define GB_A_NVALS(e) int64_t e = A->nvals + #define GB_A_NHELD(e) int64_t e = (A->vlen * A->vdim) + #define GB_A_ISO 0 + #define GB_A_HAS_ZOMBIES 0 + #define GB_A_TYPE double + #define GB_A2TYPE double + #define GB_DECLAREA(a) double a + #define GB_GETA(a,Ax,p,iso) a = Ax [p] + + // panel size for reduction: + #define GB_PANEL 32 + + #include "include/GB_monoid_shared_definitions.h" + #ifndef GB_JIT_RUNTIME + #define GB_jit_kernel GB_jit__reduce__ac1fbb2 + #define GB_jit_query GB_jit__reduce__ac1fbb2_query + #endif + #include "template/GB_jit_kernel_reduce.c" + GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; + GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) + { + (*hash) = 0x5bb300ab9fd9b50c ; + v [0] = 9 ; v [1] = 3 ; v [2] = 0 ; + defn [0] = NULL ; + defn [1] = NULL ; + defn [2] = NULL ; + defn [3] = NULL ; + defn [4] = NULL ; + return (true) ; + } + +#endif + +//------------------------------------------------------------------------------ +// reduce to a non-iso matrix to scalar, for monoids only +//------------------------------------------------------------------------------ + +// The two template files GB_reduce_to_scalar_template.c and GB_reduce_panel.c +// appear in GraphBLAS/Source/reduce/template. They are used by both the +// pre-compiled kernels in GraphBLAS/FactoryKernels, and by the JIT kernel +// here. + +// The prototype of this GB_jit_kernel is defined by a macro, +// GB_JIT_KERNEL_REDUCE_PROTO, defined in +// Source/jit_kernels/include/GB_jit_kernel_proto.h: + +/* + #define GB_JIT_KERNEL_REDUCE_PROTO(GB_jit_kernel_reduce) \ + GrB_Info GB_jit_kernel_reduce \ + ( \ + GB_void *result, \ + const GrB_Matrix A, \ + GB_void *restrict Workspace, \ + bool *restrict F, \ + const int ntasks, \ + const int nthreads \ + ) +*/ + +// This macro is used because the identical prototype must appear in many +// places, but with different function names. For example, if this kernel +// is copied into GraphBLAS/PreJIT, then this macro is used to define the +// GB_jit__reduce__ac1fbb2 function, with the same set of parameters as +// given by the GB_JIT_KERNEL_REDUCE_PROTO macro above. + +GB_JIT_GLOBAL GB_JIT_KERNEL_REDUCE_PROTO (GB_jit_kernel) ; +GB_JIT_GLOBAL GB_JIT_KERNEL_REDUCE_PROTO (GB_jit_kernel) +{ + GB_Z_TYPE z = (* ((GB_Z_TYPE *) result)) ; + GB_Z_TYPE *W = (GB_Z_TYPE *) Workspace ; + // The two templates below use the F and Workspace arrays to reduce A to + // the scalar z. For OpenMP parallelism, ntasks tasks are created, and + // executed with nthreads OpenMP threads. + #if GB_A_HAS_ZOMBIES || GB_A_IS_BITMAP || (GB_PANEL == 1) + { + // The matrix A either has zombies, is in bitmap format, or the + // panel size is one. In this case, use a simpler method + // that does not use a panel workspace array. + #include "template/GB_reduce_to_scalar_template.c" + } + #else + { + // This algorithm relies on a panel array for each thread, of size + // GB_PANEL (defined above). Each task grabs a set of entries from A, + // of size GB_PANEL, and accumulates each of them in the panel. The + // task iterates over its part of the A matrix. When the task is done, + // it 'sums' its panel into a single scalar. This method is faster for + // some monoids such as (plus,double). Some monoids or data types do + // not benefit from a panel-based reduction. In this case the panel + // size is set (via GB_PANEL) to one. + #include "template/GB_reduce_panel.c" + } + #endif + // (*result) = z ; + memcpy (result, &z, sizeof (GB_Z_TYPE)) ; + return (GrB_SUCCESS) ; +} + diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_rowscale.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_rowscale.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_rowscale.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_rowscale.c index f8e08d861f..f106d70197 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_rowscale.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_rowscale.c @@ -10,7 +10,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_ROWSCALE_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_ROWSCALE_PROTO (GB_jit_kernel) { - #include "GB_rowscale_template.c" + #include "template/GB_rowscale_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_select_bitmap.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_select_bitmap.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_select_bitmap.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_select_bitmap.c index dc2272dd8c..5a179e549d 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_select_bitmap.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_select_bitmap.c @@ -13,7 +13,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SELECT_BITMAP_PROTO (GB_jit_kernel) #if GB_DEPENDS_ON_Y GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; #endif - #include "GB_select_bitmap_template.c" + #include "template/GB_select_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_select_phase1.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_select_phase1.c similarity index 93% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_select_phase1.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_select_phase1.c index f0daff3ed1..900aa02c9a 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_select_phase1.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_select_phase1.c @@ -19,7 +19,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SELECT_PHASE1_PROTO (GB_jit_kernel) #if GB_DEPENDS_ON_Y GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; #endif - #include "GB_select_entry_phase1_template.c" + #include "template/GB_select_entry_phase1_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_select_phase2.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_select_phase2.c similarity index 94% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_select_phase2.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_select_phase2.c index 8a61f249fe..2c79c7d197 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_select_phase2.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_select_phase2.c @@ -14,7 +14,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SELECT_PHASE2_PROTO (GB_jit_kernel) #if GB_DEPENDS_ON_Y GB_Y_TYPE y = *((GB_Y_TYPE *) ythunk) ; #endif - #include "GB_select_phase2.c" + #include "template/GB_select_phase2.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_split_bitmap.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_split_bitmap.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_split_bitmap.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_split_bitmap.c index a571ddcf7f..fab9474875 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_split_bitmap.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_split_bitmap.c @@ -13,7 +13,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SPLIT_BITMAP_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_SPLIT_BITMAP_PROTO (GB_jit_kernel) { - #include "GB_split_bitmap_template.c" + #include "template/GB_split_bitmap_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_split_full.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_split_full.c similarity index 93% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_split_full.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_split_full.c index daa92d2ed7..c8be6a81be 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_split_full.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_split_full.c @@ -13,7 +13,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SPLIT_FULL_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_SPLIT_FULL_PROTO (GB_jit_kernel) { - #include "GB_split_full_template.c" + #include "template/GB_split_full_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_split_sparse.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_split_sparse.c similarity index 92% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_split_sparse.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_split_sparse.c index 52fb8f1fbb..5b01600ac7 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_split_sparse.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_split_sparse.c @@ -13,7 +13,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SPLIT_SPARSE_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_SPLIT_SPARSE_PROTO (GB_jit_kernel) { - #include "GB_split_sparse_template.c" + #include "template/GB_split_sparse_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_05d.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_05d.c similarity index 96% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_05d.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_05d.c index b9f6076c2b..24785b0c1e 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_05d.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_05d.c @@ -35,7 +35,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SUBASSIGN_PROTO (GB_jit_kernel) #endif GB_C_TYPE cwork = (*((GB_C_TYPE *) scalar)) ; - #include "GB_subassign_05d_template.c" + #include "template/GB_subassign_05d_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_06d.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_06d.c similarity index 97% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_06d.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_06d.c index 7dd5f5df65..eb8dcfb359 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_06d.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_06d.c @@ -41,7 +41,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SUBASSIGN_PROTO (GB_jit_kernel) GB_memset_f GB_memset = my_callback->GB_memset_func ; #endif - #include "GB_subassign_06d_template.c" + #include "template/GB_subassign_06d_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_22.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_22.c similarity index 96% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_22.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_22.c index b781051f39..adc1339d7e 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_22.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_22.c @@ -32,7 +32,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SUBASSIGN_PROTO (GB_jit_kernel) #endif GB_Y_TYPE ywork = (*((GB_Y_TYPE *) scalar)) ; - #include "GB_subassign_22_template.c" + #include "template/GB_subassign_22_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_23.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_23.c similarity index 96% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_23.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_23.c index b15f0d8ff6..cfa0fc49e8 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_23.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_23.c @@ -33,7 +33,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SUBASSIGN_PROTO (GB_jit_kernel) GB_werk_push_f GB_werk_push = my_callback->GB_werk_push_func ; #endif - #include "GB_subassign_23_template.c" + #include "template/GB_subassign_23_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_25.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_25.c similarity index 97% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_25.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_25.c index 6fb7437190..25998425f6 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_subassign_25.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_subassign_25.c @@ -39,7 +39,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_SUBASSIGN_PROTO (GB_jit_kernel) GB_werk_push_f GB_werk_push = my_callback->GB_werk_push_func ; #endif - #include "GB_subassign_25_template.c" + #include "template/GB_subassign_25_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_trans_bind1st.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_trans_bind1st.c similarity index 95% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_trans_bind1st.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_trans_bind1st.c index 42d11bd0be..7ad57d9cb2 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_trans_bind1st.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_trans_bind1st.c @@ -20,7 +20,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_TRANS_BIND1ST_PROTO (GB_jit_kernel) { #define GB_BIND_1ST GB_X_TYPE x = (*((const GB_X_TYPE *) x_input)) ; - #include "GB_transpose_template.c" + #include "template/GB_transpose_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_trans_bind2nd.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_trans_bind2nd.c similarity index 95% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_trans_bind2nd.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_trans_bind2nd.c index 26ee9a5327..ee54e5af91 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_trans_bind2nd.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_trans_bind2nd.c @@ -20,7 +20,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_TRANS_BIND2ND_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_TRANS_BIND2ND_PROTO (GB_jit_kernel) { GB_Y_TYPE y = (*((const GB_Y_TYPE *) y_input)) ; - #include "GB_transpose_template.c" + #include "template/GB_transpose_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_trans_unop.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_trans_unop.c similarity index 93% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_trans_unop.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_trans_unop.c index 7446c24d2c..3f9ca663a6 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_trans_unop.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_trans_unop.c @@ -15,7 +15,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_TRANS_UNOP_PROTO (GB_jit_kernel) ; GB_JIT_GLOBAL GB_JIT_KERNEL_TRANS_UNOP_PROTO (GB_jit_kernel) { - #include "GB_transpose_template.c" + #include "template/GB_transpose_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_union.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_union.c similarity index 94% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_union.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_union.c index 0fa83bed75..dc33a9cb04 100644 --- a/GraphBLAS/Source/JitKernels/GB_jit_kernel_union.c +++ b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_union.c @@ -13,7 +13,7 @@ GB_JIT_GLOBAL GB_JIT_KERNEL_UNION_PROTO (GB_jit_kernel) #define GB_IS_EWISEUNION 1 GB_X_TYPE alpha_scalar = (*((GB_X_TYPE *) alpha_scalar_in)) ; GB_Y_TYPE beta_scalar = (*((GB_Y_TYPE *) beta_scalar_in )) ; - #include "GB_add_template.c" + #include "template/GB_add_template.c" return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_user_op.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_user_op.c similarity index 100% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_user_op.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_user_op.c diff --git a/GraphBLAS/Source/JitKernels/GB_jit_kernel_user_type.c b/GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_user_type.c similarity index 100% rename from GraphBLAS/Source/JitKernels/GB_jit_kernel_user_type.c rename to GraphBLAS/Source/jit_kernels/template/GB_jit_kernel_user_type.c diff --git a/GraphBLAS/Source/GB_AxB_dot2_jit.c b/GraphBLAS/Source/jit_wrappers/GB_AxB_dot2_jit.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_dot2_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_AxB_dot2_jit.c index 8cc59bc317..57d4c26742 100644 --- a/GraphBLAS/Source/GB_AxB_dot2_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_AxB_dot2_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_AXB_DOT2_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_AxB_dot2n_jit.c b/GraphBLAS/Source/jit_wrappers/GB_AxB_dot2n_jit.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_dot2n_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_AxB_dot2n_jit.c index f1d12ca283..e3ac8637b7 100644 --- a/GraphBLAS/Source/GB_AxB_dot2n_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_AxB_dot2n_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_AXB_DOT2N_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_AxB_dot3_jit.c b/GraphBLAS/Source/jit_wrappers/GB_AxB_dot3_jit.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_dot3_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_AxB_dot3_jit.c index d9bf377cda..72381dde43 100644 --- a/GraphBLAS/Source/GB_AxB_dot3_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_AxB_dot3_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_AXB_DOT3_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_AxB_dot4_jit.c b/GraphBLAS/Source/jit_wrappers/GB_AxB_dot4_jit.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_dot4_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_AxB_dot4_jit.c index ca5507bdf3..84f4c8f73f 100644 --- a/GraphBLAS/Source/GB_AxB_dot4_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_AxB_dot4_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_AXB_DOT4_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_AxB_saxbit_jit.c b/GraphBLAS/Source/jit_wrappers/GB_AxB_saxbit_jit.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_saxbit_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_AxB_saxbit_jit.c index c8040974da..dacb388b49 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_AxB_saxbit_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_AXB_SAXBIT_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_jit.c b/GraphBLAS/Source/jit_wrappers/GB_AxB_saxpy3_jit.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_saxpy3_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_AxB_saxpy3_jit.c index 647468d301..4529a7c4c3 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_AxB_saxpy3_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_AXB_SAXPY3_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_AxB_saxpy4_jit.c b/GraphBLAS/Source/jit_wrappers/GB_AxB_saxpy4_jit.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_saxpy4_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_AxB_saxpy4_jit.c index 5b711dd64c..8a587fea91 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy4_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_AxB_saxpy4_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_AXB_SAXPY4_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_AxB_saxpy5_jit.c b/GraphBLAS/Source/jit_wrappers/GB_AxB_saxpy5_jit.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_saxpy5_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_AxB_saxpy5_jit.c index 6f4929ef08..0bf6c7019e 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy5_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_AxB_saxpy5_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_AXB_SAXPY5_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_add_jit.c b/GraphBLAS/Source/jit_wrappers/GB_add_jit.c similarity index 98% rename from GraphBLAS/Source/GB_add_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_add_jit.c index 7b55156ce0..1661057d28 100644 --- a/GraphBLAS/Source/GB_add_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_add_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_ADD_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_apply_bind1st_jit.c b/GraphBLAS/Source/jit_wrappers/GB_apply_bind1st_jit.c similarity index 98% rename from GraphBLAS/Source/GB_apply_bind1st_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_apply_bind1st_jit.c index 40c5b29fb6..d967c9a395 100644 --- a/GraphBLAS/Source/GB_apply_bind1st_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_apply_bind1st_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_APPLY_BIND1ST_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_apply_bind2nd_jit.c b/GraphBLAS/Source/jit_wrappers/GB_apply_bind2nd_jit.c similarity index 98% rename from GraphBLAS/Source/GB_apply_bind2nd_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_apply_bind2nd_jit.c index faed5d09f9..bea0b0fc26 100644 --- a/GraphBLAS/Source/GB_apply_bind2nd_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_apply_bind2nd_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_APPLY_BIND2ND_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_apply_unop_jit.c b/GraphBLAS/Source/jit_wrappers/GB_apply_unop_jit.c similarity index 98% rename from GraphBLAS/Source/GB_apply_unop_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_apply_unop_jit.c index d2c90d88f4..dbe1810120 100644 --- a/GraphBLAS/Source/GB_apply_unop_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_apply_unop_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_APPLY_UNOP_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_build_jit.c b/GraphBLAS/Source/jit_wrappers/GB_build_jit.c similarity index 98% rename from GraphBLAS/Source/GB_build_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_build_jit.c index bb0b18104f..83225f73ca 100644 --- a/GraphBLAS/Source/GB_build_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_build_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_BUILD_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_colscale_jit.c b/GraphBLAS/Source/jit_wrappers/GB_colscale_jit.c similarity index 98% rename from GraphBLAS/Source/GB_colscale_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_colscale_jit.c index e3f6b2cc4f..5bea4ee582 100644 --- a/GraphBLAS/Source/GB_colscale_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_colscale_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_COLSCALE_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_concat_bitmap_jit.c b/GraphBLAS/Source/jit_wrappers/GB_concat_bitmap_jit.c similarity index 98% rename from GraphBLAS/Source/GB_concat_bitmap_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_concat_bitmap_jit.c index 863d81e2dd..3125b09596 100644 --- a/GraphBLAS/Source/GB_concat_bitmap_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_concat_bitmap_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_CONCAT_BITMAP_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_concat_full_jit.c b/GraphBLAS/Source/jit_wrappers/GB_concat_full_jit.c similarity index 98% rename from GraphBLAS/Source/GB_concat_full_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_concat_full_jit.c index 5bb89f7c61..b648c74bb9 100644 --- a/GraphBLAS/Source/GB_concat_full_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_concat_full_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_CONCAT_FULL_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_concat_sparse_jit.c b/GraphBLAS/Source/jit_wrappers/GB_concat_sparse_jit.c similarity index 98% rename from GraphBLAS/Source/GB_concat_sparse_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_concat_sparse_jit.c index 18f5f291b3..c682a91ea2 100644 --- a/GraphBLAS/Source/GB_concat_sparse_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_concat_sparse_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_CONCAT_SPARSE_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_convert_s2b_jit.c b/GraphBLAS/Source/jit_wrappers/GB_convert_s2b_jit.c similarity index 98% rename from GraphBLAS/Source/GB_convert_s2b_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_convert_s2b_jit.c index 07e7080e81..91ce75535a 100644 --- a/GraphBLAS/Source/GB_convert_s2b_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_convert_s2b_jit.c @@ -11,7 +11,7 @@ // (except for identity), but this could be revised in the future. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_CONVERT_S2B_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_emult_02_jit.c b/GraphBLAS/Source/jit_wrappers/GB_emult_02_jit.c similarity index 98% rename from GraphBLAS/Source/GB_emult_02_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_emult_02_jit.c index 11e8dba5b7..b062cca3cd 100644 --- a/GraphBLAS/Source/GB_emult_02_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_emult_02_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_EMULT_02_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_emult_03_jit.c b/GraphBLAS/Source/jit_wrappers/GB_emult_03_jit.c similarity index 98% rename from GraphBLAS/Source/GB_emult_03_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_emult_03_jit.c index b9b3817ae1..babe9bee5b 100644 --- a/GraphBLAS/Source/GB_emult_03_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_emult_03_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_EMULT_03_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_emult_04_jit.c b/GraphBLAS/Source/jit_wrappers/GB_emult_04_jit.c similarity index 98% rename from GraphBLAS/Source/GB_emult_04_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_emult_04_jit.c index 959cbf9957..ae8972ccaa 100644 --- a/GraphBLAS/Source/GB_emult_04_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_emult_04_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_EMULT_04_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_emult_08_jit.c b/GraphBLAS/Source/jit_wrappers/GB_emult_08_jit.c similarity index 98% rename from GraphBLAS/Source/GB_emult_08_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_emult_08_jit.c index dc7dea26d1..2c5aed8421 100644 --- a/GraphBLAS/Source/GB_emult_08_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_emult_08_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_EMULT_08_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_emult_bitmap_jit.c b/GraphBLAS/Source/jit_wrappers/GB_emult_bitmap_jit.c similarity index 98% rename from GraphBLAS/Source/GB_emult_bitmap_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_emult_bitmap_jit.c index 706bcf230f..228e37cba3 100644 --- a/GraphBLAS/Source/GB_emult_bitmap_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_emult_bitmap_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_EMULT_BITMAP_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_ewise_fulla_jit.c b/GraphBLAS/Source/jit_wrappers/GB_ewise_fulla_jit.c similarity index 98% rename from GraphBLAS/Source/GB_ewise_fulla_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_ewise_fulla_jit.c index 68af762152..e385a01669 100644 --- a/GraphBLAS/Source/GB_ewise_fulla_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_ewise_fulla_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_EWISE_FULLA_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_ewise_fulln_jit.c b/GraphBLAS/Source/jit_wrappers/GB_ewise_fulln_jit.c similarity index 98% rename from GraphBLAS/Source/GB_ewise_fulln_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_ewise_fulln_jit.c index fc9c32b5fc..c4e036cf44 100644 --- a/GraphBLAS/Source/GB_ewise_fulln_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_ewise_fulln_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_EWISE_FULLN_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_reduce_to_scalar_jit.c b/GraphBLAS/Source/jit_wrappers/GB_reduce_to_scalar_jit.c similarity index 98% rename from GraphBLAS/Source/GB_reduce_to_scalar_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_reduce_to_scalar_jit.c index 991c48b0e9..e544f5d1c1 100644 --- a/GraphBLAS/Source/GB_reduce_to_scalar_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_reduce_to_scalar_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_REDUCE_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_rowscale_jit.c b/GraphBLAS/Source/jit_wrappers/GB_rowscale_jit.c similarity index 98% rename from GraphBLAS/Source/GB_rowscale_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_rowscale_jit.c index 3b7b08c117..2d11073765 100644 --- a/GraphBLAS/Source/GB_rowscale_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_rowscale_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_ROWSCALE_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_select_bitmap_jit.c b/GraphBLAS/Source/jit_wrappers/GB_select_bitmap_jit.c similarity index 98% rename from GraphBLAS/Source/GB_select_bitmap_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_select_bitmap_jit.c index 5011ecab06..aff835b136 100644 --- a/GraphBLAS/Source/GB_select_bitmap_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_select_bitmap_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_SELECT_BITMAP_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_select_phase1_jit.c b/GraphBLAS/Source/jit_wrappers/GB_select_phase1_jit.c similarity index 98% rename from GraphBLAS/Source/GB_select_phase1_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_select_phase1_jit.c index 483f878ab3..c812e9a1c6 100644 --- a/GraphBLAS/Source/GB_select_phase1_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_select_phase1_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_SELECT_PHASE1_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_select_phase2_jit.c b/GraphBLAS/Source/jit_wrappers/GB_select_phase2_jit.c similarity index 98% rename from GraphBLAS/Source/GB_select_phase2_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_select_phase2_jit.c index 419bf9044a..bd05baf6e7 100644 --- a/GraphBLAS/Source/GB_select_phase2_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_select_phase2_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_SELECT_PHASE2_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_split_bitmap_jit.c b/GraphBLAS/Source/jit_wrappers/GB_split_bitmap_jit.c similarity index 98% rename from GraphBLAS/Source/GB_split_bitmap_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_split_bitmap_jit.c index 904bb9cae4..22ab90fe5c 100644 --- a/GraphBLAS/Source/GB_split_bitmap_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_split_bitmap_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_SPLIT_BITMAP_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_split_full_jit.c b/GraphBLAS/Source/jit_wrappers/GB_split_full_jit.c similarity index 98% rename from GraphBLAS/Source/GB_split_full_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_split_full_jit.c index 5627037dad..baf9b388fd 100644 --- a/GraphBLAS/Source/GB_split_full_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_split_full_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_SPLIT_FULL_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_split_sparse_jit.c b/GraphBLAS/Source/jit_wrappers/GB_split_sparse_jit.c similarity index 98% rename from GraphBLAS/Source/GB_split_sparse_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_split_sparse_jit.c index a16681a325..cb6a1bb9f8 100644 --- a/GraphBLAS/Source/GB_split_sparse_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_split_sparse_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_SPLIT_SPARSE_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_subassign_jit.c b/GraphBLAS/Source/jit_wrappers/GB_subassign_jit.c similarity index 98% rename from GraphBLAS/Source/GB_subassign_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_subassign_jit.c index cc42194240..f728fa9888 100644 --- a/GraphBLAS/Source/GB_subassign_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_subassign_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_SUBASSIGN_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_transpose_bind1st_jit.c b/GraphBLAS/Source/jit_wrappers/GB_transpose_bind1st_jit.c similarity index 98% rename from GraphBLAS/Source/GB_transpose_bind1st_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_transpose_bind1st_jit.c index 2e2d217aa1..18f19d3f3a 100644 --- a/GraphBLAS/Source/GB_transpose_bind1st_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_transpose_bind1st_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_TRANS_BIND1ST_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_transpose_bind2nd_jit.c b/GraphBLAS/Source/jit_wrappers/GB_transpose_bind2nd_jit.c similarity index 98% rename from GraphBLAS/Source/GB_transpose_bind2nd_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_transpose_bind2nd_jit.c index 84402e0743..d9303fa51f 100644 --- a/GraphBLAS/Source/GB_transpose_bind2nd_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_transpose_bind2nd_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_TRANS_BIND2ND_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_transpose_unop_jit.c b/GraphBLAS/Source/jit_wrappers/GB_transpose_unop_jit.c similarity index 98% rename from GraphBLAS/Source/GB_transpose_unop_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_transpose_unop_jit.c index bc84c9117f..05a3bb985f 100644 --- a/GraphBLAS/Source/GB_transpose_unop_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_transpose_unop_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_TRANS_UNOP_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_union_jit.c b/GraphBLAS/Source/jit_wrappers/GB_union_jit.c similarity index 98% rename from GraphBLAS/Source/GB_union_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_union_jit.c index a937511342..eccb15d56e 100644 --- a/GraphBLAS/Source/GB_union_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_union_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_UNION_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_user_op_jit.c b/GraphBLAS/Source/jit_wrappers/GB_user_op_jit.c similarity index 98% rename from GraphBLAS/Source/GB_user_op_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_user_op_jit.c index e577a3c906..3817ae9a0e 100644 --- a/GraphBLAS/Source/GB_user_op_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_user_op_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_USER_OP_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_user_type_jit.c b/GraphBLAS/Source/jit_wrappers/GB_user_type_jit.c similarity index 98% rename from GraphBLAS/Source/GB_user_type_jit.c rename to GraphBLAS/Source/jit_wrappers/GB_user_type_jit.c index 0da1d0ab3f..ec340a3a4e 100644 --- a/GraphBLAS/Source/GB_user_type_jit.c +++ b/GraphBLAS/Source/jit_wrappers/GB_user_type_jit.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" typedef GB_JIT_KERNEL_USER_TYPE_PROTO ((*GB_jit_dl_function)) ; diff --git a/GraphBLAS/Source/GB_demacrofy_name.c b/GraphBLAS/Source/jitifyer/GB_demacrofy_name.c similarity index 99% rename from GraphBLAS/Source/GB_demacrofy_name.c rename to GraphBLAS/Source/jitifyer/GB_demacrofy_name.c index 78f6861aec..8357c0ba11 100644 --- a/GraphBLAS/Source/GB_demacrofy_name.c +++ b/GraphBLAS/Source/jitifyer/GB_demacrofy_name.c @@ -29,7 +29,7 @@ // The suffix is used only for user-defined types and operators. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" GrB_Info GB_demacrofy_name ( diff --git a/GraphBLAS/Source/GB_encodify_apply.c b/GraphBLAS/Source/jitifyer/GB_encodify_apply.c similarity index 98% rename from GraphBLAS/Source/GB_encodify_apply.c rename to GraphBLAS/Source/jitifyer/GB_encodify_apply.c index 0a587748c4..bd3221cd27 100644 --- a/GraphBLAS/Source/GB_encodify_apply.c +++ b/GraphBLAS/Source/jitifyer/GB_encodify_apply.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" uint64_t GB_encodify_apply // encode an apply problem ( diff --git a/GraphBLAS/Source/GB_encodify_assign.c b/GraphBLAS/Source/jitifyer/GB_encodify_assign.c similarity index 98% rename from GraphBLAS/Source/GB_encodify_assign.c rename to GraphBLAS/Source/jitifyer/GB_encodify_assign.c index 025340fd69..3879ff95ea 100644 --- a/GraphBLAS/Source/GB_encodify_assign.c +++ b/GraphBLAS/Source/jitifyer/GB_encodify_assign.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" uint64_t GB_encodify_assign // encode an assign problem ( diff --git a/GraphBLAS/Source/GB_encodify_build.c b/GraphBLAS/Source/jitifyer/GB_encodify_build.c similarity index 98% rename from GraphBLAS/Source/GB_encodify_build.c rename to GraphBLAS/Source/jitifyer/GB_encodify_build.c index 464568cdb2..3bc0a145d2 100644 --- a/GraphBLAS/Source/GB_encodify_build.c +++ b/GraphBLAS/Source/jitifyer/GB_encodify_build.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" uint64_t GB_encodify_build // encode an build problem ( diff --git a/GraphBLAS/Source/GB_encodify_ewise.c b/GraphBLAS/Source/jitifyer/GB_encodify_ewise.c similarity index 98% rename from GraphBLAS/Source/GB_encodify_ewise.c rename to GraphBLAS/Source/jitifyer/GB_encodify_ewise.c index d88b37ce3c..03a6f5385b 100644 --- a/GraphBLAS/Source/GB_encodify_ewise.c +++ b/GraphBLAS/Source/jitifyer/GB_encodify_ewise.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" uint64_t GB_encodify_ewise // encode an ewise problem ( diff --git a/GraphBLAS/Source/GB_encodify_mxm.c b/GraphBLAS/Source/jitifyer/GB_encodify_mxm.c similarity index 98% rename from GraphBLAS/Source/GB_encodify_mxm.c rename to GraphBLAS/Source/jitifyer/GB_encodify_mxm.c index b639941f1d..d6be0f223a 100644 --- a/GraphBLAS/Source/GB_encodify_mxm.c +++ b/GraphBLAS/Source/jitifyer/GB_encodify_mxm.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" uint64_t GB_encodify_mxm // encode a GrB_mxm problem ( diff --git a/GraphBLAS/Source/GB_encodify_reduce.c b/GraphBLAS/Source/jitifyer/GB_encodify_reduce.c similarity index 98% rename from GraphBLAS/Source/GB_encodify_reduce.c rename to GraphBLAS/Source/jitifyer/GB_encodify_reduce.c index 5112883246..79301d3a41 100644 --- a/GraphBLAS/Source/GB_encodify_reduce.c +++ b/GraphBLAS/Source/jitifyer/GB_encodify_reduce.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" uint64_t GB_encodify_reduce // encode a GrB_reduce problem ( diff --git a/GraphBLAS/Source/GB_encodify_select.c b/GraphBLAS/Source/jitifyer/GB_encodify_select.c similarity index 98% rename from GraphBLAS/Source/GB_encodify_select.c rename to GraphBLAS/Source/jitifyer/GB_encodify_select.c index 61517d03f0..4f180ddb7a 100644 --- a/GraphBLAS/Source/GB_encodify_select.c +++ b/GraphBLAS/Source/jitifyer/GB_encodify_select.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" uint64_t GB_encodify_select // encode an select problem ( diff --git a/GraphBLAS/Source/GB_encodify_user_op.c b/GraphBLAS/Source/jitifyer/GB_encodify_user_op.c similarity index 98% rename from GraphBLAS/Source/GB_encodify_user_op.c rename to GraphBLAS/Source/jitifyer/GB_encodify_user_op.c index a083337955..1bda7c7d93 100644 --- a/GraphBLAS/Source/GB_encodify_user_op.c +++ b/GraphBLAS/Source/jitifyer/GB_encodify_user_op.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" uint64_t GB_encodify_user_op // encode a user defined op ( diff --git a/GraphBLAS/Source/GB_encodify_user_type.c b/GraphBLAS/Source/jitifyer/GB_encodify_user_type.c similarity index 98% rename from GraphBLAS/Source/GB_encodify_user_type.c rename to GraphBLAS/Source/jitifyer/GB_encodify_user_type.c index c5bbdc0ed2..fc3835a15a 100644 --- a/GraphBLAS/Source/GB_encodify_user_type.c +++ b/GraphBLAS/Source/jitifyer/GB_encodify_user_type.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" uint64_t GB_encodify_user_type // encode a user defined type ( diff --git a/GraphBLAS/Source/GB_enumify_apply.c b/GraphBLAS/Source/jitifyer/GB_enumify_apply.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_apply.c rename to GraphBLAS/Source/jitifyer/GB_enumify_apply.c index 9c53ed333e..a7e15b11cd 100644 --- a/GraphBLAS/Source/GB_enumify_apply.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_apply.c @@ -12,7 +12,7 @@ // binary (that is handled as an ewise enumify). #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_apply // enumerate an apply or tranpose/apply problem ( diff --git a/GraphBLAS/Source/GB_enumify_assign.c b/GraphBLAS/Source/jitifyer/GB_enumify_assign.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_assign.c rename to GraphBLAS/Source/jitifyer/GB_enumify_assign.c index 1fa6760e25..f3883f6ac0 100644 --- a/GraphBLAS/Source/GB_enumify_assign.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_assign.c @@ -60,7 +60,7 @@ // GB_bitmap_assign_notM_noaccum_whole #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_assign // enumerate a GrB_assign problem ( diff --git a/GraphBLAS/Source/GB_enumify_binop.c b/GraphBLAS/Source/jitifyer/GB_enumify_binop.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_binop.c rename to GraphBLAS/Source/jitifyer/GB_enumify_binop.c index e89163df66..2ddf544d40 100644 --- a/GraphBLAS/Source/GB_enumify_binop.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_binop.c @@ -11,7 +11,7 @@ // ecodes 32 and up are not valid for use in a monoid; only 32:139 are in use. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_binop ( diff --git a/GraphBLAS/Source/GB_enumify_build.c b/GraphBLAS/Source/jitifyer/GB_enumify_build.c similarity index 98% rename from GraphBLAS/Source/GB_enumify_build.c rename to GraphBLAS/Source/jitifyer/GB_enumify_build.c index da082a6991..31e8577211 100644 --- a/GraphBLAS/Source/GB_enumify_build.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_build.c @@ -10,7 +10,7 @@ // Enumify an build operation. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_build // enumerate a GB_build problem ( diff --git a/GraphBLAS/Source/GB_enumify_cuda_atomic.c b/GraphBLAS/Source/jitifyer/GB_enumify_cuda_atomic.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_cuda_atomic.c rename to GraphBLAS/Source/jitifyer/GB_enumify_cuda_atomic.c index e10b97dc39..24830a8d2d 100644 --- a/GraphBLAS/Source/GB_enumify_cuda_atomic.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_cuda_atomic.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" bool GB_enumify_cuda_atomic ( diff --git a/GraphBLAS/Source/GB_enumify_ewise.c b/GraphBLAS/Source/jitifyer/GB_enumify_ewise.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_ewise.c rename to GraphBLAS/Source/jitifyer/GB_enumify_ewise.c index a57edc9ddf..d94d5fdabb 100644 --- a/GraphBLAS/Source/GB_enumify_ewise.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_ewise.c @@ -12,7 +12,7 @@ // bind 1st and 2nd, etc. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" // accum is not present. Kernels that use it would require accum to be // the same as the binary operator (but this may change in the future). diff --git a/GraphBLAS/Source/GB_enumify_identity.c b/GraphBLAS/Source/jitifyer/GB_enumify_identity.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_identity.c rename to GraphBLAS/Source/jitifyer/GB_enumify_identity.c index a2819aa58f..563b20fdb0 100644 --- a/GraphBLAS/Source/GB_enumify_identity.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_identity.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_identity ( diff --git a/GraphBLAS/Source/GB_enumify_mask.c b/GraphBLAS/Source/jitifyer/GB_enumify_mask.c similarity index 98% rename from GraphBLAS/Source/GB_enumify_mask.c rename to GraphBLAS/Source/jitifyer/GB_enumify_mask.c index 127b9c42e6..05f2e72374 100644 --- a/GraphBLAS/Source/GB_enumify_mask.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_mask.c @@ -11,7 +11,7 @@ // as structural masks. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_mask // return enum to define mask macros ( diff --git a/GraphBLAS/Source/GB_enumify_monoid.c b/GraphBLAS/Source/jitifyer/GB_enumify_monoid.c similarity index 96% rename from GraphBLAS/Source/GB_enumify_monoid.c rename to GraphBLAS/Source/jitifyer/GB_enumify_monoid.c index 40b6e56f74..dac8563363 100644 --- a/GraphBLAS/Source/GB_enumify_monoid.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_monoid.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_monoid // enumerate a monoid ( diff --git a/GraphBLAS/Source/GB_enumify_mxm.c b/GraphBLAS/Source/jitifyer/GB_enumify_mxm.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_mxm.c rename to GraphBLAS/Source/jitifyer/GB_enumify_mxm.c index 86a78e13c6..023c114c07 100644 --- a/GraphBLAS/Source/GB_enumify_mxm.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_mxm.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" // dot3: C=A'*B, no accum // saxpy diff --git a/GraphBLAS/Source/GB_enumify_reduce.c b/GraphBLAS/Source/jitifyer/GB_enumify_reduce.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_reduce.c rename to GraphBLAS/Source/jitifyer/GB_enumify_reduce.c index a1c773eba6..f39672bf66 100644 --- a/GraphBLAS/Source/GB_enumify_reduce.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_reduce.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" // Returns true if all types and operators are built-in. diff --git a/GraphBLAS/Source/GB_enumify_select.c b/GraphBLAS/Source/jitifyer/GB_enumify_select.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_select.c rename to GraphBLAS/Source/jitifyer/GB_enumify_select.c index 5167d9e7e7..f7878092ad 100644 --- a/GraphBLAS/Source/GB_enumify_select.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_select.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" // Currently, the mask M and the accum are not present, and C and A have the // same type, but these conditions may change in the future. diff --git a/GraphBLAS/Source/GB_enumify_sparsity.c b/GraphBLAS/Source/jitifyer/GB_enumify_sparsity.c similarity index 97% rename from GraphBLAS/Source/GB_enumify_sparsity.c rename to GraphBLAS/Source/jitifyer/GB_enumify_sparsity.c index d8e296e4e8..97c386c3d3 100644 --- a/GraphBLAS/Source/GB_enumify_sparsity.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_sparsity.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_sparsity // enumerate the sparsity structure of a matrix ( diff --git a/GraphBLAS/Source/GB_enumify_terminal.c b/GraphBLAS/Source/jitifyer/GB_enumify_terminal.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_terminal.c rename to GraphBLAS/Source/jitifyer/GB_enumify_terminal.c index 65ede5bc9f..f5fa56b7d0 100644 --- a/GraphBLAS/Source/GB_enumify_terminal.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_terminal.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_terminal // enumify the terminal value ( diff --git a/GraphBLAS/Source/GB_enumify_unop.c b/GraphBLAS/Source/jitifyer/GB_enumify_unop.c similarity index 99% rename from GraphBLAS/Source/GB_enumify_unop.c rename to GraphBLAS/Source/jitifyer/GB_enumify_unop.c index 460576426e..93999689cd 100644 --- a/GraphBLAS/Source/GB_enumify_unop.c +++ b/GraphBLAS/Source/jitifyer/GB_enumify_unop.c @@ -20,7 +20,7 @@ // void f (void *z, const void *x, uint64_t i, uint64_t j, const void *y) #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_enumify_unop // enumify a GrB_UnaryOp or GrB_IndexUnaryOp ( diff --git a/GraphBLAS/Source/GB_file.c b/GraphBLAS/Source/jitifyer/GB_file.c similarity index 99% rename from GraphBLAS/Source/GB_file.c rename to GraphBLAS/Source/jitifyer/GB_file.c index 4c55da31f7..a76d7c73db 100644 --- a/GraphBLAS/Source/GB_file.c +++ b/GraphBLAS/Source/jitifyer/GB_file.c @@ -20,7 +20,7 @@ // https://learn.microsoft.com/en-us/cpp/c-runtime-library/reference/unlock-file #include "GB.h" -#include "GB_file.h" +#include "jitifyer/GB_file.h" #ifndef NJIT diff --git a/GraphBLAS/Source/GB_file.h b/GraphBLAS/Source/jitifyer/GB_file.h similarity index 100% rename from GraphBLAS/Source/GB_file.h rename to GraphBLAS/Source/jitifyer/GB_file.h diff --git a/GraphBLAS/Source/GB_jitifyer.c b/GraphBLAS/Source/jitifyer/GB_jitifyer.c similarity index 91% rename from GraphBLAS/Source/GB_jitifyer.c rename to GraphBLAS/Source/jitifyer/GB_jitifyer.c index d430977e57..5a36a8888c 100644 --- a/GraphBLAS/Source/GB_jitifyer.c +++ b/GraphBLAS/Source/jitifyer/GB_jitifyer.c @@ -8,11 +8,11 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" #include "GB_config.h" -#include "GB_zstd.h" -#include "GB_JITpackage.h" -#include "GB_file.h" +#include "zstd_wrapper/GB_zstd.h" +#include "JITpackage/GB_JITpackage.h" +#include "jitifyer/GB_file.h" typedef GB_JIT_KERNEL_USER_OP_PROTO ((*GB_user_op_f)) ; typedef GB_JIT_KERNEL_USER_TYPE_PROTO ((*GB_user_type_f)) ; @@ -28,7 +28,12 @@ typedef GB_JIT_KERNEL_USER_TYPE_PROTO ((*GB_user_type_f)) ; // The strings are used to create filenames and JIT compilation commands. +#ifdef GBCOVER +// use a smaller JIT table size during test coverage +#define GB_JITIFIER_INITIAL_SIZE (1024) +#else #define GB_JITIFIER_INITIAL_SIZE (32*1024) +#endif static GB_jit_entry *GB_jit_table = NULL ; static int64_t GB_jit_table_size = 0 ; // always a power of 2 @@ -146,8 +151,8 @@ static void check_table (void) #define GB_MALLOC_PERSISTENT(X,siz) \ { \ X = GB_Global_persistent_malloc (siz) ; \ - printf ("persistent malloc (%4d): %p size %lu\n", /* MEMDUMP */ \ - __LINE__, X, siz) ; \ + printf ("persistent malloc (%4d): %p size %g\n", /* MEMDUMP */ \ + __LINE__, X, (double) siz) ; \ } #define GB_FREE_PERSISTENT(X) \ @@ -192,6 +197,7 @@ static void check_table (void) #define GB_COPY_STUFF(X,src) \ { \ + ASSERT (src != NULL) ; \ size_t len = strlen (src) ; \ GB_MALLOC_STUFF (X, len) ; \ strncpy (X, src, X ## _allocated) ; \ @@ -216,6 +222,54 @@ void GB_jitifyer_finalize (void) GB_FREE_STUFF (GB_jit_temp) ; } +//------------------------------------------------------------------------------ +// GB_jitifyer_sanitize +//------------------------------------------------------------------------------ + +// Replace invalid characters in a string with underscore. + +// Valid characters: letters, numbers, space, and four others (dot, dash, +// underscore, and slash). Backslash is valid but replaced with slash. +// All other invalid characters are replaced with underscore. + +void GB_jitifyer_sanitize (char *string, size_t len) +{ + for (int k = 0 ; k < len ; k++) + { + // check for the end of the string + if (string [k] == '\0') break ; + #ifdef _WIN32 + // check the colon for "C:...", only in the second character + if (k == 1 && string [k] == ':') continue ; + #endif + // replace backslash with forward slash + if (string [k] == '\\') + { + string [k] = '/' ; + continue ; + } + // replace other invalid characters with "_" + static char valid_character_set [ ] = + "abcdefghijklmnopqrstuvwxyz" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "0123456789 .-_/" ; + bool ok = false ; + for (char *s = valid_character_set ; *s != '\0' ; s++) + { + if (string [k] == *s) + { + ok = true ; + break ; + } + } + if (!ok) + { + // replace a bad character with an underscore + string [k] = '_' ; + } + } +} + //------------------------------------------------------------------------------ // GB_jitifyer_init: initialize the JIT folders, flags, etc //------------------------------------------------------------------------------ @@ -296,17 +350,14 @@ GrB_Info GB_jitifyer_init (void) GB_COPY_STUFF (GB_jit_cache_path, "") ; } - // replace backslash with forward slash - for (char *p = GB_jit_cache_path ; *p != '\0' ; p++) - { - if ((*p) == '\\') (*p) = '/' ; - } + // sanitize the cache path + GB_jitifyer_sanitize (GB_jit_cache_path, GB_jit_cache_path_allocated) ; //-------------------------------------------------------------------------- // initialize the remaining strings //-------------------------------------------------------------------------- - GB_COPY_STUFF (GB_jit_error_log, "") ; + GB_COPY_STUFF (GB_jit_error_log, "") ; GB_COPY_STUFF (GB_jit_C_compiler, GB_C_COMPILER) ; GB_COPY_STUFF (GB_jit_C_flags, GB_C_FLAGS) ; GB_COPY_STUFF (GB_jit_C_link_flags, GB_C_LINK_FLAGS) ; @@ -454,8 +505,7 @@ GrB_Info GB_jitifyer_init (void) #undef IS encoding->kcode = c ; encoding->code = scode ; - encoding->suffix_len = (suffix == NULL) ? 0 : - ((int32_t) strlen (suffix)) ; + encoding->suffix_len = (int32_t) GB_STRLEN (suffix) ; //---------------------------------------------------------------------- // get the hash of this PreJIT kernel @@ -471,7 +521,7 @@ GrB_Info GB_jitifyer_init (void) // time the kernel is run. uint64_t hash = 0 ; - char *ignored [5] ; + const char *ignored [5] ; int version [3] ; (void) dl_query (&hash, version, ignored, NULL, NULL, 0, 0) ; @@ -558,9 +608,15 @@ GrB_Info GB_jitifyer_establish_paths (GrB_Info error_condition) ok = ok && GB_jitifyer_path_256 ("lib") ; ok = ok && GB_jitifyer_path_256 ("lock") ; - // construct the src path + // construct the src path and its subfolders snprintf (GB_jit_temp, GB_jit_temp_allocated, "%s/src", GB_jit_cache_path) ; ok = ok && GB_file_mkdir (GB_jit_temp) ; + snprintf (GB_jit_temp, GB_jit_temp_allocated, "%s/src/template", + GB_jit_cache_path) ; + ok = ok && GB_file_mkdir (GB_jit_temp) ; + snprintf (GB_jit_temp, GB_jit_temp_allocated, "%s/src/include", + GB_jit_cache_path) ; + ok = ok && GB_file_mkdir (GB_jit_temp) ; // construct the tmp path snprintf (GB_jit_temp, GB_jit_temp_allocated, "%s/tmp", GB_jit_cache_path) ; @@ -637,6 +693,14 @@ GrB_Info GB_jitifyer_extract_JITpackage (GrB_Info error_condition) } } + //-------------------------------------------------------------------------- + // get the JITpackage + //-------------------------------------------------------------------------- + + int GB_JITpackage_nfiles = GB_JITpackage_nfiles_get ( ) ; + GB_JITpackage_index_struct *GB_JITpackage_index = + GB_JITpackage_index_get ( ) ; + //-------------------------------------------------------------------------- // allocate workspace for the largest uncompressed file //-------------------------------------------------------------------------- @@ -862,6 +926,8 @@ GrB_Info GB_jitifyer_set_cache_path_worker (const char *new_cache_path) GB_FREE_STUFF (GB_jit_cache_path) ; // allocate the new GB_jit_cache_path GB_COPY_STUFF (GB_jit_cache_path, new_cache_path) ; + // sanitize the cache path + GB_jitifyer_sanitize (GB_jit_cache_path, GB_jit_cache_path_allocated) ; // allocate workspace OK (GB_jitifyer_alloc_space ( )) ; // set the src path and make sure cache and src paths are accessible @@ -917,6 +983,8 @@ GrB_Info GB_jitifyer_set_error_log_worker (const char *new_error_log) GB_FREE_STUFF (GB_jit_error_log) ; // allocate the new GB_jit_error_log GB_COPY_STUFF (GB_jit_error_log, new_error_log) ; + // sanitize the error log + GB_jitifyer_sanitize (GB_jit_error_log, GB_jit_error_log_allocated) ; return (GB_jitifyer_alloc_space ( )) ; } @@ -1354,6 +1422,7 @@ GrB_Info GB_jitifyer_set_CUDA_preface_worker (const char *new_CUDA_preface) bool GB_jitifyer_query ( GB_jit_query_func dl_query, + const bool builtin, // true if method is all builtin uint64_t hash, // hash code for the kernel // operator and type definitions GrB_Semiring semiring, @@ -1370,7 +1439,7 @@ bool GB_jitifyer_query //-------------------------------------------------------------------------- int version [3] ; - char *library_defn [5] ; + const char *ldef [5] ; size_t zsize = 0 ; size_t tsize = 0 ; void *id = NULL ; @@ -1407,7 +1476,7 @@ bool GB_jitifyer_query //-------------------------------------------------------------------------- uint64_t hash2 = 0 ; - bool ok = dl_query (&hash2, version, library_defn, id, term, zsize, tsize) ; + bool ok = dl_query (&hash2, version, ldef, id, term, zsize, tsize) ; ok = ok && (version [0] == GxB_IMPLEMENTATION_MAJOR) && (version [1] == GxB_IMPLEMENTATION_MINOR) && (version [2] == GxB_IMPLEMENTATION_SUB) && @@ -1418,29 +1487,18 @@ bool GB_jitifyer_query //-------------------------------------------------------------------------- char *defn [5] ; - defn [0] = (op1 == NULL) ? NULL : op1->defn ; - defn [1] = (op2 == NULL) ? NULL : op2->defn ; - defn [2] = (type1 == NULL) ? NULL : type1->defn ; - defn [3] = (type2 == NULL) ? NULL : type2->defn ; - defn [4] = (type3 == NULL) ? NULL : type3->defn ; + defn [0] = (builtin || op1 == NULL) ? NULL : op1->defn ; + defn [1] = (builtin || op2 == NULL) ? NULL : op2->defn ; + defn [2] = (builtin || type1 == NULL) ? NULL : type1->defn ; + defn [3] = (builtin || type2 == NULL) ? NULL : type2->defn ; + defn [4] = (builtin || type3 == NULL) ? NULL : type3->defn ; for (int k = 0 ; k < 5 ; k++) - { - if ((defn [k] != NULL) != (library_defn [k] != NULL)) - { - // one is not NULL but the other is NULL - ok = false ; - } - else if (defn [k] != NULL) - { - // both definitions are present - // ensure the definition hasn't changed - ok = ok && (strcmp (defn [k], library_defn [k]) == 0) ; - } - else - { - // both definitions are NULL, so they match - } + { + // ensure the definition hasn't changed + ok = ok && (strcmp ( + ((defn [k] == NULL) ? "" : defn [k]), + ((ldef [k] == NULL) ? "" : ldef [k])) == 0) ; } return (ok) ; } @@ -1541,7 +1599,7 @@ GrB_Info GB_jitifyer_load #pragma omp critical (GB_jitifyer_worker) { - info = GB_jitifyer_worker (dl_function, family, kname, hash, + info = GB_jitifyer_load2_worker (dl_function, family, kname, hash, encoding, suffix, semiring, monoid, op, type1, type2, type3) ; } @@ -1549,10 +1607,10 @@ GrB_Info GB_jitifyer_load } //------------------------------------------------------------------------------ -// GB_jitifyer_worker: do the work for GB_jitifyer_load in a critical section +// GB_jitifyer_load2_worker: do the work for GB_jitifyer_load in a critical section //------------------------------------------------------------------------------ -GrB_Info GB_jitifyer_worker +GrB_Info GB_jitifyer_load2_worker ( // output: void **dl_function, // pointer to JIT kernel @@ -1591,8 +1649,9 @@ GrB_Info GB_jitifyer_worker int32_t nkernels = 0 ; GB_prejit (&nkernels, &Kernels, &Queries, &Names) ; GB_jit_query_func dl_query = (GB_jit_query_func) Queries [k1] ; - bool ok = GB_jitifyer_query (dl_query, hash, semiring, monoid, op, - type1, type2, type3) ; + bool builtin = (encoding->suffix_len == 0) ; + bool ok = GB_jitifyer_query (dl_query, builtin, hash, semiring, + monoid, op, type1, type2, type3) ; if (ok) { // PreJIT kernel is fine; flag it as checked by flipping @@ -1811,6 +1870,7 @@ GrB_Info GB_jitifyer_load_worker snprintf (GB_jit_temp, GB_jit_temp_allocated, "%s/lib/%02x/%s%s%s", GB_jit_cache_path, bucket, GB_LIB_PREFIX, kernel_name, GB_LIB_SUFFIX) ; void *dl_handle = GB_file_dlopen (GB_jit_temp) ; + GB_jit_kcode kcode = encoding->kcode ; //-------------------------------------------------------------------------- // check if the kernel was found, but needs to be compiled anyway @@ -1824,8 +1884,9 @@ GrB_Info GB_jitifyer_load_worker bool ok = (dl_query != NULL) ; if (ok) { - ok = GB_jitifyer_query (dl_query, hash, semiring, monoid, op, - type1, type2, type3) ; + bool builtin = (encoding->suffix_len == 0) ; + ok = GB_jitifyer_query (dl_query, builtin, hash, semiring, + monoid, op, type1, type2, type3) ; } if (!ok) { @@ -1860,7 +1921,6 @@ GrB_Info GB_jitifyer_load_worker //---------------------------------------------------------------------- GBURBLE ("(jit: compile and load) ") ; - GB_jit_kcode kcode = encoding->kcode ; const char *kernel_filetype = (kcode < GB_JIT_CUDA_KERNEL) ? "c" : "cu" ; @@ -1881,7 +1941,7 @@ GrB_Info GB_jitifyer_load_worker "#define GB_jit_kernel %s\n" "#define GB_jit_query %s_query\n" "#endif\n" - "#include \"GB_jit_kernel_%s.%s\"\n", + "#include \"template/GB_jit_kernel_%s.%s\"\n", kernel_name, kernel_name, kname, kernel_filetype) ; @@ -1930,13 +1990,20 @@ GrB_Info GB_jitifyer_load_worker GB_jit_control = GxB_JIT_LOAD ; // remove the compiled library remove (GB_jit_temp) ; - return (GrB_NO_VALUE) ; + return (GrB_NO_VALUE) ; // FIXME: use another error code? } } else { - GBURBLE ("(jit: load) ") ; + if (kcode >= GB_JIT_CUDA_KERNEL) + { + GBURBLE ("(jit: cuda load) ") ; + } + else + { + GBURBLE ("(jit: cpu load) ") ; + } } //-------------------------------------------------------------------------- @@ -1953,7 +2020,7 @@ GrB_Info GB_jitifyer_load_worker GB_jit_control = GxB_JIT_RUN ; // remove the compiled library remove (GB_jit_temp) ; - return (GrB_NO_VALUE) ; + return (GrB_NO_VALUE) ; // FIXME: use another error code? } // insert the new kernel into the hash table @@ -2251,7 +2318,7 @@ void GB_jitifyer_table_free (bool freeall) // NOTE: this call to system(...) *cannot* be sanitized; CodeQL flags calls to // GB_jitifyer_command as security issues, but this is intentional. The JIT -// allows the end user to create arbitary user-defined types and operators, +// allows the end user to create arbitrary user-defined types and operators, // which GraphBLAS then injects into C source code of a JIT kernel created at // run time. The end user can also specify an arbitrary compiler to compile // JIT kernels. This code injection is intentional, and required for the JIT. @@ -2264,7 +2331,9 @@ void GB_jitifyer_table_free (bool freeall) static void GB_jitifyer_command (char *command) { + #ifndef NJIT int result = system (command) ; + #endif } //------------------------------------------------------------------------------ @@ -2288,7 +2357,9 @@ void GB_jitifyer_cmake_compile (char *kernel_name, uint64_t hash) uint32_t bucket = hash & 0xFF ; GBURBLE ("(jit: %s)\n", "cmake") ; char *burble_stdout = GB_Global_burble_get ( ) ? "" : GB_DEV_NULL ; - char *err_redirect = (strlen (GB_jit_error_log) > 0) ? " 2>> " : "" ; + bool have_log = (GB_STRLEN (GB_jit_error_log) > 0) ; + char *err_redirect = have_log ? " 2>> " : " 2>&1 " ; + char *log_quote = have_log ? "\"" : "" ; #if defined (__MINGW32__) #define GB_SH_C "sh -c " @@ -2298,9 +2369,10 @@ void GB_jitifyer_cmake_compile (char *kernel_name, uint64_t hash) // remove any prior build folder for this kernel, and all its contents snprintf (GB_jit_temp, GB_jit_temp_allocated, - GB_SH_C "cmake -E remove_directory \"" GB_BLD_DIR "\" %s %s %s", + GB_SH_C "cmake -E remove_directory \"" GB_BLD_DIR "\" %s %s %s%s%s", GB_jit_cache_path, hash, // build path - burble_stdout, err_redirect, GB_jit_error_log) ; + burble_stdout, err_redirect, + log_quote, GB_jit_error_log, log_quote) ; GB_jitifyer_command (GB_jit_temp) ; // OK: see security comment above // create the build folder for this kernel @@ -2316,9 +2388,12 @@ void GB_jitifyer_cmake_compile (char *kernel_name, uint64_t hash) fprintf (fp, "cmake_minimum_required ( VERSION 3.13 )\n" // end user needs cmake 3.13 "project ( GBjit LANGUAGES C )\n" - "include_directories ( \"%s/src\"%s)\n" + "include_directories ( \"%s/src\" \"%s/src/template\"" + " \"%s/src/include\" %s)\n" "add_compile_definitions ( GB_JIT_RUNTIME )\n", - GB_jit_cache_path, // include directories: cache/src + GB_jit_cache_path, // include: cache/src + GB_jit_cache_path, // include: cache/src/template + GB_jit_cache_path, // include: cache/src/include ((strlen (GB_OMP_INC_DIRS) == 0) ? " " : " \"" GB_OMP_INC_DIRS "\" ")) ; // print the C flags, but escape any double quote characters fprintf (fp, "set ( CMAKE_C_FLAGS \"") ; @@ -2332,7 +2407,7 @@ void GB_jitifyer_cmake_compile (char *kernel_name, uint64_t hash) "add_library ( %s SHARED \"%s/c/%02x/%s.c\" )\n", kernel_name, // target name for add_library command GB_jit_cache_path, bucket, kernel_name) ; // source file for add_library - if (strlen (GB_jit_C_cmake_libs) > 0) + if (GB_STRLEN (GB_jit_C_cmake_libs) > 0) { fprintf (fp, "target_link_libraries ( %s PUBLIC %s )\n", @@ -2357,40 +2432,41 @@ void GB_jitifyer_cmake_compile (char *kernel_name, uint64_t hash) // generate the build system for this kernel snprintf (GB_jit_temp, GB_jit_temp_allocated, GB_SH_C "cmake -S \"" GB_BLD_DIR "\" -B \"" GB_BLD_DIR "\"" - " -DCMAKE_C_COMPILER=\"%s\" %s %s %s", + " -DCMAKE_C_COMPILER=\"%s\" %s %s %s%s%s", GB_jit_cache_path, hash, // -S source path GB_jit_cache_path, hash, // -B build path GB_jit_C_compiler, // C compiler to use - burble_stdout, err_redirect, GB_jit_error_log) ; + burble_stdout, err_redirect, log_quote, GB_jit_error_log, log_quote) ; GB_jitifyer_command (GB_jit_temp) ; // OK: see security comment above // compile the library for this kernel snprintf (GB_jit_temp, GB_jit_temp_allocated, - GB_SH_C "cmake --build \"" GB_BLD_DIR "\" --config Release %s %s %s", + GB_SH_C "cmake --build \"" GB_BLD_DIR + "\" --config Release %s %s %s%s%s", // can add "--verbose" here too GB_jit_cache_path, hash, // build path - burble_stdout, err_redirect, GB_jit_error_log) ; + burble_stdout, err_redirect, log_quote, GB_jit_error_log, log_quote) ; GB_jitifyer_command (GB_jit_temp) ; // OK: see security comment above // install the library snprintf (GB_jit_temp, GB_jit_temp_allocated, - GB_SH_C "cmake --install \"" GB_BLD_DIR "\" %s %s %s", + GB_SH_C "cmake --install \"" GB_BLD_DIR "\" %s %s %s%s%s", GB_jit_cache_path, hash, // build path - burble_stdout, err_redirect, GB_jit_error_log) ; + burble_stdout, err_redirect, log_quote, GB_jit_error_log, log_quote) ; GB_jitifyer_command (GB_jit_temp) ; // OK: see security comment above // remove the build folder and all its contents snprintf (GB_jit_temp, GB_jit_temp_allocated, - GB_SH_C "cmake -E remove_directory \"" GB_BLD_DIR "\" %s %s %s", + GB_SH_C "cmake -E remove_directory \"" GB_BLD_DIR "\" %s %s %s%s%s", GB_jit_cache_path, hash, // build path - burble_stdout, err_redirect, GB_jit_error_log) ; + burble_stdout, err_redirect, log_quote, GB_jit_error_log, log_quote) ; GB_jitifyer_command (GB_jit_temp) ; // OK: see security comment above #endif } //------------------------------------------------------------------------------ -// GB_jitifyer_nvcc_compile: compile a CUDA kernel with NVRTC +// GB_jitifyer_nvcc_compile: compile a CUDA kernel with nvcc //------------------------------------------------------------------------------ // Compiles a CUDA JIT kernel in a *.cu file, containing host code that @@ -2412,7 +2488,9 @@ void GB_jitifyer_nvcc_compile (char *kernel_name, uint32_t bucket) #if defined ( GRAPHBLAS_HAS_CUDA ) && !defined ( NJIT ) char *burble_stdout = GB_Global_burble_get ( ) ? "" : GB_DEV_NULL ; - char *err_redirect = (strlen (GB_jit_error_log) > 0) ? " 2>> " : "" ; + bool have_log = (GB_STRLEN (GB_jit_error_log) > 0) ; + char *err_redirect = have_log ? " 2>> " : " 2>&1 " ; + char *log_quote = have_log ? "'" : "" ; GBURBLE ("(jit compiling cuda with nvcc: %s/c/%02x/%s.cu) ", GB_jit_cache_path, bucket, kernel_name) ; @@ -2421,34 +2499,45 @@ void GB_jitifyer_nvcc_compile (char *kernel_name, uint32_t bucket) // compile: "sh -c \"" // execute with POSIX shell + // FIXME: use GB_CUDA_COMPILER here: "nvcc " // compiler command "-forward-unknown-to-host-compiler " "-DGB_JIT_RUNTIME=1 " // nvcc flags - "-I/usr/local/cuda/include -std=c++17 -arch=sm_60 -fPIC " - "-I%s/src " // include source directory - "-o %s/c/%02x/%s%s " // *.o output file - "-c %s/c/%02x/%s.cu " // *.cu input file + // FIXME: add GB_CUDA_INC here: + "-I/usr/local/cuda/include -std=c++17 " + // FIXME: use GB_CUDA_ARCHITECTURES here: + " -arch=sm_60 " + " -fPIC " + // FIXME: add GB_CUDA_FLAGS here: + " -O3 " // HACK FIXME (for CUDA) + "-I'%s/src' " // include source directory + "-I'%s/src/template' " + "-I'%s/src/include' " + "-o '%s/c/%02x/%s%s' " // *.o output file + "-c '%s/c/%02x/%s.cu' " // *.cu input file "%s " // burble stdout - "%s %s ; " // error log file + "%s %s%s%s ; " // error log file // link: "nvcc " // compiler "-DGB_JIT_RUNTIME=1 " // nvcc flags "-I/usr/local/cuda/include -std=c++17 -arch=sm_60 " " -shared " - "-o %s/lib/%02x/%s%s%s " // lib*.so output file - "%s/c/%02x/%s%s " // *.o input file + "-o '%s/lib/%02x/%s%s%s' " // lib*.so output file + "'%s/c/%02x/%s%s' " // *.o input file " -cudart shared " // "%s " // libraries to link with (any?) "%s " // burble stdout - "%s %s\"", // error log file + "%s %s%s%s\"", // error log file // compile: - GB_jit_cache_path, // include source directory (cache/src) + GB_jit_cache_path, // include cache/src + GB_jit_cache_path, // include cache/src/template + GB_jit_cache_path, // include cache/src/include GB_jit_cache_path, bucket, kernel_name, GB_OBJ_SUFFIX, // *.o output file GB_jit_cache_path, bucket, kernel_name, // *.cu input file burble_stdout, // burble stdout - err_redirect, GB_jit_error_log, // error log file + err_redirect, log_quote, GB_jit_error_log, log_quote, // error log file // link: GB_jit_cache_path, bucket, @@ -2456,7 +2545,7 @@ void GB_jitifyer_nvcc_compile (char *kernel_name, uint32_t bucket) GB_jit_cache_path, bucket, kernel_name, GB_OBJ_SUFFIX, // *.o input file // GB_jit_C_libraries // libraries to link with burble_stdout, // burble stdout - err_redirect, GB_jit_error_log) ; // error log file + err_redirect, log_quote, GB_jit_error_log, log_quote) ; // error log file // compile the library and return result GBURBLE ("\n(jit: %s) ", GB_jit_temp) ; @@ -2489,7 +2578,9 @@ void GB_jitifyer_direct_compile (char *kernel_name, uint32_t bucket) #ifndef NJIT char *burble_stdout = GB_Global_burble_get ( ) ? "" : GB_DEV_NULL ; - char *err_redirect = (strlen (GB_jit_error_log) > 0) ? " 2>> " : "" ; + bool have_log = (GB_STRLEN (GB_jit_error_log) > 0) ; + char *err_redirect = have_log ? " 2>> " : " 2>&1 " ; + char *log_quote = have_log ? "'" : "" ; snprintf (GB_jit_temp, GB_jit_temp_allocated, @@ -2497,32 +2588,36 @@ void GB_jitifyer_direct_compile (char *kernel_name, uint32_t bucket) "sh -c \"" // execute with POSIX shell "%s " // compiler command "-DGB_JIT_RUNTIME=1 %s " // C flags - "-I%s/src " // include source directory + "-I'%s/src' " // include source directory + "-I'%s/src/template' " + "-I'%s/src/include' " "%s " // openmp include directories - "-o %s/c/%02x/%s%s " // *.o output file - "-c %s/c/%02x/%s.c " // *.c input file + "-o '%s/c/%02x/%s%s' " // *.o output file + "-c '%s/c/%02x/%s.c' " // *.c input file "%s " // burble stdout - "%s %s ; " // error log file + "%s %s%s%s ; " // error log file // link: "%s " // C compiler "%s " // C flags "%s " // C link flags - "-o %s/lib/%02x/%s%s%s " // lib*.so output file - "%s/c/%02x/%s%s " // *.o input file + "-o '%s/lib/%02x/%s%s%s' " // lib*.so output file + "'%s/c/%02x/%s%s' " // *.o input file "%s " // libraries to link with "%s " // burble stdout - "%s %s\"", // error log file + "%s %s%s%s\"", // error log file // compile: GB_jit_C_compiler, // C compiler GB_jit_C_flags, // C flags - GB_jit_cache_path, // include source directory (cache/src) + GB_jit_cache_path, // include cache/src + GB_jit_cache_path, // include cache/src/template + GB_jit_cache_path, // include cache/src/include GB_OMP_INC, // openmp include GB_jit_cache_path, bucket, kernel_name, GB_OBJ_SUFFIX, // *.o output file GB_jit_cache_path, bucket, kernel_name, // *.c input file burble_stdout, // burble stdout - err_redirect, GB_jit_error_log, // error log file + err_redirect, log_quote, GB_jit_error_log, log_quote, // error log file // link: GB_jit_C_compiler, // C compiler @@ -2533,7 +2628,7 @@ void GB_jitifyer_direct_compile (char *kernel_name, uint32_t bucket) GB_jit_cache_path, bucket, kernel_name, GB_OBJ_SUFFIX, // *.o input file GB_jit_C_libraries, // libraries to link with burble_stdout, // burble stdout - err_redirect, GB_jit_error_log) ; // error log file + err_redirect, log_quote, GB_jit_error_log, log_quote) ; // error log file // compile the library and return result GBURBLE ("(jit: %s) ", GB_jit_temp) ; diff --git a/GraphBLAS/Source/GB_jitifyer.h b/GraphBLAS/Source/jitifyer/GB_jitifyer.h similarity index 95% rename from GraphBLAS/Source/GB_jitifyer.h rename to GraphBLAS/Source/jitifyer/GB_jitifyer.h index cd75830a2b..cbdb1b2bab 100644 --- a/GraphBLAS/Source/GB_jitifyer.h +++ b/GraphBLAS/Source/jitifyer/GB_jitifyer.h @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GB_jitifyer.h: definitions for the CPU jitifyer +// GB_jitifyer.h: definitions for the CPU and CUDA jitifyer //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. @@ -10,7 +10,7 @@ #ifndef GB_JITIFYER_H #define GB_JITIFYER_H -#include "GB_jit_kernel_proto.h" +#include "jit_kernels/include/GB_jit_kernel_proto.h" //------------------------------------------------------------------------------ // get list of PreJIT kernels: function pointers and names @@ -165,7 +165,7 @@ typedef enum GB_JIT_KERNEL_KRONER = 83, // GB_kroner // future:: utilities: - GB_JIT_KERNEL_CHECKISO = 84, // GB_check_if_iso + GB_JIT_KERNEL_CHECKISO = 84, // GB_all_entries_are_iso GB_JIT_KERNEL_CONVERTBITMAP = 85, // GB_convert_bitmap_worker GB_JIT_KERNEL_EXPANDISO = 86, // GB_expand_iso GB_JIT_KERNEL_SORT = 87, // GB_sort @@ -184,9 +184,18 @@ typedef enum GB_JIT_CUDA_KERNEL_AXB_DOT3 = 1004, // GB_cuda_AxB_dot3 // ewise methods: - // ... - GB_JIT_CUDA_KERNEL_ROWSCALE = 1011, - // ... + GB_JIT_CUDA_KERNEL_COLSCALE = 1011, + GB_JIT_CUDA_KERNEL_ROWSCALE = 1012, + GB_JIT_CUDA_KERNEL_APPLYBIND1 = 1013, + GB_JIT_CUDA_KERNEL_APPLYBIND2 = 1014, + //... (up to 15 ewise methods?) + + // apply methods: + GB_JIT_CUDA_KERNEL_APPLYUNOP = 1026, + //... (up to 9 apply methods?) + + // select methods: + GB_JIT_CUDA_KERNEL_SELECT_BITMAP = 1035 } GB_jit_kcode ; @@ -250,7 +259,7 @@ GrB_Info GB_jitifyer_load GrB_Type type3 ) ; -GrB_Info GB_jitifyer_worker +GrB_Info GB_jitifyer_load2_worker ( // output: void **dl_function, // pointer to JIT kernel @@ -333,6 +342,7 @@ typedef GB_JIT_QUERY_PROTO ((*GB_jit_query_func)) ; bool GB_jitifyer_query ( GB_jit_query_func dl_query, + const bool builtin, // true if method is all builtin uint64_t hash, // hash code for the kernel // operator and type definitions GrB_Semiring semiring, @@ -403,5 +413,7 @@ GrB_Info GB_jitifyer_set_error_log_worker (const char *new_error_log) ; bool GB_jitifyer_get_use_cmake (void) ; void GB_jitifyer_set_use_cmake (bool use_cmake) ; +void GB_jitifyer_sanitize (char *string, size_t len) ; + #endif diff --git a/GraphBLAS/Source/GB_macrofy_apply.c b/GraphBLAS/Source/jitifyer/GB_macrofy_apply.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_apply.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_apply.c index 73b58213f2..394f831feb 100644 --- a/GraphBLAS/Source/GB_macrofy_apply.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_apply.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_apply // construct all macros for GrB_apply ( @@ -178,6 +178,6 @@ void GB_macrofy_apply // construct all macros for GrB_apply // include the final default definitions //-------------------------------------------------------------------------- - fprintf (fp, "\n#include \"GB_apply_shared_definitions.h\"\n") ; + fprintf (fp, "\n#include \"include/GB_apply_shared_definitions.h\"\n") ; } diff --git a/GraphBLAS/Source/GB_macrofy_assign.c b/GraphBLAS/Source/jitifyer/GB_macrofy_assign.c similarity index 99% rename from GraphBLAS/Source/GB_macrofy_assign.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_assign.c index 4517fa023c..2ab7ebae83 100644 --- a/GraphBLAS/Source/GB_macrofy_assign.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_assign.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_assign // construct all macros for GrB_assign ( @@ -375,6 +375,6 @@ void GB_macrofy_assign // construct all macros for GrB_assign // include the final default definitions //-------------------------------------------------------------------------- - fprintf (fp, "\n#include \"GB_assign_shared_definitions.h\"\n") ; + fprintf (fp, "\n#include \"include/GB_assign_shared_definitions.h\"\n") ; } diff --git a/GraphBLAS/Source/GB_macrofy_binop.c b/GraphBLAS/Source/jitifyer/GB_macrofy_binop.c similarity index 99% rename from GraphBLAS/Source/GB_macrofy_binop.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_binop.c index 08cb51d91a..abaa771106 100644 --- a/GraphBLAS/Source/GB_macrofy_binop.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_binop.c @@ -8,8 +8,8 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_math.h" -#include "GB_stringify.h" +#include "math/GB_math.h" +#include "jitifyer/GB_stringify.h" #include void GB_macrofy_binop diff --git a/GraphBLAS/Source/GB_macrofy_build.c b/GraphBLAS/Source/jitifyer/GB_macrofy_build.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_build.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_build.c index 2f3b481283..2747843de5 100644 --- a/GraphBLAS/Source/GB_macrofy_build.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_build.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_build // construct all macros for GB_build ( @@ -208,6 +208,6 @@ void GB_macrofy_build // construct all macros for GB_build // include the final default definitions //-------------------------------------------------------------------------- - fprintf (fp, "\n#include \"GB_kernel_shared_definitions.h\"\n") ; + fprintf (fp, "\n#include \"include/GB_kernel_shared_definitions.h\"\n") ; } diff --git a/GraphBLAS/Source/GB_macrofy_bytes.c b/GraphBLAS/Source/jitifyer/GB_macrofy_bytes.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_bytes.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_bytes.c index 608f95510e..fb377e5e6d 100644 --- a/GraphBLAS/Source/GB_macrofy_bytes.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_bytes.c @@ -10,7 +10,7 @@ // When the macro is used, sizeof (ztype) must be the same as nbytes. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_bytes ( diff --git a/GraphBLAS/Source/GB_macrofy_cast_copy.c b/GraphBLAS/Source/jitifyer/GB_macrofy_cast_copy.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_cast_copy.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_cast_copy.c index def9890b0a..9ac2bbe845 100644 --- a/GraphBLAS/Source/GB_macrofy_cast_copy.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_cast_copy.c @@ -16,7 +16,7 @@ // an empty macro is created. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_cast_copy ( diff --git a/GraphBLAS/Source/GB_macrofy_cast_expression.c b/GraphBLAS/Source/jitifyer/GB_macrofy_cast_expression.c similarity index 99% rename from GraphBLAS/Source/GB_macrofy_cast_expression.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_cast_expression.c index 001f26c9cf..af5164f856 100644 --- a/GraphBLAS/Source/GB_macrofy_cast_expression.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_cast_expression.c @@ -10,8 +10,8 @@ // Return a typecast expression to cast from xtype to ztype. #include "GB.h" -#include "GB_math.h" -#include "GB_stringify.h" +#include "math/GB_math.h" +#include "jitifyer/GB_stringify.h" const char *GB_macrofy_cast_expression // return cast expression ( diff --git a/GraphBLAS/Source/GB_macrofy_cast_input.c b/GraphBLAS/Source/jitifyer/GB_macrofy_cast_input.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_cast_input.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_cast_input.c index a7c8f9981d..c78b73fdb4 100644 --- a/GraphBLAS/Source/GB_macrofy_cast_input.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_cast_input.c @@ -39,7 +39,7 @@ // This method is very similar to GB_macrofy_cast_output. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_cast_input ( diff --git a/GraphBLAS/Source/GB_macrofy_cast_output.c b/GraphBLAS/Source/jitifyer/GB_macrofy_cast_output.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_cast_output.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_cast_output.c index 68990080c7..a8d36b6000 100644 --- a/GraphBLAS/Source/GB_macrofy_cast_output.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_cast_output.c @@ -20,7 +20,7 @@ // This method is very similar to GB_macrofy_cast_input. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_cast_output ( diff --git a/GraphBLAS/Source/GB_macrofy_defn.c b/GraphBLAS/Source/jitifyer/GB_macrofy_defn.c similarity index 97% rename from GraphBLAS/Source/GB_macrofy_defn.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_defn.c index 6df20096c7..f246ee1cf6 100644 --- a/GraphBLAS/Source/GB_macrofy_defn.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_defn.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_defn // construct a defn for an operator ( diff --git a/GraphBLAS/Source/GB_macrofy_ewise.c b/GraphBLAS/Source/jitifyer/GB_macrofy_ewise.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_ewise.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_ewise.c index 95168262a5..a9fbd072a1 100644 --- a/GraphBLAS/Source/GB_macrofy_ewise.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_ewise.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_ewise // construct all macros for GrB_eWise ( @@ -208,6 +208,6 @@ void GB_macrofy_ewise // construct all macros for GrB_eWise // include the final default definitions //-------------------------------------------------------------------------- - fprintf (fp, "\n#include \"GB_ewise_shared_definitions.h\"\n") ; + fprintf (fp, "\n#include \"include/GB_ewise_shared_definitions.h\"\n") ; } diff --git a/GraphBLAS/Source/GB_macrofy_family.c b/GraphBLAS/Source/jitifyer/GB_macrofy_family.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_family.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_family.c index f3ec25dcb9..50631bffc3 100644 --- a/GraphBLAS/Source/GB_macrofy_family.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_family.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_family ( diff --git a/GraphBLAS/Source/GB_macrofy_id.c b/GraphBLAS/Source/jitifyer/GB_macrofy_id.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_id.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_id.c index d03250eacd..fc8520dc36 100644 --- a/GraphBLAS/Source/GB_macrofy_id.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_id.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" const char *GB_macrofy_id // return string encoding the value ( diff --git a/GraphBLAS/Source/GB_macrofy_input.c b/GraphBLAS/Source/jitifyer/GB_macrofy_input.c similarity index 99% rename from GraphBLAS/Source/GB_macrofy_input.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_input.c index c5fef02899..45679089f9 100644 --- a/GraphBLAS/Source/GB_macrofy_input.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_input.c @@ -10,7 +10,7 @@ // The macro, typically called GB_GETA or GB_GETB, also does typecasting. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_input ( diff --git a/GraphBLAS/Source/GB_macrofy_mask.c b/GraphBLAS/Source/jitifyer/GB_macrofy_mask.c similarity index 99% rename from GraphBLAS/Source/GB_macrofy_mask.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_mask.c index 1011275485..563cc6bfe0 100644 --- a/GraphBLAS/Source/GB_macrofy_mask.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_mask.c @@ -11,7 +11,7 @@ // as structural masks. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_mask ( diff --git a/GraphBLAS/Source/GB_macrofy_monoid.c b/GraphBLAS/Source/jitifyer/GB_macrofy_monoid.c similarity index 97% rename from GraphBLAS/Source/GB_macrofy_monoid.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_monoid.c index a4fe05120b..d4716c1c04 100644 --- a/GraphBLAS/Source/GB_macrofy_monoid.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_monoid.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_monoid // construct the macros for a monoid ( @@ -164,9 +164,9 @@ void GB_macrofy_monoid // construct the macros for a monoid // determine the OpenMP #pragma omp reduction(redop:z) for this monoid //-------------------------------------------------------------------------- - // If not #define'd, the default in GB_monoid_shared_definitions.h is no - // #pragma. The pragma is empty if the monoid is terminal, since the simd - // reduction does not work with a 'break' in the loop. + // If not #define'd, omp/include/GB_monoid_shared_definitions.h defaults + // to no #pragma. The pragma is empty if the monoid is terminal, since + // the simd reduction does not work with a 'break' in the loop. bool is_complex = (zcode == GB_FC32_code || zcode == GB_FC64_code) ; @@ -253,7 +253,7 @@ void GB_macrofy_monoid // construct the macros for a monoid if (ztype_ignore_overflow && !is_any_monoid) { // if the monoid is ANY, this is set to 1 by - // GB_monoid_shared_definitions.h, so skip it here + // monoid/include/GB_monoid_shared_definitions.h, so skip it here fprintf (fp, "#define GB_Z_IGNORE_OVERFLOW 1\n") ; } @@ -302,7 +302,9 @@ void GB_macrofy_monoid // construct the macros for a monoid } // atomic write for the ztype: if GB_Z_ATOMIC_BITS is defined, then - // GB_Z_HAS_ATOMIC_WRITE is #defined as 1 by GB_kernel_shared_definitions.h + // GB_Z_HAS_ATOMIC_WRITE is #defined as 1 by + // omp/include/GB_kernel_shared_definitions.h + if (has_atomic_write && (zcode == GB_FC32_code || zcode == GB_UDT_code)) { // user-defined types of size 1, 2, 4, or 8 bytes can be written diff --git a/GraphBLAS/Source/GB_macrofy_multadd.c b/GraphBLAS/Source/jitifyer/GB_macrofy_multadd.c similarity index 97% rename from GraphBLAS/Source/GB_macrofy_multadd.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_multadd.c index f739b65752..bb7549c1ed 100644 --- a/GraphBLAS/Source/GB_macrofy_multadd.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_multadd.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_multadd ( diff --git a/GraphBLAS/Source/GB_macrofy_mxm.c b/GraphBLAS/Source/jitifyer/GB_macrofy_mxm.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_mxm.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_mxm.c index 919025e27c..eaca02cfa3 100644 --- a/GraphBLAS/Source/GB_macrofy_mxm.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_mxm.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" //------------------------------------------------------------------------------ // GB_macrofy_mxm: create all macros for GrB_mxm @@ -125,6 +125,8 @@ void GB_macrofy_mxm // construct all macros for GrB_mxm fprintf (fp, "\n// multiplicative operator%s:\n", flipxy ? " (flipped)" : "") ; const char *f_expr ; + GB_macrofy_type (fp, "X", "_", (xcode == 0) ? "GB_void" : xtype->name) ; + GB_macrofy_type (fp, "Y", "_", (ycode == 0) ? "GB_void" : ytype->name) ; GB_macrofy_binop (fp, "GB_MULT", flipxy, false, false, mult_ecode, C_iso, mult, &f_expr, NULL, NULL) ; @@ -372,6 +374,6 @@ void GB_macrofy_mxm // construct all macros for GrB_mxm // include the final default definitions //-------------------------------------------------------------------------- - fprintf (fp, "\n#include \"GB_mxm_shared_definitions.h\"\n") ; + fprintf (fp, "\n#include \"include/GB_mxm_shared_definitions.h\"\n") ; } diff --git a/GraphBLAS/Source/GB_macrofy_name.c b/GraphBLAS/Source/jitifyer/GB_macrofy_name.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_name.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_name.c index 44e806d8af..beb03963e0 100644 --- a/GraphBLAS/Source/GB_macrofy_name.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_name.c @@ -22,7 +22,7 @@ // The suffix is used only for user-defined types and operators. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_name ( diff --git a/GraphBLAS/Source/GB_macrofy_nvals.c b/GraphBLAS/Source/jitifyer/GB_macrofy_nvals.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_nvals.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_nvals.c index ba1494690c..638e3dc44d 100644 --- a/GraphBLAS/Source/GB_macrofy_nvals.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_nvals.c @@ -14,7 +14,7 @@ // e = GB_nnz_held (A) #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_nvals ( diff --git a/GraphBLAS/Source/GB_macrofy_output.c b/GraphBLAS/Source/jitifyer/GB_macrofy_output.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_output.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_output.c index e495a79c16..71f60b7d6b 100644 --- a/GraphBLAS/Source/GB_macrofy_output.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_output.c @@ -11,7 +11,7 @@ // type of the monoid or operator, into the type of the C matrix. #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_output ( diff --git a/GraphBLAS/Source/GB_macrofy_preface.c b/GraphBLAS/Source/jitifyer/GB_macrofy_preface.c similarity index 95% rename from GraphBLAS/Source/GB_macrofy_preface.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_preface.c index 25363e5b75..491edd038c 100644 --- a/GraphBLAS/Source/GB_macrofy_preface.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_preface.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_preface ( @@ -53,6 +53,6 @@ void GB_macrofy_preface } // for all kernels: CPU and CUDA - fprintf (fp, "#include \"GB_jit_kernel.h\"\n\n") ; + fprintf (fp, "#include \"include/GB_jit_kernel.h\"\n\n") ; } diff --git a/GraphBLAS/Source/GB_macrofy_query.c b/GraphBLAS/Source/jitifyer/GB_macrofy_query.c similarity index 99% rename from GraphBLAS/Source/GB_macrofy_query.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_query.c index c6ed31bbe8..8b56d1fea4 100644 --- a/GraphBLAS/Source/GB_macrofy_query.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_query.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_query ( diff --git a/GraphBLAS/Source/GB_macrofy_reduce.c b/GraphBLAS/Source/jitifyer/GB_macrofy_reduce.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_reduce.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_reduce.c index 3ca25ac043..8a06120521 100644 --- a/GraphBLAS/Source/GB_macrofy_reduce.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_reduce.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_reduce // construct all macros for GrB_reduce to scalar ( @@ -181,6 +181,6 @@ void GB_macrofy_reduce // construct all macros for GrB_reduce to scalar // include the final default definitions //-------------------------------------------------------------------------- - fprintf (fp, "\n#include \"GB_monoid_shared_definitions.h\"\n") ; + fprintf (fp, "\n#include \"include/GB_monoid_shared_definitions.h\"\n") ; } diff --git a/GraphBLAS/Source/GB_macrofy_select.c b/GraphBLAS/Source/jitifyer/GB_macrofy_select.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_select.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_select.c index 7cb53bc2c8..6e406bf020 100644 --- a/GraphBLAS/Source/GB_macrofy_select.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_select.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_select // construct all macros for GrB_select ( @@ -229,6 +229,6 @@ void GB_macrofy_select // construct all macros for GrB_select // include the final default definitions //-------------------------------------------------------------------------- - fprintf (fp, "\n#include \"GB_select_shared_definitions.h\"\n") ; + fprintf (fp, "\n#include \"include/GB_select_shared_definitions.h\"\n") ; } diff --git a/GraphBLAS/Source/GB_macrofy_sparsity.c b/GraphBLAS/Source/jitifyer/GB_macrofy_sparsity.c similarity index 99% rename from GraphBLAS/Source/GB_macrofy_sparsity.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_sparsity.c index d8e5698491..27381562be 100644 --- a/GraphBLAS/Source/GB_macrofy_sparsity.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_sparsity.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_sparsity // construct macros for sparsity structure ( diff --git a/GraphBLAS/Source/GB_macrofy_string.c b/GraphBLAS/Source/jitifyer/GB_macrofy_string.c similarity index 97% rename from GraphBLAS/Source/GB_macrofy_string.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_string.c index 6d2c96eada..a3ac62725f 100644 --- a/GraphBLAS/Source/GB_macrofy_string.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_string.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_string ( diff --git a/GraphBLAS/Source/GB_macrofy_type.c b/GraphBLAS/Source/jitifyer/GB_macrofy_type.c similarity index 96% rename from GraphBLAS/Source/GB_macrofy_type.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_type.c index 333db2ded2..934096e859 100644 --- a/GraphBLAS/Source/GB_macrofy_type.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_type.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_type ( diff --git a/GraphBLAS/Source/GB_macrofy_typedefs.c b/GraphBLAS/Source/jitifyer/GB_macrofy_typedefs.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_typedefs.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_typedefs.c index 757824456c..a20b02df01 100644 --- a/GraphBLAS/Source/GB_macrofy_typedefs.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_typedefs.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_typedefs ( diff --git a/GraphBLAS/Source/GB_macrofy_unop.c b/GraphBLAS/Source/jitifyer/GB_macrofy_unop.c similarity index 99% rename from GraphBLAS/Source/GB_macrofy_unop.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_unop.c index 2c8658c627..6d1909264e 100644 --- a/GraphBLAS/Source/GB_macrofy_unop.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_unop.c @@ -16,8 +16,8 @@ // #define GB_UNARYOP(z,x,j,i,y) z = f (x,i,j,y) #include "GB.h" -#include "GB_math.h" -#include "GB_stringify.h" +#include "math/GB_math.h" +#include "jitifyer/GB_stringify.h" #include void GB_macrofy_unop diff --git a/GraphBLAS/Source/GB_macrofy_user_op.c b/GraphBLAS/Source/jitifyer/GB_macrofy_user_op.c similarity index 98% rename from GraphBLAS/Source/GB_macrofy_user_op.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_user_op.c index b3038e0b8f..83960ff41d 100644 --- a/GraphBLAS/Source/GB_macrofy_user_op.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_user_op.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_user_op // construct a user-defined operator ( diff --git a/GraphBLAS/Source/GB_macrofy_user_type.c b/GraphBLAS/Source/jitifyer/GB_macrofy_user_type.c similarity index 97% rename from GraphBLAS/Source/GB_macrofy_user_type.c rename to GraphBLAS/Source/jitifyer/GB_macrofy_user_type.c index 0b85282c71..f117ef7f38 100644 --- a/GraphBLAS/Source/GB_macrofy_user_type.c +++ b/GraphBLAS/Source/jitifyer/GB_macrofy_user_type.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" void GB_macrofy_user_type // construct a user-defined type ( diff --git a/GraphBLAS/Source/GB_stringify.h b/GraphBLAS/Source/jitifyer/GB_stringify.h similarity index 99% rename from GraphBLAS/Source/GB_stringify.h rename to GraphBLAS/Source/jitifyer/GB_stringify.h index 630fcac01b..4835afb534 100644 --- a/GraphBLAS/Source/GB_stringify.h +++ b/GraphBLAS/Source/jitifyer/GB_stringify.h @@ -10,9 +10,9 @@ #ifndef GB_STRINGIFY_H #define GB_STRINGIFY_H -#include "GB_binop.h" -#include "GB_jitifyer.h" -#include "GB_callback.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_jitifyer.h" +#include "callback/include/GB_callback.h" //------------------------------------------------------------------------------ // print kernel preface diff --git a/GraphBLAS/Source/GB_kron.c b/GraphBLAS/Source/kronecker/GB_kron.c similarity index 98% rename from GraphBLAS/Source/GB_kron.c rename to GraphBLAS/Source/kronecker/GB_kron.c index 7eca5c82a9..6085bd6685 100644 --- a/GraphBLAS/Source/GB_kron.c +++ b/GraphBLAS/Source/kronecker/GB_kron.c @@ -23,10 +23,10 @@ GB_Matrix_free (&T) ; \ } -#include "GB_kron.h" -#include "GB_mxm.h" -#include "GB_transpose.h" -#include "GB_accum_mask.h" +#include "kronecker/GB_kron.h" +#include "mxm/GB_mxm.h" +#include "transpose/GB_transpose.h" +#include "mask/GB_accum_mask.h" GrB_Info GB_kron // C = accum (C, kron(A,B)) ( diff --git a/GraphBLAS/Source/GB_kron.h b/GraphBLAS/Source/kronecker/GB_kron.h similarity index 100% rename from GraphBLAS/Source/GB_kron.h rename to GraphBLAS/Source/kronecker/GB_kron.h diff --git a/GraphBLAS/Source/GB_kroner.c b/GraphBLAS/Source/kronecker/GB_kroner.c similarity index 99% rename from GraphBLAS/Source/GB_kroner.c rename to GraphBLAS/Source/kronecker/GB_kroner.c index 4301a1193c..5efb61662a 100644 --- a/GraphBLAS/Source/GB_kroner.c +++ b/GraphBLAS/Source/kronecker/GB_kroner.c @@ -36,8 +36,8 @@ GB_phybix_free (C) ; \ } -#include "GB_kron.h" -#include "GB_emult.h" +#include "kronecker/GB_kron.h" +#include "ewise/GB_emult.h" GrB_Info GB_kroner // C = kron (A,B) ( diff --git a/GraphBLAS/Source/GrB_kronecker.c b/GraphBLAS/Source/kronecker/GrB_kronecker.c similarity index 99% rename from GraphBLAS/Source/GrB_kronecker.c rename to GraphBLAS/Source/kronecker/GrB_kronecker.c index 6746c3c110..1fb668abfa 100644 --- a/GraphBLAS/Source/GrB_kronecker.c +++ b/GraphBLAS/Source/kronecker/GrB_kronecker.c @@ -7,8 +7,8 @@ //------------------------------------------------------------------------------ -#include "GB_kron.h" -#include "GB_get_mask.h" +#include "kronecker/GB_kron.h" +#include "mask/GB_get_mask.h" //------------------------------------------------------------------------------ // GrB_Matrix_kronecker_BinaryOp: Kronecker product with binary operator diff --git a/GraphBLAS/Source/GB_lz4.c b/GraphBLAS/Source/lz4_wrapper/GB_lz4.c similarity index 95% rename from GraphBLAS/Source/GB_lz4.c rename to GraphBLAS/Source/lz4_wrapper/GB_lz4.c index 17802a4018..44d40c9107 100644 --- a/GraphBLAS/Source/GB_lz4.c +++ b/GraphBLAS/Source/lz4_wrapper/GB_lz4.c @@ -13,8 +13,8 @@ // in place of malloc/calloc/free. #include "GB.h" -#include "GB_serialize.h" -#include "GB_lz4.h" +#include "serialize/GB_serialize.h" +#include "lz4_wrapper/GB_lz4.h" void *LZ4_malloc (size_t s) { diff --git a/GraphBLAS/Source/GB_lz4.h b/GraphBLAS/Source/lz4_wrapper/GB_lz4.h similarity index 100% rename from GraphBLAS/Source/GB_lz4.h rename to GraphBLAS/Source/lz4_wrapper/GB_lz4.h diff --git a/GraphBLAS/Source/GB_accum_mask.c b/GraphBLAS/Source/mask/GB_accum_mask.c similarity index 98% rename from GraphBLAS/Source/GB_accum_mask.c rename to GraphBLAS/Source/mask/GB_accum_mask.c index 3487fdb778..fa936b1271 100644 --- a/GraphBLAS/Source/GB_accum_mask.c +++ b/GraphBLAS/Source/mask/GB_accum_mask.c @@ -51,13 +51,13 @@ GB_Matrix_free (&Z) ; \ } -#include "GB_subassign.h" -#include "GB_add.h" -#include "GB_mask.h" -#include "GB_transpose.h" -#include "GB_accum_mask.h" -#include "GB_bitmap_assign.h" -#include "GB_unused.h" +#include "assign/GB_subassign.h" +#include "ewise/GB_add.h" +#include "mask/GB_mask.h" +#include "transpose/GB_transpose.h" +#include "mask/GB_accum_mask.h" +#include "assign/GB_bitmap_assign.h" +#include "include/GB_unused.h" /* ----------------------------------------------------------------------------- diff --git a/GraphBLAS/Source/GB_accum_mask.h b/GraphBLAS/Source/mask/GB_accum_mask.h similarity index 100% rename from GraphBLAS/Source/GB_accum_mask.h rename to GraphBLAS/Source/mask/GB_accum_mask.h diff --git a/GraphBLAS/Source/GB_get_mask.h b/GraphBLAS/Source/mask/GB_get_mask.h similarity index 98% rename from GraphBLAS/Source/GB_get_mask.h rename to GraphBLAS/Source/mask/GB_get_mask.h index 9b9037270d..0aefc5d026 100644 --- a/GraphBLAS/Source/GB_get_mask.h +++ b/GraphBLAS/Source/mask/GB_get_mask.h @@ -9,7 +9,7 @@ #ifndef GB_GET_MASK_H #define GB_GET_MASK_H -#include "GB_is_nonzero.h" +#include "iso/GB_is_nonzero.h" static inline GrB_Matrix GB_get_mask // return M_in or NULL ( diff --git a/GraphBLAS/Source/GB_mask.c b/GraphBLAS/Source/mask/GB_mask.c similarity index 99% rename from GraphBLAS/Source/GB_mask.c rename to GraphBLAS/Source/mask/GB_mask.c index 0ffa3b8bd8..e985b74f52 100644 --- a/GraphBLAS/Source/GB_mask.c +++ b/GraphBLAS/Source/mask/GB_mask.c @@ -114,7 +114,7 @@ GB_Matrix_free (&R) ; \ } -#include "GB_mask.h" +#include "mask/GB_mask.h" //------------------------------------------------------------------------------ diff --git a/GraphBLAS/Source/GB_mask.h b/GraphBLAS/Source/mask/GB_mask.h similarity index 99% rename from GraphBLAS/Source/GB_mask.h rename to GraphBLAS/Source/mask/GB_mask.h index 5033419bb3..44dfee5c17 100644 --- a/GraphBLAS/Source/GB_mask.h +++ b/GraphBLAS/Source/mask/GB_mask.h @@ -10,7 +10,7 @@ #ifndef GB_MASK_H #define GB_MASK_H #include "GB.h" -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB_mask // C = Z ( diff --git a/GraphBLAS/Source/GB_mask_very_sparse.h b/GraphBLAS/Source/mask/GB_mask_very_sparse.h similarity index 100% rename from GraphBLAS/Source/GB_mask_very_sparse.h rename to GraphBLAS/Source/mask/GB_mask_very_sparse.h diff --git a/GraphBLAS/Source/GB_masker.c b/GraphBLAS/Source/mask/GB_masker.c similarity index 99% rename from GraphBLAS/Source/GB_masker.c rename to GraphBLAS/Source/mask/GB_masker.c index c3fd851a2a..aa8a3b0342 100644 --- a/GraphBLAS/Source/GB_masker.c +++ b/GraphBLAS/Source/mask/GB_masker.c @@ -49,8 +49,8 @@ // R is iso if both C and Z are iso and zij == cij. This is handled in // GB_masker_phase2. -#include "GB_mask.h" -#include "GB_add.h" +#include "mask/GB_mask.h" +#include "ewise/GB_add.h" #define GB_FREE_ALL ; GrB_Info GB_masker // R = masker (C, M, Z) diff --git a/GraphBLAS/Source/GB_masker_phase1.c b/GraphBLAS/Source/mask/GB_masker_phase1.c similarity index 97% rename from GraphBLAS/Source/GB_masker_phase1.c rename to GraphBLAS/Source/mask/GB_masker_phase1.c index 47a66d41dd..33c89f3e94 100644 --- a/GraphBLAS/Source/GB_masker_phase1.c +++ b/GraphBLAS/Source/mask/GB_masker_phase1.c @@ -21,8 +21,8 @@ // Rp is either freed by phase2, or transplanted into R. -#include "GB_mask.h" -#include "GB_unused.h" +#include "mask/GB_mask.h" +#include "include/GB_unused.h" GrB_Info GB_masker_phase1 // count nnz in each R(:,j) ( @@ -97,7 +97,7 @@ GrB_Info GB_masker_phase1 // count nnz in each R(:,j) //-------------------------------------------------------------------------- #define GB_PHASE_1_OF_2 - #include "GB_masker_template.c" + #include "mask/factory/GB_masker_template.c" //-------------------------------------------------------------------------- // cumulative sum of Rp and fine tasks in TaskList diff --git a/GraphBLAS/Source/GB_masker_phase2.c b/GraphBLAS/Source/mask/GB_masker_phase2.c similarity index 97% rename from GraphBLAS/Source/GB_masker_phase2.c rename to GraphBLAS/Source/mask/GB_masker_phase2.c index 72597bcd55..96db52d20b 100644 --- a/GraphBLAS/Source/GB_masker_phase2.c +++ b/GraphBLAS/Source/mask/GB_masker_phase2.c @@ -26,9 +26,9 @@ // R is iso if both C and Z are iso and zij == cij. -#include "GB_mask.h" -#include "GB_ek_slice.h" -#include "GB_unused.h" +#include "mask/GB_mask.h" +#include "slice/GB_ek_slice.h" +#include "include/GB_unused.h" #undef GB_FREE_WORKSPACE #define GB_FREE_WORKSPACE \ @@ -196,11 +196,11 @@ GrB_Info GB_masker_phase2 // phase2 for R = masker (C,M,Z) // C must be iso; copy its iso value into R memcpy (R->x, C->x, czsize) ; } - #include "GB_masker_template.c" + #include "mask/factory/GB_masker_template.c" } else { - #include "GB_masker_template.c" + #include "mask/factory/GB_masker_template.c" } //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Source/GB_masker_sparsity.c b/GraphBLAS/Source/mask/GB_masker_sparsity.c similarity index 99% rename from GraphBLAS/Source/GB_masker_sparsity.c rename to GraphBLAS/Source/mask/GB_masker_sparsity.c index 9ede293607..cc67e7e109 100644 --- a/GraphBLAS/Source/GB_masker_sparsity.c +++ b/GraphBLAS/Source/mask/GB_masker_sparsity.c @@ -16,7 +16,7 @@ // case is handled by GB_subassign instead. R can be constructed as sparse, // hypersparse, or bitmap (not full). M and Z can have any sparsity pattern. -#include "GB_mask.h" +#include "mask/GB_mask.h" int GB_masker_sparsity // return the sparsity structure for R ( diff --git a/GraphBLAS/Source/Factories/GB_bitmap_masker_template.c b/GraphBLAS/Source/mask/factory/GB_bitmap_masker_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_bitmap_masker_template.c rename to GraphBLAS/Source/mask/factory/GB_bitmap_masker_template.c diff --git a/GraphBLAS/Source/Factories/GB_masker_template.c b/GraphBLAS/Source/mask/factory/GB_masker_template.c similarity index 95% rename from GraphBLAS/Source/Factories/GB_masker_template.c rename to GraphBLAS/Source/mask/factory/GB_masker_template.c index 07767a6733..6dd31a4769 100644 --- a/GraphBLAS/Source/Factories/GB_masker_template.c +++ b/GraphBLAS/Source/mask/factory/GB_masker_template.c @@ -97,7 +97,7 @@ #if defined ( GB_PHASE_1_OF_2 ) { // phase1 - #include "GB_sparse_masker_template.c" + #include "mask/factory/GB_sparse_masker_template.c" } #else { @@ -105,13 +105,13 @@ if (R_sparsity == GxB_SPARSE || R_sparsity == GxB_HYPERSPARSE) { // R is sparse or hypersparse (phase1 and phase2) - #include "GB_sparse_masker_template.c" + #include "mask/factory/GB_sparse_masker_template.c" } else // R_sparsity == GxB_BITMAP { // R is bitmap (phase2 only) ASSERT (R_sparsity == GxB_BITMAP) ; - #include "GB_bitmap_masker_template.c" + #include "mask/factory/GB_bitmap_masker_template.c" } } #endif diff --git a/GraphBLAS/Source/Factories/GB_sparse_masker_template.c b/GraphBLAS/Source/mask/factory/GB_sparse_masker_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_sparse_masker_template.c rename to GraphBLAS/Source/mask/factory/GB_sparse_masker_template.c diff --git a/GraphBLAS/Source/GB_bitwise.c b/GraphBLAS/Source/math/GB_bitwise.c similarity index 100% rename from GraphBLAS/Source/GB_bitwise.c rename to GraphBLAS/Source/math/GB_bitwise.c diff --git a/GraphBLAS/Source/GB_bitwise.h b/GraphBLAS/Source/math/GB_bitwise.h similarity index 100% rename from GraphBLAS/Source/GB_bitwise.h rename to GraphBLAS/Source/math/GB_bitwise.h diff --git a/GraphBLAS/Source/GB_int64_multiply.h b/GraphBLAS/Source/math/GB_int64_multiply.h similarity index 100% rename from GraphBLAS/Source/GB_int64_multiply.h rename to GraphBLAS/Source/math/GB_int64_multiply.h diff --git a/GraphBLAS/Source/GB_math.c b/GraphBLAS/Source/math/GB_math.c similarity index 97% rename from GraphBLAS/Source/GB_math.c rename to GraphBLAS/Source/math/GB_math.c index c34f57ee11..189ad68540 100644 --- a/GraphBLAS/Source/GB_math.c +++ b/GraphBLAS/Source/math/GB_math.c @@ -8,11 +8,11 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_math.h" +#include "math/GB_math.h" #if !GB_HAS_CMPLX_MACROS // complex constructors when the C compiler does not provide CMPLX and CMPLXF -// macros. See Source/Shared/GB_complex.h +// macros. See Source/math/include/GB_complex.h extern GxB_FC32_t GB_complexf (float xreal, float ximag) ; extern GxB_FC64_t GB_complex (double xreal, double ximag) ; #endif diff --git a/GraphBLAS/Source/GB_math.h b/GraphBLAS/Source/math/GB_math.h similarity index 99% rename from GraphBLAS/Source/GB_math.h rename to GraphBLAS/Source/math/GB_math.h index 8720efd778..a743a9fc6f 100644 --- a/GraphBLAS/Source/GB_math.h +++ b/GraphBLAS/Source/math/GB_math.h @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_casting.h" +#include "cast/GB_casting.h" #ifndef GB_MATH_H #define GB_MATH_H @@ -431,6 +431,7 @@ inline float GB_powf (float x, float y) #define GJ_powf_DEFN \ "float GJ_powf (float x, float y) \n" \ "{ \n" \ +" #ifndef GB_CUDA_KERNEL \n" \ " int xr_class = fpclassify (x) ; \n" \ " int yr_class = fpclassify (y) ; \n" \ " if (xr_class == FP_NAN || yr_class == FP_NAN) \n" \ @@ -441,6 +442,7 @@ inline float GB_powf (float x, float y) " { \n" \ " return (1) ; \n" \ " } \n" \ +" #endif \n" \ " return (powf (x, y)) ; \n" \ "}" @@ -465,6 +467,7 @@ inline double GB_pow (double x, double y) #define GJ_pow_DEFN \ "double GJ_pow (double x, double y) \n" \ "{ \n" \ +" #ifndef GB_CUDA_KERNEL \n" \ " int xr_class = fpclassify (x) ; \n" \ " int yr_class = fpclassify (y) ; \n" \ " if (xr_class == FP_NAN || yr_class == FP_NAN) \n" \ @@ -478,6 +481,7 @@ inline double GB_pow (double x, double y) " return (1) ; \n" \ " } \n" \ " // otherwise, z = pow (x,y) \n" \ +" #endif \n" \ " return (pow (x, y)) ; \n" \ "}" diff --git a/GraphBLAS/Source/GB_size_t_multiply.h b/GraphBLAS/Source/math/GB_size_t_multiply.h similarity index 100% rename from GraphBLAS/Source/GB_size_t_multiply.h rename to GraphBLAS/Source/math/GB_size_t_multiply.h diff --git a/GraphBLAS/Source/GB_uint64_multiply.h b/GraphBLAS/Source/math/GB_uint64_multiply.h similarity index 100% rename from GraphBLAS/Source/GB_uint64_multiply.h rename to GraphBLAS/Source/math/GB_uint64_multiply.h diff --git a/GraphBLAS/Source/Template/GB_binary_search.h b/GraphBLAS/Source/math/include/GB_binary_search.h similarity index 83% rename from GraphBLAS/Source/Template/GB_binary_search.h rename to GraphBLAS/Source/math/include/GB_binary_search.h index 4e40777ce1..4634363b99 100644 --- a/GraphBLAS/Source/Template/GB_binary_search.h +++ b/GraphBLAS/Source/math/include/GB_binary_search.h @@ -18,27 +18,50 @@ // The list X [pleft ... pright] is in ascending order. It may have // duplicates. -#define GB_TRIM_BINARY_SEARCH(i,X,pleft,pright) \ -{ \ - /* binary search of X [pleft ... pright] for integer i */ \ - while (pleft < pright) \ +#ifdef GB_CUDA_KERNEL + + // binary search on the GPU, with fewer branches + #define GB_TRIM_BINARY_SEARCH(i,X,pleft,pright) \ { \ - int64_t pmiddle = (pleft + pright) / 2 ; \ - if (X [pmiddle] < i) \ + /* binary search of X [pleft ... pright] for integer i */ \ + while (pleft < pright) \ { \ - /* if in the list, it appears in [pmiddle+1..pright] */ \ - pleft = pmiddle + 1 ; \ + int64_t pmiddle = (pleft + pright) >> 1 ; \ + bool less = (X [pmiddle] < i) ; \ + pleft = less ? (pmiddle+1) : pleft ; \ + pright = less ? pright : pmiddle ; \ } \ - else \ + /* binary search is narrowed down to a single item */ \ + /* or it has found the list is empty */ \ + /* ASSERT (pleft == pright || pleft == pright + 1) ; */ \ + } + +#else + + // binary search on the CPU + #define GB_TRIM_BINARY_SEARCH(i,X,pleft,pright) \ + { \ + /* binary search of X [pleft ... pright] for integer i */ \ + while (pleft < pright) \ { \ - /* if in the list, it appears in [pleft..pmiddle] */ \ - pright = pmiddle ; \ + int64_t pmiddle = (pleft + pright) / 2 ; \ + if (X [pmiddle] < i) \ + { \ + /* if in the list, it appears in [pmiddle+1..pright] */ \ + pleft = pmiddle + 1 ; \ + } \ + else \ + { \ + /* if in the list, it appears in [pleft..pmiddle] */ \ + pright = pmiddle ; \ + } \ } \ - } \ - /* binary search is narrowed down to a single item */ \ - /* or it has found the list is empty */ \ - ASSERT (pleft == pright || pleft == pright + 1) ; \ -} + /* binary search is narrowed down to a single item */ \ + /* or it has found the list is empty */ \ + /* ASSERT (pleft == pright || pleft == pright + 1) ; */ \ + } + +#endif //------------------------------------------------------------------------------ // GB_BINARY_SEARCH: binary search and check if found @@ -107,7 +130,7 @@ } \ /* binary search is narrowed down to a single item */ \ /* or it has found the list is empty */ \ - ASSERT (pleft == pright || pleft == pright + 1) ; \ + /* ASSERT (pleft == pright || pleft == pright + 1) ; */ \ } //------------------------------------------------------------------------------ diff --git a/GraphBLAS/Source/Shared/GB_complex.h b/GraphBLAS/Source/math/include/GB_complex.h similarity index 100% rename from GraphBLAS/Source/Shared/GB_complex.h rename to GraphBLAS/Source/math/include/GB_complex.h diff --git a/GraphBLAS/Source/Shared/GB_hash.h b/GraphBLAS/Source/math/include/GB_hash.h similarity index 97% rename from GraphBLAS/Source/Shared/GB_hash.h rename to GraphBLAS/Source/math/include/GB_hash.h index 7fd8463da2..e3d029f2d6 100644 --- a/GraphBLAS/Source/Shared/GB_hash.h +++ b/GraphBLAS/Source/math/include/GB_hash.h @@ -11,7 +11,7 @@ #define GB_HASH_H //------------------------------------------------------------------------------ -// functions for the Hash method for C=A*B, and for the A->Y hyperhash +// functions for the Hash method for C=A*B, and for the A->Y hyper_hash //------------------------------------------------------------------------------ // initial hash function, for where to place the integer i in the hash table. @@ -19,7 +19,7 @@ // which is always a power of 2. The function is (i*257) & (hash_bits). #define GB_HASHF(i,hash_bits) ((((i) << 8) + (i)) & (hash_bits)) -// hash function for the A->Y hyperhash: +// hash function for the A->Y hyper_hash: // lots of intentional collisions: but blocks are scattered #define GB_HASHF2(i,hash_bits) ((((i) >> 2) + 17L*((i) >> 8)) & (hash_bits)) diff --git a/GraphBLAS/Source/Template/GB_iceil.h b/GraphBLAS/Source/math/include/GB_iceil.h similarity index 100% rename from GraphBLAS/Source/Template/GB_iceil.h rename to GraphBLAS/Source/math/include/GB_iceil.h diff --git a/GraphBLAS/Source/Shared/GB_int64_mult.h b/GraphBLAS/Source/math/include/GB_int64_mult.h similarity index 100% rename from GraphBLAS/Source/Shared/GB_int64_mult.h rename to GraphBLAS/Source/math/include/GB_int64_mult.h diff --git a/GraphBLAS/Source/Template/GB_log2.h b/GraphBLAS/Source/math/include/GB_log2.h similarity index 100% rename from GraphBLAS/Source/Template/GB_log2.h rename to GraphBLAS/Source/math/include/GB_log2.h diff --git a/GraphBLAS/Source/Template/GB_math_macros.h b/GraphBLAS/Source/math/include/GB_math_macros.h similarity index 96% rename from GraphBLAS/Source/Template/GB_math_macros.h rename to GraphBLAS/Source/math/include/GB_math_macros.h index b694c45f9f..afd2d9b6b1 100644 --- a/GraphBLAS/Source/Template/GB_math_macros.h +++ b/GraphBLAS/Source/math/include/GB_math_macros.h @@ -37,8 +37,5 @@ #define GB_IMAX(x,y) (((x) > (y)) ? (x) : (y)) #define GB_IMIN(x,y) (((x) < (y)) ? (x) : (y)) -// ceiling of a/b for two integers a and b -#include "GB_iceil.h" - #endif diff --git a/GraphBLAS/Source/Template/GB_zombie.h b/GraphBLAS/Source/math/include/GB_zombie.h similarity index 100% rename from GraphBLAS/Source/Template/GB_zombie.h rename to GraphBLAS/Source/math/include/GB_zombie.h diff --git a/GraphBLAS/Source/Shared/GxB_complex.h b/GraphBLAS/Source/math/include/GxB_complex.h similarity index 88% rename from GraphBLAS/Source/Shared/GxB_complex.h rename to GraphBLAS/Source/math/include/GxB_complex.h index 5da5f60532..0767ab0aaa 100644 --- a/GraphBLAS/Source/Shared/GxB_complex.h +++ b/GraphBLAS/Source/math/include/GxB_complex.h @@ -1,5 +1,5 @@ //------------------------------------------------------------------------------ -// GxB_complex.h: definitions for the GraphBLAS complex types +// GxB_complex.h: definitions for the GraphBLAS complex types (no longer needed) //------------------------------------------------------------------------------ // SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. diff --git a/GraphBLAS/Source/GB_Matrix_free.c b/GraphBLAS/Source/matrix/GB_Matrix_free.c similarity index 100% rename from GraphBLAS/Source/GB_Matrix_free.c rename to GraphBLAS/Source/matrix/GB_Matrix_free.c diff --git a/GraphBLAS/Source/GB_Matrix_new.c b/GraphBLAS/Source/matrix/GB_Matrix_new.c similarity index 100% rename from GraphBLAS/Source/GB_Matrix_new.c rename to GraphBLAS/Source/matrix/GB_Matrix_new.c diff --git a/GraphBLAS/Source/GB_bix_alloc.c b/GraphBLAS/Source/matrix/GB_bix_alloc.c similarity index 100% rename from GraphBLAS/Source/GB_bix_alloc.c rename to GraphBLAS/Source/matrix/GB_bix_alloc.c diff --git a/GraphBLAS/Source/GB_bix_free.c b/GraphBLAS/Source/matrix/GB_bix_free.c similarity index 98% rename from GraphBLAS/Source/GB_bix_free.c rename to GraphBLAS/Source/matrix/GB_bix_free.c index f07b5173b6..3d56d3fbd2 100644 --- a/GraphBLAS/Source/GB_bix_free.c +++ b/GraphBLAS/Source/matrix/GB_bix_free.c @@ -10,7 +10,7 @@ // Since A->p and A->h are unchanged, the matrix is still valid (unless it was // invalid on input). nnz(A) would report zero, and so would GrB_Matrix_nvals. -#include "GB_Pending.h" +#include "pending/GB_Pending.h" void GB_bix_free // free A->b, A->i, and A->x of a matrix ( diff --git a/GraphBLAS/Source/GB_hyper_hash_free.c b/GraphBLAS/Source/matrix/GB_hyper_hash_free.c similarity index 100% rename from GraphBLAS/Source/GB_hyper_hash_free.c rename to GraphBLAS/Source/matrix/GB_hyper_hash_free.c diff --git a/GraphBLAS/Source/GB_ix_realloc.c b/GraphBLAS/Source/matrix/GB_ix_realloc.c similarity index 100% rename from GraphBLAS/Source/GB_ix_realloc.c rename to GraphBLAS/Source/matrix/GB_ix_realloc.c diff --git a/GraphBLAS/Source/GB_new.c b/GraphBLAS/Source/matrix/GB_new.c similarity index 99% rename from GraphBLAS/Source/GB_new.c rename to GraphBLAS/Source/matrix/GB_new.c index 7731d4b053..8b807c1bcb 100644 --- a/GraphBLAS/Source/GB_new.c +++ b/GraphBLAS/Source/matrix/GB_new.c @@ -158,7 +158,7 @@ GrB_Info GB_new // create matrix, except for indices & values // no content yet A->p = NULL ; A->p_shallow = false ; A->p_size = 0 ; A->h = NULL ; A->h_shallow = false ; A->h_size = 0 ; - A->Y = NULL ; A->Y_shallow = false ; + A->Y = NULL ; A->Y_shallow = false ; A->no_hyper_hash = false ; A->b = NULL ; A->b_shallow = false ; A->b_size = 0 ; A->i = NULL ; A->i_shallow = false ; A->i_size = 0 ; A->x = NULL ; A->x_shallow = false ; A->x_size = 0 ; diff --git a/GraphBLAS/Source/GB_new.h b/GraphBLAS/Source/matrix/GB_new.h similarity index 100% rename from GraphBLAS/Source/GB_new.h rename to GraphBLAS/Source/matrix/GB_new.h diff --git a/GraphBLAS/Source/GB_new_bix.c b/GraphBLAS/Source/matrix/GB_new_bix.c similarity index 100% rename from GraphBLAS/Source/GB_new_bix.c rename to GraphBLAS/Source/matrix/GB_new_bix.c diff --git a/GraphBLAS/Source/GB_phy_free.c b/GraphBLAS/Source/matrix/GB_phy_free.c similarity index 100% rename from GraphBLAS/Source/GB_phy_free.c rename to GraphBLAS/Source/matrix/GB_phy_free.c diff --git a/GraphBLAS/Source/GB_phybix_free.c b/GraphBLAS/Source/matrix/GB_phybix_free.c similarity index 100% rename from GraphBLAS/Source/GB_phybix_free.c rename to GraphBLAS/Source/matrix/GB_phybix_free.c diff --git a/GraphBLAS/Source/GB_shallow_copy.c b/GraphBLAS/Source/matrix/GB_shallow_copy.c similarity index 97% rename from GraphBLAS/Source/GB_shallow_copy.c rename to GraphBLAS/Source/matrix/GB_shallow_copy.c index cef3d78ce7..2e93ea0231 100644 --- a/GraphBLAS/Source/GB_shallow_copy.c +++ b/GraphBLAS/Source/matrix/GB_shallow_copy.c @@ -21,8 +21,8 @@ // Compare this function with GB_shallow_op.c. -#include "GB_transpose.h" -#include "GB_unused.h" +#include "transpose/GB_transpose.h" +#include "include/GB_unused.h" #define GB_FREE_ALL ; @@ -87,6 +87,7 @@ GrB_Info GB_shallow_copy // create a purely shallow matrix C->Y = A->Y ; C->Y_shallow = (A->Y != NULL) ; + C->no_hyper_hash = A->no_hyper_hash ; //-------------------------------------------------------------------------- // check for empty matrix diff --git a/GraphBLAS/Source/GB_static_header.h b/GraphBLAS/Source/matrix/GB_static_header.h similarity index 100% rename from GraphBLAS/Source/GB_static_header.h rename to GraphBLAS/Source/matrix/GB_static_header.h diff --git a/GraphBLAS/Source/GrB_Matrix_free.c b/GraphBLAS/Source/matrix/GrB_Matrix_free.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_free.c rename to GraphBLAS/Source/matrix/GrB_Matrix_free.c diff --git a/GraphBLAS/Source/GrB_Matrix_ncols.c b/GraphBLAS/Source/matrix/GrB_Matrix_ncols.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_ncols.c rename to GraphBLAS/Source/matrix/GrB_Matrix_ncols.c diff --git a/GraphBLAS/Source/GrB_Matrix_new.c b/GraphBLAS/Source/matrix/GrB_Matrix_new.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_new.c rename to GraphBLAS/Source/matrix/GrB_Matrix_new.c diff --git a/GraphBLAS/Source/GrB_Matrix_nrows.c b/GraphBLAS/Source/matrix/GrB_Matrix_nrows.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_nrows.c rename to GraphBLAS/Source/matrix/GrB_Matrix_nrows.c diff --git a/GraphBLAS/Source/GB_calloc_memory.c b/GraphBLAS/Source/memory/GB_calloc_memory.c similarity index 100% rename from GraphBLAS/Source/GB_calloc_memory.c rename to GraphBLAS/Source/memory/GB_calloc_memory.c diff --git a/GraphBLAS/Source/GB_free_memory.c b/GraphBLAS/Source/memory/GB_free_memory.c similarity index 100% rename from GraphBLAS/Source/GB_free_memory.c rename to GraphBLAS/Source/memory/GB_free_memory.c diff --git a/GraphBLAS/Source/GB_malloc_memory.c b/GraphBLAS/Source/memory/GB_malloc_memory.c similarity index 100% rename from GraphBLAS/Source/GB_malloc_memory.c rename to GraphBLAS/Source/memory/GB_malloc_memory.c diff --git a/GraphBLAS/Source/GB_memcpy.c b/GraphBLAS/Source/memory/GB_memcpy.c similarity index 91% rename from GraphBLAS/Source/GB_memcpy.c rename to GraphBLAS/Source/memory/GB_memcpy.c index a43bb34061..1710da380d 100644 --- a/GraphBLAS/Source/GB_memcpy.c +++ b/GraphBLAS/Source/memory/GB_memcpy.c @@ -24,6 +24,12 @@ void GB_memcpy // parallel memcpy ) { + // FIXME for CUDA: do: + // cpu <- cpu (already done below) + // cpu <- gpu (effectively done below but could be better) + // gpu <- cpu (need this) + // gpu <- gpu (need this) + if (nthreads <= 1 || n <= GB_MEM_CHUNK) { diff --git a/GraphBLAS/Source/GB_memory.h b/GraphBLAS/Source/memory/GB_memory.h similarity index 100% rename from GraphBLAS/Source/GB_memory.h rename to GraphBLAS/Source/memory/GB_memory.h diff --git a/GraphBLAS/Source/GB_memoryUsage.c b/GraphBLAS/Source/memory/GB_memoryUsage.c similarity index 100% rename from GraphBLAS/Source/GB_memoryUsage.c rename to GraphBLAS/Source/memory/GB_memoryUsage.c diff --git a/GraphBLAS/Source/GB_memset.c b/GraphBLAS/Source/memory/GB_memset.c similarity index 100% rename from GraphBLAS/Source/GB_memset.c rename to GraphBLAS/Source/memory/GB_memset.c diff --git a/GraphBLAS/Source/GB_realloc_memory.c b/GraphBLAS/Source/memory/GB_realloc_memory.c similarity index 100% rename from GraphBLAS/Source/GB_realloc_memory.c rename to GraphBLAS/Source/memory/GB_realloc_memory.c diff --git a/GraphBLAS/Source/GB_xalloc_memory.c b/GraphBLAS/Source/memory/GB_xalloc_memory.c similarity index 100% rename from GraphBLAS/Source/GB_xalloc_memory.c rename to GraphBLAS/Source/memory/GB_xalloc_memory.c diff --git a/GraphBLAS/Source/GxB_Matrix_memoryUsage.c b/GraphBLAS/Source/memory/GxB_Matrix_memoryUsage.c similarity index 100% rename from GraphBLAS/Source/GxB_Matrix_memoryUsage.c rename to GraphBLAS/Source/memory/GxB_Matrix_memoryUsage.c diff --git a/GraphBLAS/Source/GxB_Scalar_memoryUsage.c b/GraphBLAS/Source/memory/GxB_Scalar_memoryUsage.c similarity index 100% rename from GraphBLAS/Source/GxB_Scalar_memoryUsage.c rename to GraphBLAS/Source/memory/GxB_Scalar_memoryUsage.c diff --git a/GraphBLAS/Source/GxB_Vector_memoryUsage.c b/GraphBLAS/Source/memory/GxB_Vector_memoryUsage.c similarity index 100% rename from GraphBLAS/Source/GxB_Vector_memoryUsage.c rename to GraphBLAS/Source/memory/GxB_Vector_memoryUsage.c diff --git a/GraphBLAS/Source/Template/GB_memory_macros.h b/GraphBLAS/Source/memory/include/GB_memory_macros.h similarity index 100% rename from GraphBLAS/Source/Template/GB_memory_macros.h rename to GraphBLAS/Source/memory/include/GB_memory_macros.h diff --git a/GraphBLAS/Source/GB_Monoid_new.c b/GraphBLAS/Source/monoid/GB_Monoid_new.c similarity index 99% rename from GraphBLAS/Source/GB_Monoid_new.c rename to GraphBLAS/Source/monoid/GB_Monoid_new.c index 5aec6e0c91..f83ed1a7d7 100644 --- a/GraphBLAS/Source/GB_Monoid_new.c +++ b/GraphBLAS/Source/monoid/GB_Monoid_new.c @@ -19,9 +19,9 @@ // monoid does not have a terminal value. #include "GB.h" -#include "GB_binop.h" -#include "GB_Monoid_new.h" -#include "GB_jitifyer.h" +#include "binaryop/GB_binop.h" +#include "monoid/GB_Monoid_new.h" +#include "jitifyer/GB_jitifyer.h" GrB_Info GB_Monoid_new // create a monoid ( diff --git a/GraphBLAS/Source/GB_Monoid_new.h b/GraphBLAS/Source/monoid/GB_Monoid_new.h similarity index 100% rename from GraphBLAS/Source/GB_Monoid_new.h rename to GraphBLAS/Source/monoid/GB_Monoid_new.h diff --git a/GraphBLAS/Source/GrB_Monoid_free.c b/GraphBLAS/Source/monoid/GrB_Monoid_free.c similarity index 100% rename from GraphBLAS/Source/GrB_Monoid_free.c rename to GraphBLAS/Source/monoid/GrB_Monoid_free.c diff --git a/GraphBLAS/Source/GrB_Monoid_new.c b/GraphBLAS/Source/monoid/GrB_Monoid_new.c similarity index 98% rename from GraphBLAS/Source/GrB_Monoid_new.c rename to GraphBLAS/Source/monoid/GrB_Monoid_new.c index 419a7086ea..eb031ff4c4 100644 --- a/GraphBLAS/Source/GrB_Monoid_new.c +++ b/GraphBLAS/Source/monoid/GrB_Monoid_new.c @@ -12,7 +12,7 @@ // same type. No typecasting is done for the identity value. #include "GB.h" -#include "GB_Monoid_new.h" +#include "monoid/GB_Monoid_new.h" #define GB_MONOID_NEW(prefix,type,T) \ GrB_Info GB_EVAL3 (prefix, _Monoid_new_, T) /* create a new monoid */ \ diff --git a/GraphBLAS/Source/GxB_Monoid_identity.c b/GraphBLAS/Source/monoid/GxB_Monoid_identity.c similarity index 100% rename from GraphBLAS/Source/GxB_Monoid_identity.c rename to GraphBLAS/Source/monoid/GxB_Monoid_identity.c diff --git a/GraphBLAS/Source/GxB_Monoid_operator.c b/GraphBLAS/Source/monoid/GxB_Monoid_operator.c similarity index 100% rename from GraphBLAS/Source/GxB_Monoid_operator.c rename to GraphBLAS/Source/monoid/GxB_Monoid_operator.c diff --git a/GraphBLAS/Source/GxB_Monoid_terminal.c b/GraphBLAS/Source/monoid/GxB_Monoid_terminal.c similarity index 100% rename from GraphBLAS/Source/GxB_Monoid_terminal.c rename to GraphBLAS/Source/monoid/GxB_Monoid_terminal.c diff --git a/GraphBLAS/Source/GxB_Monoid_terminal_new.c b/GraphBLAS/Source/monoid/GxB_Monoid_terminal_new.c similarity index 98% rename from GraphBLAS/Source/GxB_Monoid_terminal_new.c rename to GraphBLAS/Source/monoid/GxB_Monoid_terminal_new.c index 7b768edba8..112c504353 100644 --- a/GraphBLAS/Source/GxB_Monoid_terminal_new.c +++ b/GraphBLAS/Source/monoid/GxB_Monoid_terminal_new.c @@ -12,7 +12,7 @@ // identity value. #include "GB.h" -#include "GB_Monoid_new.h" +#include "monoid/GB_Monoid_new.h" #define GB_MONOID_TERMINAL_NEW(type,T) \ GrB_Info GB_EVAL2 (GXB (Monoid_terminal_new_), T) /* create a new monoid */ \ diff --git a/GraphBLAS/Source/Shared/GB_monoid_shared_definitions.h b/GraphBLAS/Source/monoid/include/GB_monoid_shared_definitions.h similarity index 99% rename from GraphBLAS/Source/Shared/GB_monoid_shared_definitions.h rename to GraphBLAS/Source/monoid/include/GB_monoid_shared_definitions.h index 599ad5a850..2cc223afd7 100644 --- a/GraphBLAS/Source/Shared/GB_monoid_shared_definitions.h +++ b/GraphBLAS/Source/monoid/include/GB_monoid_shared_definitions.h @@ -11,7 +11,7 @@ // if the special cases have not been #define'd prior to #include'ing this // file. -#include "GB_kernel_shared_definitions.h" +#include "include/GB_kernel_shared_definitions.h" #ifndef GB_MONOID_SHARED_DEFINITIONS_H #define GB_MONOID_SHARED_DEFINITIONS_H diff --git a/GraphBLAS/Source/GB_AxB__any_pair_iso.c b/GraphBLAS/Source/mxm/GB_AxB__any_pair_iso.c similarity index 89% rename from GraphBLAS/Source/GB_AxB__any_pair_iso.c rename to GraphBLAS/Source/mxm/GB_AxB__any_pair_iso.c index d542d4e7f9..f478e154e4 100644 --- a/GraphBLAS/Source/GB_AxB__any_pair_iso.c +++ b/GraphBLAS/Source/mxm/GB_AxB__any_pair_iso.c @@ -2,15 +2,17 @@ // GB_AxB__any_pair_iso.c: matrix multiply for a single semiring //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ #include "GB.h" #include "GB_control.h" -#include "GB_AxB_kernels.h" -#include "GB_AxB__include1.h" +#include "mxm/GB_AxB_saxpy.h" +#include "include/GB_unused.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "mxm/GB_AxB__include1.h" // semiring operators: #define GB_MULTADD(z,a,b,i,k,j) @@ -64,7 +66,7 @@ // disable this semiring and use the generic case if these conditions hold #define GB_DISABLE 0 -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" //------------------------------------------------------------------------------ // GB_Adot2B: C=A'*B, C=A'*B, or C=A'*B: dot product method, C is bitmap @@ -85,7 +87,7 @@ GrB_Info GB (_Adot2B__any_pair_iso) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" return (GrB_SUCCESS) ; #endif } @@ -108,7 +110,7 @@ GrB_Info GB (_Adot3B__any_pair_iso) #if GB_DISABLE return (GrB_NO_VALUE) ; #else - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" return (GrB_SUCCESS) ; #endif } @@ -117,7 +119,7 @@ GrB_Info GB (_Adot3B__any_pair_iso) // GB_AsaxbitB: C=A*B, C=A*B, C=A*B: saxpy method, C is bitmap only //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy3_template.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" GrB_Info GB (_AsaxbitB__any_pair_iso) ( @@ -146,7 +148,7 @@ GrB_Info GB (_AsaxbitB__any_pair_iso) #else int nthreads_max = GB_Context_nthreads_max ( ) ; double chunk = GB_Context_chunk ( ) ; - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" return (GrB_SUCCESS) ; #endif } @@ -229,8 +231,8 @@ GrB_Info GB (_Asaxpy3B__any_pair_iso) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -238,8 +240,8 @@ GrB_Info GB (_Asaxpy3B__any_pair_iso) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -279,8 +281,8 @@ GrB_Info GB (_Asaxpy3B__any_pair_iso) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -288,8 +290,8 @@ GrB_Info GB (_Asaxpy3B__any_pair_iso) #undef GB_META16 #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } @@ -331,8 +333,8 @@ GrB_Info GB (_Asaxpy3B__any_pair_iso) #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { @@ -340,8 +342,8 @@ GrB_Info GB (_Asaxpy3B__any_pair_iso) #undef GB_META16 #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_meta16_definitions.h" - #include "GB_AxB_saxpy3_template.c" + #include "mxm/include/GB_meta16_definitions.h" + #include "mxm/template/GB_AxB_saxpy3_template.c" } return (GrB_SUCCESS) ; } diff --git a/GraphBLAS/Source/GB_AxB__include1.h b/GraphBLAS/Source/mxm/GB_AxB__include1.h similarity index 96% rename from GraphBLAS/Source/GB_AxB__include1.h rename to GraphBLAS/Source/mxm/GB_AxB__include1.h index 03fdcc2f41..6d246c7f9a 100644 --- a/GraphBLAS/Source/GB_AxB__include1.h +++ b/GraphBLAS/Source/mxm/GB_AxB__include1.h @@ -2,11 +2,11 @@ // GB_AxB__include1.h: definitions for GB_AxB__*.c methods //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // This file has been automatically generated from Generator/GB_AxB.h -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB (_Adot2B__any_pair_iso) ( diff --git a/GraphBLAS/Source/GB_AxB_dot.c b/GraphBLAS/Source/mxm/GB_AxB_dot.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_dot.c rename to GraphBLAS/Source/mxm/GB_AxB_dot.c index 785091002a..c53e7eda4f 100644 --- a/GraphBLAS/Source/GB_AxB_dot.c +++ b/GraphBLAS/Source/mxm/GB_AxB_dot.c @@ -40,8 +40,8 @@ // calling this function (GrB_mxm, GrB_mxv, or GxB_vxm) and detailed error // reports. -#include "GB_mxm.h" -#include "GB_stringify.h" +#include "mxm/GB_mxm.h" +#include "jitifyer/GB_stringify.h" #define GB_FREE_ALL ; GrB_Info GB_AxB_dot // dot product (multiple methods) diff --git a/GraphBLAS/Source/GB_AxB_dot2.c b/GraphBLAS/Source/mxm/GB_AxB_dot2.c similarity index 97% rename from GraphBLAS/Source/GB_AxB_dot2.c rename to GraphBLAS/Source/mxm/GB_AxB_dot2.c index 802e9f30e1..6a819d2122 100644 --- a/GraphBLAS/Source/GB_AxB_dot2.c +++ b/GraphBLAS/Source/mxm/GB_AxB_dot2.c @@ -40,14 +40,14 @@ GB_phybix_free (C) ; \ } -#include "GB_mxm.h" -#include "GB_subref.h" -#include "GB_ek_slice.h" -#include "GB_bitmap_assign_methods.h" -#include "GB_stringify.h" -#include "GB_AxB__include1.h" +#include "mxm/GB_mxm.h" +#include "extract/GB_subref.h" +#include "slice/GB_ek_slice.h" +#include "assign/GB_bitmap_assign_methods.h" +#include "jitifyer/GB_stringify.h" +#include "mxm/GB_AxB__include1.h" #ifndef GBCOMPACT -#include "GB_AxB__include2.h" +#include "FactoryKernels/GB_AxB__include2.h" #endif GrB_Info GB_AxB_dot2 // C=A'*B or C<#M>=A'*B, dot product method @@ -297,8 +297,8 @@ GrB_Info GB_AxB_dot2 // C=A'*B or C<#M>=A'*B, dot product method GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (A_slice, A->p, anvec, naslice, false) ; - GB_pslice (B_slice, B->p, bnvec, nbslice, false) ; + GB_p_slice (A_slice, A->p, anvec, naslice, false) ; + GB_p_slice (B_slice, B->p, bnvec, nbslice, false) ; //-------------------------------------------------------------------------- // allocate C @@ -455,7 +455,7 @@ GrB_Info GB_AxB_dot2 // C=A'*B or C<#M>=A'*B, dot product method semiring, flipxy, &mult_binop_code, &add_binop_code, &xcode, &ycode, &zcode)) { - #include "GB_AxB_factory.c" + #include "mxm/factory/GB_AxB_factory.c" } ASSERT (info == GrB_SUCCESS || info == GrB_NO_VALUE) ; } @@ -494,7 +494,7 @@ GrB_Info GB_AxB_dot2 // C=A'*B or C<#M>=A'*B, dot product method (M == NULL) ? "" : (Mask_comp ? "" : ""), A_not_transposed ? "" : "'", (C_sparsity == GxB_BITMAP) ? "bitmap" : "full") ; - #include "GB_AxB_dot_generic.c" + #include "mxm/factory/GB_AxB_dot_generic.c" info = GrB_SUCCESS ; } } diff --git a/GraphBLAS/Source/GB_AxB_dot2_control.c b/GraphBLAS/Source/mxm/GB_AxB_dot2_control.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_dot2_control.c rename to GraphBLAS/Source/mxm/GB_AxB_dot2_control.c index acd16cbb29..0ec921de87 100644 --- a/GraphBLAS/Source/GB_AxB_dot2_control.c +++ b/GraphBLAS/Source/mxm/GB_AxB_dot2_control.c @@ -10,7 +10,7 @@ // C=A'*B, C=A'*B, or C=A'*B where C is constructed in bitmap format. // C must be small and likely very dense. -#include "GB_mxm.h" +#include "mxm/GB_mxm.h" bool GB_AxB_dot2_control // true: use dot2, false: use saxpy ( diff --git a/GraphBLAS/Source/GB_AxB_dot3.c b/GraphBLAS/Source/mxm/GB_AxB_dot3.c similarity index 96% rename from GraphBLAS/Source/GB_AxB_dot3.c rename to GraphBLAS/Source/mxm/GB_AxB_dot3.c index 8893196d8d..9547c5a20a 100644 --- a/GraphBLAS/Source/GB_AxB_dot3.c +++ b/GraphBLAS/Source/mxm/GB_AxB_dot3.c @@ -14,14 +14,14 @@ // JIT: done. -#include "GB_mxm.h" -#include "GB_binop.h" -#include "GB_stringify.h" -#include "GB_AxB__include1.h" +#include "mxm/GB_mxm.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_stringify.h" +#include "mxm/GB_AxB__include1.h" #ifndef GBCOMPACT -#include "GB_AxB__include2.h" +#include "FactoryKernels/GB_AxB__include2.h" #endif -#include "GB_unused.h" +#include "include/GB_unused.h" #define GB_FREE_WORKSPACE \ { \ @@ -220,7 +220,7 @@ GrB_Info GB_AxB_dot3 // C = A'*B using dot product method // as the pth entry in C. This phase is purely symbolic and does not // depend on the data types or semiring. - #include "GB_mxm_shared_definitions.h" + #include "mxm/include/GB_mxm_shared_definitions.h" #define GB_DOT3 #define GB_DOT3_PHASE1 @@ -228,14 +228,14 @@ GrB_Info GB_AxB_dot3 // C = A'*B using dot product method { // special case: M is present, sparse, structural, and not complemented #define GB_MASK_SPARSE_STRUCTURAL_AND_NOT_COMPLEMENTED - #include "GB_meta16_factory.c" + #include "mxm/template/GB_meta16_factory.c" #undef GB_MASK_SPARSE_STRUCTURAL_AND_NOT_COMPLEMENTED // TODO: skip phase1 if A and B are both bitmap/full. } else { // general case: M sparse/hyper, structural/valued - #include "GB_meta16_factory.c" + #include "mxm/template/GB_meta16_factory.c" } #undef GB_DOT3 @@ -303,7 +303,7 @@ GrB_Info GB_AxB_dot3 // C = A'*B using dot product method semiring, flipxy, &mult_binop_code, &add_binop_code, &xcode, &ycode, &zcode)) { - #include "GB_AxB_factory.c" + #include "mxm/factory/GB_AxB_factory.c" } if (info == GrB_SUCCESS) @@ -331,7 +331,7 @@ GrB_Info GB_AxB_dot3 // C = A'*B using dot product method { #define GB_DOT3_GENERIC GB_BURBLE_MATRIX (C, "(generic C=A'*B) ") ; - #include "GB_AxB_dot_generic.c" + #include "mxm/factory/GB_AxB_dot_generic.c" info = GrB_SUCCESS ; } } diff --git a/GraphBLAS/Source/GB_AxB_dot3_one_slice.c b/GraphBLAS/Source/mxm/GB_AxB_dot3_one_slice.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_dot3_one_slice.c rename to GraphBLAS/Source/mxm/GB_AxB_dot3_one_slice.c index d6a4c35eaf..9673fdc749 100644 --- a/GraphBLAS/Source/GB_AxB_dot3_one_slice.c +++ b/GraphBLAS/Source/mxm/GB_AxB_dot3_one_slice.c @@ -24,7 +24,7 @@ GB_FREE_WORK (&TaskList, TaskList_size) ; \ } -#include "GB_mxm.h" +#include "mxm/GB_mxm.h" #define GB_NTASKS_PER_THREAD 256 @@ -132,7 +132,7 @@ GrB_Info GB_AxB_dot3_one_slice GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (Coarse, Mp, mnvec, ntasks1, false) ; + GB_p_slice (Coarse, Mp, mnvec, ntasks1, false) ; //-------------------------------------------------------------------------- // construct all tasks, both coarse and fine diff --git a/GraphBLAS/Source/GB_AxB_dot3_slice.c b/GraphBLAS/Source/mxm/GB_AxB_dot3_slice.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_dot3_slice.c rename to GraphBLAS/Source/mxm/GB_AxB_dot3_slice.c index e11fecf86d..ab04fe529f 100644 --- a/GraphBLAS/Source/GB_AxB_dot3_slice.c +++ b/GraphBLAS/Source/mxm/GB_AxB_dot3_slice.c @@ -34,8 +34,8 @@ GB_FREE_WORK (&TaskList, TaskList_size) ; \ } -#include "GB_mxm.h" -#include "GB_search_for_vector_template.c" +#include "mxm/GB_mxm.h" +#include "slice/factory/GB_search_for_vector_template.c" //------------------------------------------------------------------------------ // GB_AxB_dot3_slice @@ -154,7 +154,7 @@ GrB_Info GB_AxB_dot3_slice GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (Coarse, Cwork, cnz, ntasks1, false) ; + GB_p_slice (Coarse, Cwork, cnz, ntasks1, false) ; //-------------------------------------------------------------------------- // construct all tasks, both coarse and fine diff --git a/GraphBLAS/Source/GB_AxB_dot4.c b/GraphBLAS/Source/mxm/GB_AxB_dot4.c similarity index 97% rename from GraphBLAS/Source/GB_AxB_dot4.c rename to GraphBLAS/Source/mxm/GB_AxB_dot4.c index daf5e1f605..7153c6a05e 100644 --- a/GraphBLAS/Source/GB_AxB_dot4.c +++ b/GraphBLAS/Source/mxm/GB_AxB_dot4.c @@ -22,12 +22,12 @@ //------------------------------------------------------------------------------ -#include "GB_mxm.h" -#include "GB_binop.h" -#include "GB_unused.h" -#include "GB_stringify.h" +#include "mxm/GB_mxm.h" +#include "binaryop/GB_binop.h" +#include "include/GB_unused.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_AxB__include2.h" +#include "FactoryKernels/GB_AxB__include2.h" #endif #define GB_FREE_WORKSPACE \ @@ -206,8 +206,8 @@ GrB_Info GB_AxB_dot4 // C+=A'*B, dot product method GB_FREE_WORKSPACE ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (A_slice, A->p, anvec, naslice, false) ; - GB_pslice (B_slice, B->p, bnvec, nbslice, false) ; + GB_p_slice (A_slice, A->p, anvec, naslice, false) ; + GB_p_slice (B_slice, B->p, bnvec, nbslice, false) ; //-------------------------------------------------------------------------- // convert C to non-iso @@ -250,7 +250,7 @@ GrB_Info GB_AxB_dot4 // C+=A'*B, dot product method // disabled the ANY monoid #define GB_NO_ANY_MONOID - #include "GB_AxB_factory.c" + #include "mxm/factory/GB_AxB_factory.c" } #endif diff --git a/GraphBLAS/Source/GB_AxB_iso.c b/GraphBLAS/Source/mxm/GB_AxB_iso.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_iso.c rename to GraphBLAS/Source/mxm/GB_AxB_iso.c index 45174f4abb..47d14cdc52 100644 --- a/GraphBLAS/Source/GB_AxB_iso.c +++ b/GraphBLAS/Source/mxm/GB_AxB_iso.c @@ -19,9 +19,9 @@ // C = A*B' n = A->vdim == B->vdim // C = A'*B' n = A->vlen == B->vdim -#include "GB_mxm.h" -#include "GB_reduce.h" -#include "GB_binop.h" +#include "mxm/GB_mxm.h" +#include "reduce/GB_reduce.h" +#include "binaryop/GB_binop.h" //------------------------------------------------------------------------------ // GB_AxB_scalar_iso: c = mult(a,b) or c = mult(b,a) diff --git a/GraphBLAS/Source/GB_AxB_meta.c b/GraphBLAS/Source/mxm/GB_AxB_meta.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_meta.c rename to GraphBLAS/Source/mxm/GB_AxB_meta.c index 88390cd453..bdbdbe8098 100644 --- a/GraphBLAS/Source/GB_AxB_meta.c +++ b/GraphBLAS/Source/mxm/GB_AxB_meta.c @@ -35,8 +35,8 @@ GB_phybix_free (MT) ; \ } -#include "GB_mxm.h" -#include "GB_transpose.h" +#include "mxm/GB_mxm.h" +#include "transpose/GB_transpose.h" GrB_Info GB_AxB_meta // C=A*B meta algorithm ( diff --git a/GraphBLAS/Source/GB_AxB_meta_adotb_control.c b/GraphBLAS/Source/mxm/GB_AxB_meta_adotb_control.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_meta_adotb_control.c rename to GraphBLAS/Source/mxm/GB_AxB_meta_adotb_control.c index 7ab5349f07..51c1f5fca1 100644 --- a/GraphBLAS/Source/GB_AxB_meta_adotb_control.c +++ b/GraphBLAS/Source/mxm/GB_AxB_meta_adotb_control.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_mxm.h" +#include "mxm/GB_mxm.h" void GB_AxB_meta_adotb_control ( diff --git a/GraphBLAS/Source/GB_AxB_saxbit.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit.c similarity index 96% rename from GraphBLAS/Source/GB_AxB_saxbit.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit.c index 9edc8f19da..434767d2c4 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit.c @@ -24,16 +24,16 @@ GB_phybix_free (C) ; \ } -#include "GB_mxm.h" -#include "GB_unused.h" -#include "GB_stringify.h" -#include "GB_AxB_saxpy.h" -#include "GB_binop.h" -#include "GB_ek_slice.h" -#include "GB_AxB_saxpy_generic.h" -#include "GB_AxB__include1.h" +#include "mxm/GB_mxm.h" +#include "include/GB_unused.h" +#include "jitifyer/GB_stringify.h" +#include "mxm/GB_AxB_saxpy.h" +#include "binaryop/GB_binop.h" +#include "slice/GB_ek_slice.h" +#include "mxm/GB_AxB_saxpy_generic.h" +#include "mxm/GB_AxB__include1.h" #ifndef GBCOMPACT -#include "GB_AxB__include2.h" +#include "FactoryKernels/GB_AxB__include2.h" #endif //------------------------------------------------------------------------------ @@ -168,7 +168,7 @@ GrB_Info GB_AxB_saxbit // C = A*B where C is bitmap GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (A_slice, A->p, A->nvec, nfine_tasks_per_vector, true) ; + GB_p_slice (A_slice, A->p, A->nvec, nfine_tasks_per_vector, true) ; } //---------------------------------------------------------------------- @@ -302,7 +302,7 @@ GrB_Info GB_AxB_saxbit // C = A*B where C is bitmap semiring, flipxy, &mult_binop_code, &add_binop_code, &xcode, &ycode, &zcode)) { - #include "GB_AxB_factory.c" + #include "mxm/factory/GB_AxB_factory.c" } } #endif diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_first.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_first.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_first.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_first.c index 170c9370f2..5661f88e8d 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_first.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_first.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 1 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_firsti32.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firsti32.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_firsti32.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firsti32.c index 6c405ca0db..1a7410ec7d 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_firsti32.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firsti32.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_firsti64.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firsti64.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_firsti64.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firsti64.c index eab7b5442b..e4a1274e19 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_firsti64.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firsti64.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_firstj32.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firstj32.c similarity index 95% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_firstj32.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firstj32.c index e465fd4b44..d3efa7148b 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_firstj32.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firstj32.c @@ -21,5 +21,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_firstj64.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firstj64.c similarity index 95% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_firstj64.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firstj64.c index 041216aeb4..4c47dd8858 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_firstj64.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_firstj64.c @@ -21,5 +21,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_flipped.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_flipped.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_flipped.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_flipped.c index 7a03746882..6773fe2fdb 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_flipped.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_flipped.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_second.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_second.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_second.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_second.c index ea3cbfc05b..81ed5d620e 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_second.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_second.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 1 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_secondj32.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_secondj32.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_secondj32.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_secondj32.c index eff2376f22..8d81942b40 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_secondj32.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_secondj32.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_secondj64.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_secondj64.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_secondj64.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_secondj64.c index 666a04dd12..637644448b 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_secondj64.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_secondj64.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxbit_generic_unflipped.c b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_unflipped.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxbit_generic_unflipped.c rename to GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_unflipped.c index 7410ad42da..44f10206be 100644 --- a/GraphBLAS/Source/GB_AxB_saxbit_generic_unflipped.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxbit_generic_unflipped.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy.c index 49b31ae6f7..fa3c3f012d 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy.c @@ -7,9 +7,9 @@ //------------------------------------------------------------------------------ -#include "GB_mxm.h" -#include "GB_AxB_saxpy.h" -#include "GB_stringify.h" +#include "mxm/GB_mxm.h" +#include "mxm/GB_AxB_saxpy.h" +#include "jitifyer/GB_stringify.h" // TODO: allow bitmap multiply to work in-place as well diff --git a/GraphBLAS/Source/GB_AxB_saxpy.h b/GraphBLAS/Source/mxm/GB_AxB_saxpy.h similarity index 98% rename from GraphBLAS/Source/GB_AxB_saxpy.h rename to GraphBLAS/Source/mxm/GB_AxB_saxpy.h index 5a37f7d999..50e37f6a31 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy.h +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy.h @@ -10,8 +10,8 @@ #ifndef GB_AXB_SAXPY_H #define GB_AXB_SAXPY_H #include "GB.h" -#include "GB_math.h" -#include "GB_AxB_saxpy3.h" +#include "math/GB_math.h" +#include "mxm/GB_AxB_saxpy3.h" //------------------------------------------------------------------------------ // GB_AxB_saxpy diff --git a/GraphBLAS/Source/GB_AxB_saxpy3.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy3.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3.c index 9e55cfaf2b..5820a5a720 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3.c @@ -89,15 +89,14 @@ //------------------------------------------------------------------------------ -#include "GB_mxm.h" -#include "GB_stringify.h" -#include "GB_AxB_saxpy_generic.h" -#include "GB_control.h" -#include "GB_AxB__include1.h" +#include "mxm/GB_mxm.h" +#include "jitifyer/GB_stringify.h" +#include "mxm/GB_AxB_saxpy_generic.h" +#include "mxm/GB_AxB__include1.h" #ifndef GBCOMPACT -#include "GB_AxB__include2.h" +#include "FactoryKernels/GB_AxB__include2.h" #endif -#include "GB_unused.h" +#include "include/GB_unused.h" #define GB_FREE_WORKSPACE \ { \ @@ -648,7 +647,7 @@ GrB_Info GB_AxB_saxpy3 // C = A*B using Gustavson+Hash if (builtin_semiring) { - #include "GB_AxB_factory.c" + #include "mxm/factory/GB_AxB_factory.c" } } #endif diff --git a/GraphBLAS/Source/GB_AxB_saxpy3.h b/GraphBLAS/Source/mxm/GB_AxB_saxpy3.h similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy3.h rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3.h index 6d23a54897..7bfa79bec4 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3.h +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3.h @@ -14,7 +14,7 @@ #define GB_AXB_SAXPY3_H #include "GB.h" -#include "GB_math.h" +#include "math/GB_math.h" GrB_Info GB_AxB_saxpy3 // C = A*B using Gustavson+Hash ( @@ -60,7 +60,7 @@ GrB_Info GB_AxB_saxpy3 // C = A*B using Gustavson+Hash // Hash method is not used, and Gustavson's method is used, with the hash size // is set to C->vlen. -#include "GB_saxpy3task_struct.h" +#include "mxm/include/GB_saxpy3task_struct.h" //------------------------------------------------------------------------------ // GB_AxB_saxpy3_flopcount: compute flops for GB_AxB_saxpy3 diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_cumsum.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_cumsum.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy3_cumsum.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_cumsum.c index 83a528e415..b17c5e86a5 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_cumsum.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_cumsum.c @@ -13,7 +13,7 @@ // phase4: cumulative sum of C->p #include "GB.h" -#include "GB_unused.h" +#include "include/GB_unused.h" GB_CALLBACK_SAXPY3_CUMSUM_PROTO (GB_AxB_saxpy3_cumsum) { diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_flopcount.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_flopcount.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy3_flopcount.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_flopcount.c index a514c72df7..af1bed3cb3 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_flopcount.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_flopcount.c @@ -67,10 +67,10 @@ end */ -#include "GB_mxm.h" -#include "GB_ek_slice.h" -#include "GB_AxB_saxpy3.h" -#include "GB_unused.h" +#include "mxm/GB_mxm.h" +#include "slice/GB_ek_slice.h" +#include "mxm/GB_AxB_saxpy3.h" +#include "include/GB_unused.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_first.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_first.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_first.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_first.c index a08d1bf221..f49767cab0 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_first.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_first.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 1 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_firsti32.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firsti32.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_firsti32.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firsti32.c index e0c64bfe7c..c857381131 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_firsti32.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firsti32.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_firsti64.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firsti64.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_firsti64.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firsti64.c index 516de4661f..36a39fdf74 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_firsti64.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firsti64.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_firstj32.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firstj32.c similarity index 95% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_firstj32.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firstj32.c index cb812c2417..10cf462986 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_firstj32.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firstj32.c @@ -21,5 +21,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_firstj64.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firstj64.c similarity index 95% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_firstj64.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firstj64.c index 754265a7ec..f5bf02f050 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_firstj64.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_firstj64.c @@ -21,5 +21,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_flipped.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_flipped.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_flipped.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_flipped.c index 8513bb52d1..20e9eb435f 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_flipped.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_flipped.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_second.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_second.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_second.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_second.c index 9a92fd8e91..9dba760189 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_second.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_second.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 1 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_secondj32.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_secondj32.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_secondj32.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_secondj32.c index fd6b48bb49..3bbbdfee16 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_secondj32.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_secondj32.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_secondj64.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_secondj64.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_secondj64.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_secondj64.c index b96f820dfe..aeaa189449 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_secondj64.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_secondj64.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_generic_unflipped.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_unflipped.c similarity index 94% rename from GraphBLAS/Source/GB_AxB_saxpy3_generic_unflipped.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_unflipped.c index 68f45f7625..2fd9d2581c 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_generic_unflipped.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_generic_unflipped.c @@ -20,5 +20,5 @@ #define GB_GENERIC_OP_IS_FIRST 0 #define GB_GENERIC_OP_IS_SECOND 0 -#include "GB_AxB_saxpy_generic_method.c" +#include "mxm/factory/GB_AxB_saxpy_generic_method.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_slice_balanced.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_slice_balanced.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy3_slice_balanced.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_slice_balanced.c index 61109d5d86..668ee9b389 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_slice_balanced.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_slice_balanced.c @@ -12,8 +12,8 @@ // If the mask is present but must be discarded, this function returns // GrB_NO_VALUE, to indicate that the analysis was terminated early. -#include "GB_AxB_saxpy3.h" -#include "GB_unused.h" +#include "mxm/GB_AxB_saxpy3.h" +#include "include/GB_unused.h" // control parameters for generating parallel tasks #define GB_NTASKS_PER_THREAD 2 @@ -484,7 +484,7 @@ GrB_Info GB_AxB_saxpy3_slice_balanced GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (Coarse_initial, Bflops, bnvec, ntasks_initial, true) ; + GB_p_slice (Coarse_initial, Bflops, bnvec, ntasks_initial, true) ; //---------------------------------------------------------------------- // split the work into coarse and fine tasks @@ -699,7 +699,8 @@ GrB_Info GB_AxB_saxpy3_slice_balanced // slice B(:,j) into fine tasks int team_size = ceil (jflops / target_fine_size) ; ASSERT (Fine_slice != NULL) ; - GB_pslice (Fine_slice, Fine_fl, bjnz, team_size, false); + GB_p_slice (Fine_slice, Fine_fl, bjnz, team_size, + false); // shared hash table for all fine tasks for A*B(:,j) int64_t hsize = diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_slice_quick.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_slice_quick.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_saxpy3_slice_quick.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_slice_quick.c index 409508b600..35cf3e5cd5 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_slice_quick.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_slice_quick.c @@ -9,7 +9,7 @@ // create a single task for C=A*B, for a single thread. -#include "GB_AxB_saxpy3.h" +#include "mxm/GB_AxB_saxpy3.h" GrB_Info GB_AxB_saxpy3_slice_quick ( diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_bh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_bh.c similarity index 93% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_bh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_bh.c index 097148b088..e369e3b82b 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_bh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_bh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_bs.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_bs.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_bs.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_bs.c index 2ec7b790bc..b420fae473 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_bs.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_bs.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_fh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_fh.c similarity index 93% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_fh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_fh.c index 9e42d8bc22..c497418f1c 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_fh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_fh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_fs.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_fs.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_fs.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_fs.c index 129872de55..3a435525ec 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_fs.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_fs.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_hb.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hb.c similarity index 93% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_hb.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hb.c index e12ea40552..ad4c3bdf03 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_hb.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hb.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_hf.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hf.c similarity index 93% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_hf.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hf.c index 657239cce6..ec1544f352 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_hf.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hf.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_hh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hh.c similarity index 93% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_hh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hh.c index c3fdf5b6cc..3517a50307 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_hh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_hs.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hs.c similarity index 93% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_hs.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hs.c index d39659dd97..db9191c9dd 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_hs.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_hs.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mbb.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbb.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mbb.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbb.c index d4a8fbc7e6..a84ce80578 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mbb.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbb.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mbf.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbf.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mbf.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbf.c index bc8c40ee36..46df7f020e 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mbf.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbf.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mbh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbh.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mbh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbh.c index 9bca8cfc08..c310077c1c 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mbh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mbs.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbs.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mbs.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbs.c index e97ef00845..b2191f563e 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mbs.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mbs.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mfb.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mfb.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mfb.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mfb.c index 94a3399d92..cd0dacd1a4 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mfb.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mfb.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mff.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mff.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mff.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mff.c index 39d073a04b..7fd8667bbe 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mff.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mff.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mfh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mfh.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mfh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mfh.c index 7c82e4d43b..da5f78c3f3 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mfh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mfh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mfs.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mfs.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mfs.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mfs.c index beb4a074e7..a44d7c0a82 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mfs.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mfs.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mhb.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhb.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mhb.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhb.c index 893c455fef..de13de44bb 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mhb.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhb.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mhf.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhf.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mhf.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhf.c index f8ccc3fc70..8e9014e659 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mhf.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhf.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mhh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhh.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mhh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhh.c index 6bec8c146a..da5ecb2146 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mhh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mhs.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhs.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mhs.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhs.c index e002efa766..56676f40c3 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mhs.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mhs.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_msb.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_msb.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_msb.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_msb.c index 66855fa29a..d08bddf4e8 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_msb.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_msb.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_msf.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_msf.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_msf.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_msf.c index 7d83d629e1..b6f2f7e3d0 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_msf.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_msf.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_msh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_msh.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_msh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_msh.c index fe7f9e9806..b0e99281fa 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_msh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_msh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mss.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mss.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_mss.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mss.c index 16acce956d..ae8d004392 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_mss.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_mss.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nbh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nbh.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nbh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nbh.c index 5bc6d1e0f8..85dfb5378f 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nbh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nbh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nbs.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nbs.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nbs.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nbs.c index 54ff9aae69..cac3197bd4 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nbs.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nbs.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nfh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nfh.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nfh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nfh.c index c4c89345db..6dfccea274 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nfh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nfh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nfs.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nfs.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nfs.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nfs.c index dbf709b655..18d605a52f 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nfs.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nfs.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nhb.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhb.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nhb.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhb.c index 3268902270..e8383b2a38 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nhb.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhb.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nhf.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhf.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nhf.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhf.c index 53f9fabefa..988f15c748 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nhf.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhf.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nhh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhh.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nhh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhh.c index 9a3d023730..87f62c4f61 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nhh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nhs.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhs.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nhs.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhs.c index 5cbc0917d9..aa015d2c05 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nhs.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nhs.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nsb.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nsb.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nsb.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nsb.c index 14a704ad64..41e1b9be22 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nsb.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nsb.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nsf.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nsf.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nsf.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nsf.c index 1eef943b63..2964ad4012 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nsf.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nsf.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nsh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nsh.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nsh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nsh.c index 0bebc88e75..0d73e2b331 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nsh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nsh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nss.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nss.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_nss.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nss.c index 9623c0a4e8..7fff84fb48 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_nss.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_nss.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_sb.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_sb.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_sb.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_sb.c index 47f796fe6c..85d178311e 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_sb.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_sb.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_sf.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_sf.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_sf.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_sf.c index 2b279fa91a..8dfe24c184 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_sf.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_sf.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_sh.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_sh.c similarity index 93% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_sh.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_sh.c index 83f2548de4..92147eceea 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_sh.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_sh.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_sym_ss.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_ss.c similarity index 92% rename from GraphBLAS/Source/GB_AxB_saxpy3_sym_ss.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_ss.c index cb6ff29171..caf35e676a 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_sym_ss.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_sym_ss.c @@ -24,5 +24,5 @@ #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 -#include "GB_AxB_saxpy3_symbolic_template.c" +#include "mxm/factory/GB_AxB_saxpy3_symbolic_template.c" diff --git a/GraphBLAS/Source/GB_AxB_saxpy3_symbolic.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_symbolic.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy3_symbolic.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy3_symbolic.c index 82854789fb..08a58e2e10 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy3_symbolic.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy3_symbolic.c @@ -19,7 +19,7 @@ // If both A and B are bitmap/full for C=A*B or C=A*B, then saxpy3 is // not used. C is selected as bitmap instead. -#include "GB_AxB_saxpy3.h" +#include "mxm/GB_AxB_saxpy3.h" void GB_AxB_saxpy3_symbolic ( diff --git a/GraphBLAS/Source/GB_AxB_saxpy4.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy4.c similarity index 97% rename from GraphBLAS/Source/GB_AxB_saxpy4.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy4.c index 7a56787c53..30800d18ec 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy4.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy4.c @@ -20,11 +20,10 @@ //------------------------------------------------------------------------------ -#include "GB_mxm.h" -#include "GB_control.h" -#include "GB_stringify.h" +#include "mxm/GB_mxm.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_AxB__include2.h" +#include "FactoryKernels/GB_AxB__include2.h" #endif #define GB_FREE_WORKSPACE \ @@ -190,7 +189,7 @@ GrB_Info GB_AxB_saxpy4 // C += A*B GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (A_slice, A->p, A->nvec, nfine_tasks_per_vector, true) ; + GB_p_slice (A_slice, A->p, A->nvec, nfine_tasks_per_vector, true) ; if (!use_atomics) { @@ -261,7 +260,7 @@ GrB_Info GB_AxB_saxpy4 // C += A*B #define GB_NO_ANY_MONOID if (builtin_semiring) { - #include "GB_AxB_factory.c" + #include "mxm/factory/GB_AxB_factory.c" } } diff --git a/GraphBLAS/Source/GB_AxB_saxpy4_tasks.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy4_tasks.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy4_tasks.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy4_tasks.c index 6b602e8c4d..209b824b65 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy4_tasks.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy4_tasks.c @@ -10,7 +10,7 @@ // GB_AxB_saxpy4_tasks constructs the tasks for GB_AxB_saxpy4, and for // GB_AxB_bitmap_saxpy when A is sparse/hyper and B is bitmap/full. -#include "GB_AxB_saxpy.h" +#include "mxm/GB_AxB_saxpy.h" void GB_AxB_saxpy4_tasks ( diff --git a/GraphBLAS/Source/GB_AxB_saxpy5.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy5.c similarity index 97% rename from GraphBLAS/Source/GB_AxB_saxpy5.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy5.c index 0731b2d70e..5a1cee24d9 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy5.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy5.c @@ -30,11 +30,10 @@ //------------------------------------------------------------------------------ -#include "GB_mxm.h" -#include "GB_control.h" -#include "GB_stringify.h" +#include "mxm/GB_mxm.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_AxB__include2.h" +#include "FactoryKernels/GB_AxB__include2.h" #endif #define GB_FREE_WORKSPACE \ @@ -151,7 +150,7 @@ GrB_Info GB_AxB_saxpy5 // C += A*B GB_FREE_WORKSPACE ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (B_slice, B->p, bnvec, ntasks, false) ; + GB_p_slice (B_slice, B->p, bnvec, ntasks, false) ; //-------------------------------------------------------------------------- // via the factory kernel @@ -183,7 +182,7 @@ GrB_Info GB_AxB_saxpy5 // C += A*B #define GB_NO_ANY_MONOID if (builtin_semiring) { - #include "GB_AxB_factory.c" + #include "mxm/factory/GB_AxB_factory.c" } } #endif diff --git a/GraphBLAS/Source/GB_AxB_saxpy_generic.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy_generic.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy_generic.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy_generic.c index 0d5adcb0b9..28e9d5eadf 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy_generic.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy_generic.c @@ -31,9 +31,9 @@ //------------------------------------------------------------------------------ -#include "GB_mxm.h" -#include "GB_binop.h" -#include "GB_AxB_saxpy_generic.h" +#include "mxm/GB_mxm.h" +#include "binaryop/GB_binop.h" +#include "mxm/GB_AxB_saxpy_generic.h" GrB_Info GB_AxB_saxpy_generic ( diff --git a/GraphBLAS/Source/GB_AxB_saxpy_generic.h b/GraphBLAS/Source/mxm/GB_AxB_saxpy_generic.h similarity index 100% rename from GraphBLAS/Source/GB_AxB_saxpy_generic.h rename to GraphBLAS/Source/mxm/GB_AxB_saxpy_generic.h diff --git a/GraphBLAS/Source/GB_AxB_saxpy_sparsity.c b/GraphBLAS/Source/mxm/GB_AxB_saxpy_sparsity.c similarity index 99% rename from GraphBLAS/Source/GB_AxB_saxpy_sparsity.c rename to GraphBLAS/Source/mxm/GB_AxB_saxpy_sparsity.c index 302ae05063..b394ccc424 100644 --- a/GraphBLAS/Source/GB_AxB_saxpy_sparsity.c +++ b/GraphBLAS/Source/mxm/GB_AxB_saxpy_sparsity.c @@ -16,7 +16,7 @@ //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy.h" +#include "mxm/GB_AxB_saxpy.h" void GB_AxB_saxpy_sparsity // determine C_sparsity and method to use ( diff --git a/GraphBLAS/Source/GB_AxB_semiring_builtin.c b/GraphBLAS/Source/mxm/GB_AxB_semiring_builtin.c similarity index 98% rename from GraphBLAS/Source/GB_AxB_semiring_builtin.c rename to GraphBLAS/Source/mxm/GB_AxB_semiring_builtin.c index f4bae32172..6a7ac1ccac 100644 --- a/GraphBLAS/Source/GB_AxB_semiring_builtin.c +++ b/GraphBLAS/Source/mxm/GB_AxB_semiring_builtin.c @@ -14,8 +14,8 @@ // typecast the entries in the matrices A and B to the types of x and y of the // operator, as needed. -#include "GB_mxm.h" -#include "GB_binop.h" +#include "mxm/GB_mxm.h" +#include "binaryop/GB_binop.h" bool GB_AxB_semiring_builtin // true if semiring is builtin ( diff --git a/GraphBLAS/Source/GB_bitmap_expand_to_hyper.c b/GraphBLAS/Source/mxm/GB_bitmap_expand_to_hyper.c similarity index 99% rename from GraphBLAS/Source/GB_bitmap_expand_to_hyper.c rename to GraphBLAS/Source/mxm/GB_bitmap_expand_to_hyper.c index 9135100806..73f5f488bd 100644 --- a/GraphBLAS/Source/GB_bitmap_expand_to_hyper.c +++ b/GraphBLAS/Source/mxm/GB_bitmap_expand_to_hyper.c @@ -17,7 +17,7 @@ GB_FREE (&Ci, Ci_size) ; \ } -#include "GB_mxm.h" +#include "mxm/GB_mxm.h" GrB_Info GB_bitmap_expand_to_hyper ( diff --git a/GraphBLAS/Source/GB_colscale.c b/GraphBLAS/Source/mxm/GB_colscale.c similarity index 95% rename from GraphBLAS/Source/GB_colscale.c rename to GraphBLAS/Source/mxm/GB_colscale.c index 7c10bb38d8..e9d57fb7e6 100644 --- a/GraphBLAS/Source/GB_colscale.c +++ b/GraphBLAS/Source/mxm/GB_colscale.c @@ -9,15 +9,15 @@ // JIT: done. -#include "GB_mxm.h" -#include "GB_binop.h" -#include "GB_apply.h" -#include "GB_ek_slice.h" -#include "GB_stringify.h" +#include "mxm/GB_mxm.h" +#include "binaryop/GB_binop.h" +#include "apply/GB_apply.h" +#include "slice/GB_ek_slice.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif -#include "GB_unused.h" +#include "include/GB_unused.h" #define GB_FREE_WORKSPACE \ { \ @@ -206,6 +206,14 @@ GrB_Info GB_colscale // C = A*D, column scale with diagonal D GB_Type_compatible (D->type, mult->ytype))) ; } + info = GrB_NO_VALUE ; + + #if defined ( GRAPHBLAS_HAS_CUDA ) + if (GB_cuda_colscale_branch (A, D, semiring, flipxy)) { + info = GB_cuda_colscale (C, A, D, semiring, flipxy) ; + } + #endif + //---------------------------------------------------------------------- // determine the number of threads to use //---------------------------------------------------------------------- @@ -224,10 +232,9 @@ GrB_Info GB_colscale // C = A*D, column scale with diagonal D // via the factory kernel //---------------------------------------------------------------------- - info = GrB_NO_VALUE ; - #ifndef GBCOMPACT GB_IF_FACTORY_KERNELS_ENABLED + if (info == GrB_NO_VALUE) { //------------------------------------------------------------------ @@ -254,7 +261,7 @@ GrB_Info GB_colscale // C = A*D, column scale with diagonal D // C=A*D, colscale with built-in operator #define GB_BINOP_IS_SEMIRING_MULTIPLIER #define GB_NO_PAIR - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" #undef GB_BINOP_IS_SEMIRING_MULTIPLIER } } @@ -281,7 +288,7 @@ GrB_Info GB_colscale // C = A*D, column scale with diagonal D // get operators, functions, workspace, contents of A, D, and C //------------------------------------------------------------------ - #include "GB_generic.h" + #include "generic/GB_generic.h" GB_BURBLE_MATRIX (C, "(generic C=A*D colscale) ") ; GxB_binary_function fmult = mult->binop_function ; @@ -342,19 +349,19 @@ GrB_Info GB_colscale // C = A*D, column scale with diagonal D #define GB_C_TYPE GB_void - #include "GB_ewise_shared_definitions.h" + #include "ewise/include/GB_ewise_shared_definitions.h" if (flipxy) { #undef GB_EWISEOP #define GB_EWISEOP(Cx,p,x,y,i,j) fmult (Cx +((p)*csize),y,x) - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" } else { #undef GB_EWISEOP #define GB_EWISEOP(Cx,p,x,y,i,j) fmult (Cx +((p)*csize),x,y) - #include "GB_colscale_template.c" + #include "mxm/template/GB_colscale_template.c" } info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GB_is_diagonal.c b/GraphBLAS/Source/mxm/GB_is_diagonal.c similarity index 99% rename from GraphBLAS/Source/GB_is_diagonal.c rename to GraphBLAS/Source/mxm/GB_is_diagonal.c index b72d56162a..a06fcd47a5 100644 --- a/GraphBLAS/Source/GB_is_diagonal.c +++ b/GraphBLAS/Source/mxm/GB_is_diagonal.c @@ -12,7 +12,7 @@ // Returns true if A is a square diagonal matrix, with all diagonal entries // present. All pending tuples are ignored. Zombies are treated as entries. -#include "GB_mxm.h" +#include "mxm/GB_mxm.h" bool GB_is_diagonal // true if A is diagonal ( diff --git a/GraphBLAS/Source/GB_mxm.c b/GraphBLAS/Source/mxm/GB_mxm.c similarity index 99% rename from GraphBLAS/Source/GB_mxm.c rename to GraphBLAS/Source/mxm/GB_mxm.c index 04ff65588e..6e293a892a 100644 --- a/GraphBLAS/Source/GB_mxm.c +++ b/GraphBLAS/Source/mxm/GB_mxm.c @@ -18,8 +18,8 @@ GB_Matrix_free (&T) ; \ } -#include "GB_mxm.h" -#include "GB_accum_mask.h" +#include "mxm/GB_mxm.h" +#include "mask/GB_accum_mask.h" GrB_Info GB_mxm // C = A*B ( diff --git a/GraphBLAS/Source/GB_mxm.h b/GraphBLAS/Source/mxm/GB_mxm.h similarity index 99% rename from GraphBLAS/Source/GB_mxm.h rename to GraphBLAS/Source/mxm/GB_mxm.h index d37261a41f..5fd9f83d7f 100644 --- a/GraphBLAS/Source/GB_mxm.h +++ b/GraphBLAS/Source/mxm/GB_mxm.h @@ -9,8 +9,8 @@ #ifndef GB_MXM_H #define GB_MXM_H -#include "GB_AxB_saxpy.h" -#include "GB_binop.h" +#include "mxm/GB_AxB_saxpy.h" +#include "binaryop/GB_binop.h" //------------------------------------------------------------------------------ diff --git a/GraphBLAS/Source/GB_rowscale.c b/GraphBLAS/Source/mxm/GB_rowscale.c similarity index 95% rename from GraphBLAS/Source/GB_rowscale.c rename to GraphBLAS/Source/mxm/GB_rowscale.c index 2eb0c9772e..394e7259f2 100644 --- a/GraphBLAS/Source/GB_rowscale.c +++ b/GraphBLAS/Source/mxm/GB_rowscale.c @@ -9,12 +9,12 @@ // JIT: done. -#include "GB_mxm.h" -#include "GB_binop.h" -#include "GB_apply.h" -#include "GB_stringify.h" +#include "mxm/GB_mxm.h" +#include "binaryop/GB_binop.h" +#include "apply/GB_apply.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_ew__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif #define GB_FREE_ALL GB_phybix_free (C) ; @@ -73,7 +73,6 @@ GrB_Info GB_rowscale // C = D*B, row scale with diagonal D //-------------------------------------------------------------------------- // determine if C is iso (ignore the monoid since it isn't used) //-------------------------------------------------------------------------- - size_t zsize = ztype->size ; GB_void cscalar [GB_VLA(zsize)] ; bool C_iso = GB_AxB_iso (cscalar, D, B, D->vdim, semiring, flipxy, true) ; @@ -194,6 +193,14 @@ GrB_Info GB_rowscale // C = D*B, row scale with diagonal D GB_Type_compatible (B->type, mult->ytype))) ; } + info = GrB_NO_VALUE ; + + #if defined ( GRAPHBLAS_HAS_CUDA ) + if (GB_cuda_rowscale_branch (D, B, semiring, flipxy)) { + info = GB_cuda_rowscale (C, D, B, semiring, flipxy) ; + } + #endif + //---------------------------------------------------------------------- // determine the number of threads to use //---------------------------------------------------------------------- @@ -207,9 +214,9 @@ GrB_Info GB_rowscale // C = D*B, row scale with diagonal D // via the factory kernel //---------------------------------------------------------------------- - info = GrB_NO_VALUE ; #ifndef GBCOMPACT GB_IF_FACTORY_KERNELS_ENABLED + if (info == GrB_NO_VALUE) { //------------------------------------------------------------------ @@ -235,7 +242,7 @@ GrB_Info GB_rowscale // C = D*B, row scale with diagonal D // C=D*B, rowscale with built-in operator #define GB_BINOP_IS_SEMIRING_MULTIPLIER #define GB_NO_PAIR - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" #undef GB_BINOP_IS_SEMIRING_MULTIPLIER } } @@ -265,7 +272,7 @@ GrB_Info GB_rowscale // C = D*B, row scale with diagonal D // get operators, functions, workspace, contents of D, B, and C //------------------------------------------------------------------ - #include "GB_generic.h" + #include "generic/GB_generic.h" GB_BURBLE_MATRIX (C, "(generic C=D*B rowscale) ") ; GxB_binary_function fmult = mult->binop_function ; @@ -326,19 +333,19 @@ GrB_Info GB_rowscale // C = D*B, row scale with diagonal D #define GB_C_TYPE GB_void - #include "GB_ewise_shared_definitions.h" + #include "ewise/include/GB_ewise_shared_definitions.h" if (flipxy) { #undef GB_EWISEOP #define GB_EWISEOP(Cx,p,x,y,i,j) fmult (Cx +((p)*csize),y,x) - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" } else { #undef GB_EWISEOP #define GB_EWISEOP(Cx,p,x,y,i,j) fmult (Cx +((p)*csize),x,y) - #include "GB_rowscale_template.c" + #include "mxm/template/GB_rowscale_template.c" } info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GrB_mxm.c b/GraphBLAS/Source/mxm/GrB_mxm.c similarity index 98% rename from GraphBLAS/Source/GrB_mxm.c rename to GraphBLAS/Source/mxm/GrB_mxm.c index 8ef37b6c9a..c74b783b46 100644 --- a/GraphBLAS/Source/GrB_mxm.c +++ b/GraphBLAS/Source/mxm/GrB_mxm.c @@ -12,8 +12,8 @@ // The input matrices A and B are optionally transposed, as determined by the // Descriptor desc. -#include "GB_mxm.h" -#include "GB_get_mask.h" +#include "mxm/GB_mxm.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_mxm // C = accum (C, A*B) ( diff --git a/GraphBLAS/Source/GrB_mxv.c b/GraphBLAS/Source/mxm/GrB_mxv.c similarity index 98% rename from GraphBLAS/Source/GrB_mxv.c rename to GraphBLAS/Source/mxm/GrB_mxv.c index 97c44ede3f..092b68cab6 100644 --- a/GraphBLAS/Source/GrB_mxv.c +++ b/GraphBLAS/Source/mxm/GrB_mxv.c @@ -12,8 +12,8 @@ // The input matrix A is optionally transposed, as determined by the // Descriptor desc. -#include "GB_mxm.h" -#include "GB_get_mask.h" +#include "mxm/GB_mxm.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_mxv // w = accum (w, A*u) ( diff --git a/GraphBLAS/Source/GrB_vxm.c b/GraphBLAS/Source/mxm/GrB_vxm.c similarity index 98% rename from GraphBLAS/Source/GrB_vxm.c rename to GraphBLAS/Source/mxm/GrB_vxm.c index e94da9c0aa..c49f91e1c4 100644 --- a/GraphBLAS/Source/GrB_vxm.c +++ b/GraphBLAS/Source/mxm/GrB_vxm.c @@ -13,8 +13,8 @@ // w = accum (w,t) where t = A'*u or A*u, but with the multiply operator // flipped. The input descriptor for A, inp1, is also negated. -#include "GB_mxm.h" -#include "GB_get_mask.h" +#include "mxm/GB_mxm.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_vxm // w' = accum (w', u'*A) ( diff --git a/GraphBLAS/Source/Factories/GB_AxB_bitwise_factory.c b/GraphBLAS/Source/mxm/factory/GB_AxB_bitwise_factory.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_AxB_bitwise_factory.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_bitwise_factory.c diff --git a/GraphBLAS/Source/Factories/GB_AxB_compare_factory.c b/GraphBLAS/Source/mxm/factory/GB_AxB_compare_factory.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_AxB_compare_factory.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_compare_factory.c diff --git a/GraphBLAS/Source/Factories/GB_AxB_dot_generic.c b/GraphBLAS/Source/mxm/factory/GB_AxB_dot_generic.c similarity index 90% rename from GraphBLAS/Source/Factories/GB_AxB_dot_generic.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_dot_generic.c index af326876b2..411b7e040a 100644 --- a/GraphBLAS/Source/Factories/GB_AxB_dot_generic.c +++ b/GraphBLAS/Source/mxm/factory/GB_AxB_dot_generic.c @@ -14,8 +14,8 @@ // This file does not use GB_DECLARE_TERMINAL_CONST (zterminal). Instead, it // defines zterminal itself. -#include "GB_mxm_shared_definitions.h" -#include "GB_generic.h" +#include "mxm/include/GB_mxm_shared_definitions.h" +#include "generic/GB_generic.h" { @@ -139,9 +139,9 @@ #undef GB_MULT #define GB_MULT(t, aki, bkj, i, k, j) t = i + offset #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif break ; case GB_FIRSTJ_binop_code : // first_j(A'(i,k),y) == k @@ -151,9 +151,9 @@ #undef GB_MULT #define GB_MULT(t, aki, bkj, i, k, j) t = k + offset #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif break ; case GB_SECONDJ_binop_code : // second_j(x,B(k,j)) == j @@ -161,9 +161,9 @@ #undef GB_MULT #define GB_MULT(t, aki, bkj, i, k, j) t = j + offset #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif break ; default: ; @@ -188,9 +188,9 @@ #undef GB_MULT #define GB_MULT(t,aki,bkj,i,k,j) t = (int32_t) (i + offset) #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif break ; case GB_FIRSTJ_binop_code : // first_j(A'(i,k),y) == k @@ -200,9 +200,9 @@ #undef GB_MULT #define GB_MULT(t,aki,bkj,i,k,j) t = (int32_t) (k + offset) #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif break ; case GB_SECONDJ_binop_code : // second_j(x,B(k,j)) == j @@ -210,9 +210,9 @@ #undef GB_MULT #define GB_MULT(t,aki,bkj,i,k,j) t = (int32_t) (j + offset) #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif break ; default: ; @@ -292,9 +292,9 @@ #undef GB_MULT #define GB_MULT(t, aik, bkj, i, k, j) memcpy (t, aik, csize) #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif } else if (opcode == GB_SECOND_binop_code) @@ -306,9 +306,9 @@ #undef GB_MULT #define GB_MULT(t, aik, bkj, i, k, j) memcpy (t, bkj, csize) #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif } else if (flipxy) @@ -317,9 +317,9 @@ #undef GB_MULT #define GB_MULT(t, aki, bkj, i, k, j) fmult (t, bkj, aki) #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif } else @@ -328,9 +328,9 @@ #undef GB_MULT #define GB_MULT(t, aki, bkj, i, k, j) fmult (t, aki, bkj) #if defined ( GB_DOT2_GENERIC ) - #include "GB_AxB_dot2_meta.c" + #include "mxm/template/GB_AxB_dot2_meta.c" #elif defined ( GB_DOT3_GENERIC ) - #include "GB_AxB_dot3_meta.c" + #include "mxm/template/GB_AxB_dot3_meta.c" #endif } } diff --git a/GraphBLAS/Source/Factories/GB_AxB_factory.c b/GraphBLAS/Source/mxm/factory/GB_AxB_factory.c similarity index 89% rename from GraphBLAS/Source/Factories/GB_AxB_factory.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_factory.c index 739f27a12a..a65049d3c5 100644 --- a/GraphBLAS/Source/Factories/GB_AxB_factory.c +++ b/GraphBLAS/Source/mxm/factory/GB_AxB_factory.c @@ -52,7 +52,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 6: (plus,times,any) for 2 complex #define GB_MNAME _first #define GB_COMPLEX - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -65,7 +65,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 6: (plus,times,any) for 2 complex #define GB_MNAME _second #define GB_COMPLEX - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -76,7 +76,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // MIN == TIMES == AND for boolean #define GB_NO_BOOLEAN #define GB_MNAME _min - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -87,7 +87,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // MAX == PLUS == OR for boolean #define GB_NO_BOOLEAN #define GB_MNAME _max - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -101,7 +101,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; #define GB_NO_BOOLEAN #define GB_MNAME _plus #define GB_COMPLEX - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -115,7 +115,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; #define GB_NO_BOOLEAN #define GB_MNAME _minus #define GB_COMPLEX - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -128,7 +128,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; #define GB_NO_BOOLEAN #define GB_MNAME _rminus #define GB_COMPLEX - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -141,7 +141,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; #define GB_NO_BOOLEAN #define GB_MNAME _times #define GB_COMPLEX - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -155,7 +155,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; #define GB_NO_BOOLEAN #define GB_MNAME _div #define GB_COMPLEX - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -169,7 +169,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; #define GB_NO_BOOLEAN #define GB_MNAME _rdiv #define GB_COMPLEX - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -178,7 +178,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) #define GB_MNAME _eq - #include "GB_AxB_compare_factory.c" + #include "mxm/factory/GB_AxB_compare_factory.c" break ; //---------------------------------------------------------------------- @@ -189,7 +189,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // MINUS == RMINUS == NE == ISNE == XOR for boolean #define GB_NO_BOOLEAN #define GB_MNAME _ne - #include "GB_AxB_compare_factory.c" + #include "mxm/factory/GB_AxB_compare_factory.c" break ; //---------------------------------------------------------------------- @@ -198,7 +198,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) #define GB_MNAME _gt - #include "GB_AxB_compare_factory.c" + #include "mxm/factory/GB_AxB_compare_factory.c" break ; //---------------------------------------------------------------------- @@ -207,7 +207,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) #define GB_MNAME _lt - #include "GB_AxB_compare_factory.c" + #include "mxm/factory/GB_AxB_compare_factory.c" break ; //---------------------------------------------------------------------- @@ -216,7 +216,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) #define GB_MNAME _ge - #include "GB_AxB_compare_factory.c" + #include "mxm/factory/GB_AxB_compare_factory.c" break ; //---------------------------------------------------------------------- @@ -225,7 +225,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 55 semirings: (and,or,xor,eq,any) * 11 types (all but complex) #define GB_MNAME _le - #include "GB_AxB_compare_factory.c" + #include "mxm/factory/GB_AxB_compare_factory.c" break ; //---------------------------------------------------------------------- @@ -239,7 +239,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; #define GB_MULT_IS_PAIR_OPERATOR #define GB_MNAME _pair #define GB_COMPLEX - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -251,7 +251,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 5 semirings: (lor,land,eq,lxor,any) for boolean #define GB_NO_MIN_MAX_ANY_TIMES_MONOIDS #define GB_MNAME _lor - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -261,7 +261,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 15 semirings: same as LOR #define GB_NO_MIN_MAX_ANY_TIMES_MONOIDS #define GB_MNAME _land - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -271,7 +271,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 15 semirings: same as LOR #define GB_NO_MIN_MAX_ANY_TIMES_MONOIDS #define GB_MNAME _lxor - #include "GB_AxB_type_factory.c" + #include "mxm/factory/GB_AxB_type_factory.c" break ; //---------------------------------------------------------------------- @@ -280,7 +280,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 16 semirings: (bor,band,bxor,bxnor) * (uint8,16,32,64) #define GB_MNAME _bor - #include "GB_AxB_bitwise_factory.c" + #include "mxm/factory/GB_AxB_bitwise_factory.c" break ; //---------------------------------------------------------------------- @@ -289,7 +289,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 16 semirings: (bor,band,bxor,bxnor) * (uint8,16,32,64) #define GB_MNAME _band - #include "GB_AxB_bitwise_factory.c" + #include "mxm/factory/GB_AxB_bitwise_factory.c" break ; //---------------------------------------------------------------------- @@ -298,7 +298,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 16 semirings: (bor,band,bxor,bxnor) * (uint8,16,32,64) #define GB_MNAME _bxor - #include "GB_AxB_bitwise_factory.c" + #include "mxm/factory/GB_AxB_bitwise_factory.c" break ; //---------------------------------------------------------------------- @@ -307,7 +307,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 16 semirings: (bor,band,bxor,bxnor) * (uint8,16,32,64) #define GB_MNAME _bxnor - #include "GB_AxB_bitwise_factory.c" + #include "mxm/factory/GB_AxB_bitwise_factory.c" break ; //---------------------------------------------------------------------- @@ -316,7 +316,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 10 semirings: (min,max,times,plus,any) * (int32,int64) #define GB_MNAME _firsti - #include "GB_AxB_positional_factory.c" + #include "mxm/factory/GB_AxB_positional_factory.c" break ; //---------------------------------------------------------------------- @@ -325,7 +325,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 10 semirings: (min,max,times,plus,any) * (int32,int64) #define GB_MNAME _firsti1 - #include "GB_AxB_positional_factory.c" + #include "mxm/factory/GB_AxB_positional_factory.c" break ; //---------------------------------------------------------------------- @@ -336,7 +336,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 10 semirings: (min,max,times,plus,any) * (int32,int64) // FIRSTJ and SECONDI are identical when used in a semiring #define GB_MNAME _firstj - #include "GB_AxB_positional_factory.c" + #include "mxm/factory/GB_AxB_positional_factory.c" break ; //---------------------------------------------------------------------- @@ -347,7 +347,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 10 semirings: (min,max,times,plus,any) * (int32,int64) // FIRSTJ1 and SECONDI1 are identical when used in a semiring #define GB_MNAME _firstj1 - #include "GB_AxB_positional_factory.c" + #include "mxm/factory/GB_AxB_positional_factory.c" break ; //---------------------------------------------------------------------- @@ -356,7 +356,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 10 semirings: (min,max,times,plus,any) * (int32,int64) #define GB_MNAME _secondj - #include "GB_AxB_positional_factory.c" + #include "mxm/factory/GB_AxB_positional_factory.c" break ; //---------------------------------------------------------------------- @@ -365,7 +365,7 @@ ASSERT (mult_binop_code != GB_ANY_binop_code) ; // 10 semirings: (min,max,times,plus,any) * (int32,int64) #define GB_MNAME _secondj1 - #include "GB_AxB_positional_factory.c" + #include "mxm/factory/GB_AxB_positional_factory.c" break ; default: ; diff --git a/GraphBLAS/Source/Factories/GB_AxB_positional_factory.c b/GraphBLAS/Source/mxm/factory/GB_AxB_positional_factory.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_AxB_positional_factory.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_positional_factory.c diff --git a/GraphBLAS/Source/Factories/GB_AxB_saxpy3_symbolic_template.c b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c similarity index 93% rename from GraphBLAS/Source/Factories/GB_AxB_saxpy3_symbolic_template.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c index 111d76e254..77f93a8d36 100644 --- a/GraphBLAS/Source/Factories/GB_AxB_saxpy3_symbolic_template.c +++ b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy3_symbolic_template.c @@ -19,13 +19,13 @@ // The sparsity of A and B are #defined' constants for this method, // as is the 3 cases of the mask (no M, M, or !M). -#include "GB_AxB_saxpy3.h" -#include "GB_mxm_shared_definitions.h" -#include "GB_AxB_saxpy3_template.h" -#include "GB_unused.h" +#include "mxm/GB_AxB_saxpy3.h" +#include "mxm/include/GB_mxm_shared_definitions.h" +#include "mxm/include/GB_AxB_saxpy3_template.h" +#include "include/GB_unused.h" #define GB_META16 -#include "GB_meta16_definitions.h" +#include "mxm/include/GB_meta16_definitions.h" void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) ( @@ -245,17 +245,17 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) #if ( GB_NO_MASK ) { // phase1: coarse Gustavson task, C=A*B - #include "GB_AxB_saxpy3_coarseGus_noM_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseGus_noM_phase1.c" } #elif ( !GB_MASK_COMP ) { // phase1: coarse Gustavson task, C=A*B - #include "GB_AxB_saxpy3_coarseGus_M_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseGus_M_phase1.c" } #else { // phase1: coarse Gustavson task, C=A*B - #include "GB_AxB_saxpy3_coarseGus_notM_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseGus_notM_phase1.c" } #endif @@ -278,7 +278,7 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) //---------------------------------------------------------- #undef GB_CHECK_MASK_ij - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" } #elif ( !GB_MASK_COMP ) @@ -310,22 +310,22 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) #define M_TYPE uint8_t #undef M_SIZE #define M_SIZE 1 - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; case GB_2BYTE : #undef M_TYPE #define M_TYPE uint16_t - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; case GB_4BYTE : #undef M_TYPE #define M_TYPE uint32_t - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; case GB_8BYTE : #undef M_TYPE #define M_TYPE uint64_t - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; case GB_16BYTE : #undef M_TYPE @@ -340,7 +340,7 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) (Mjx [2*i] != 0) || \ (Mjx [2*i+1] != 0)) ; \ if (!mij) continue ; - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; } @@ -352,7 +352,7 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) // M is sparse and scattered into Hf //------------------------------------------------------ - #include "GB_AxB_saxpy3_coarseHash_M_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_M_phase1.c" } } @@ -385,22 +385,22 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) #define M_TYPE uint8_t #undef M_SIZE #define M_SIZE 1 - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; case GB_2BYTE : #undef M_TYPE #define M_TYPE uint16_t - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; case GB_4BYTE : #undef M_TYPE #define M_TYPE uint32_t - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; case GB_8BYTE : #undef M_TYPE #define M_TYPE uint64_t - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; case GB_16BYTE : #undef M_TYPE @@ -415,7 +415,7 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) (Mjx [2*i] != 0) || \ (Mjx [2*i+1] != 0)) ; \ if (mij) continue ; - #include "GB_AxB_saxpy3_coarseHash_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c" break ; } @@ -427,7 +427,7 @@ void GB_EVAL2 (GB (AxB_saxpy3_sym), GB_MASK_A_B_SUFFIX) // M is sparse and scattered into Hf //------------------------------------------------------ - #include "GB_AxB_saxpy3_coarseHash_notM_phase1.c" + #include "mxm/template/GB_AxB_saxpy3_coarseHash_notM_phase1.c" } } #endif diff --git a/GraphBLAS/Source/Factories/GB_AxB_saxpy5_meta.c b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy5_meta.c similarity index 92% rename from GraphBLAS/Source/Factories/GB_AxB_saxpy5_meta.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_saxpy5_meta.c index cc3d7e5f52..9a48d43859 100644 --- a/GraphBLAS/Source/Factories/GB_AxB_saxpy5_meta.c +++ b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy5_meta.c @@ -18,7 +18,7 @@ // This method is only used for built-in semirings with no typecasting, in // the FactoryKernels. It is not used for JIT kernels, but the JIT kernel -// (Source/JitKernels/GB_jit_kernel_AxB_saxpy5.c) has nearly identical logic. +// (Source/jit_kernels/GB_jit_kernel_AxB_saxpy5.c) has nearly identical logic. #ifdef GB_GENERIC #error "saxpy5 generic kernel undefined" @@ -64,14 +64,14 @@ // A is bitmap and pattern-only #undef GB_A_IS_BITMAP #define GB_A_IS_BITMAP 1 - #include "GB_AxB_saxpy5_A_iso_or_pattern.c" + #include "mxm/template/GB_AxB_saxpy5_A_iso_or_pattern.c" } else { // A is full and pattern-only #undef GB_A_IS_BITMAP #define GB_A_IS_BITMAP 0 - #include "GB_AxB_saxpy5_A_iso_or_pattern.c" + #include "mxm/template/GB_AxB_saxpy5_A_iso_or_pattern.c" } } @@ -94,14 +94,14 @@ // A is bitmap, iso-valued, B is sparse/hyper #undef GB_A_IS_BITMAP #define GB_A_IS_BITMAP 1 - #include "GB_AxB_saxpy5_A_iso_or_pattern.c" + #include "mxm/template/GB_AxB_saxpy5_A_iso_or_pattern.c" } else { // A is full, iso-valued, B is sparse/hyper #undef GB_A_IS_BITMAP #define GB_A_IS_BITMAP 0 - #include "GB_AxB_saxpy5_A_iso_or_pattern.c" + #include "mxm/template/GB_AxB_saxpy5_A_iso_or_pattern.c" } } @@ -117,7 +117,7 @@ // A is bitmap, non-iso-valued, B is sparse/hyper #undef GB_A_IS_BITMAP #define GB_A_IS_BITMAP 1 - #include "GB_AxB_saxpy5_A_bitmap.c" + #include "mxm/template/GB_AxB_saxpy5_A_bitmap.c" #undef GB_A_IS_BITMAP } else diff --git a/GraphBLAS/Source/Factories/GB_AxB_saxpy_generic_method.c b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy_generic_method.c similarity index 93% rename from GraphBLAS/Source/Factories/GB_AxB_saxpy_generic_method.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_saxpy_generic_method.c index d492d766f8..bc5df7b305 100644 --- a/GraphBLAS/Source/Factories/GB_AxB_saxpy_generic_method.c +++ b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy_generic_method.c @@ -56,15 +56,14 @@ //------------------------------------------------------------------------------ -#include "GB_AxB_saxpy.h" -#include "GB_ek_slice.h" -#include "GB_binop.h" -#include "GB_sort.h" -#include "GB_ek_slice_search.c" -#include "GB_bitmap_assign_methods.h" -#include "GB_mxm_shared_definitions.h" -#include "GB_AxB_saxpy_generic.h" -#include "GB_generic.h" +#include "mxm/GB_AxB_saxpy.h" +#include "slice/GB_ek_slice.h" +#include "binaryop/GB_binop.h" +#include "slice/factory/GB_ek_slice_search.c" +#include "assign/GB_bitmap_assign_methods.h" +#include "mxm/include/GB_mxm_shared_definitions.h" +#include "mxm/GB_AxB_saxpy_generic.h" +#include "generic/GB_generic.h" GrB_Info GB_AXB_SAXPY_GENERIC_METHOD ( @@ -161,7 +160,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD #define GB_B_SIZE bsize // definitions for GB_AxB_saxpy_generic_template.c - #include "GB_AxB_saxpy3_template.h" + #include "mxm/include/GB_AxB_saxpy3_template.h" #if GB_GENERIC_OP_IS_POSITIONAL { @@ -252,7 +251,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD // GB_FIRSTI1_binop_code : // z = first_i1(A(i,k),y) == i+1 #undef GB_MULT #define GB_MULT(t, aik, bkj, i, k, j) t = i + offset - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #elif GB_GENERIC_OP_IS_FIRSTJ { @@ -262,7 +261,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD // GB_SECONDI1_binop_code : // z = second_i1(x,B(k,j))== k+1 #undef GB_MULT #define GB_MULT(t, aik, bkj, i, k, j) t = k + offset - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #else { @@ -270,7 +269,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD // GB_SECONDJ1_binop_code : // z = second_j1(x,B(k,j))== j+1 #undef GB_MULT #define GB_MULT(t, aik, bkj, i, k, j) t = j + offset - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #endif } @@ -290,7 +289,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD // GB_FIRSTI1_binop_code : // z = first_i1(A(i,k),y) == i+1 #undef GB_MULT #define GB_MULT(t,aik,bkj,i,k,j) t = (int32_t) (i + offset) - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #elif GB_GENERIC_OP_IS_FIRSTJ { @@ -300,7 +299,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD // GB_SECONDI1_binop_code : // z = second_i1(x,B(k,j))== k+1 #undef GB_MULT #define GB_MULT(t,aik,bkj,i,k,j) t = (int32_t) (k + offset) - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #else { @@ -308,7 +307,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD // GB_SECONDJ1_binop_code : // z = second_j1(x,B(k,j))== j+1 #undef GB_MULT #define GB_MULT(t,aik,bkj,i,k,j) t = (int32_t) (j + offset) - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #endif } @@ -405,7 +404,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD ASSERT (B_is_pattern) ; #undef GB_MULT #define GB_MULT(t, aik, bkj, i, k, j) memcpy (t, aik, csize) - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #elif GB_GENERIC_OP_IS_SECOND { @@ -413,7 +412,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD ASSERT (A_is_pattern) ; #undef GB_MULT #define GB_MULT(t, aik, bkj, i, k, j) memcpy (t, bkj, csize) - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #elif GB_GENERIC_FLIPXY { @@ -421,7 +420,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD ASSERT (fmult != NULL) ; #undef GB_MULT #define GB_MULT(t, aik, bkj, i, k, j) fmult (t, bkj, aik) - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #else { @@ -429,7 +428,7 @@ GrB_Info GB_AXB_SAXPY_GENERIC_METHOD ASSERT (fmult != NULL) ; #undef GB_MULT #define GB_MULT(t, aik, bkj, i, k, j) fmult (t, aik, bkj) - #include "GB_AxB_saxpy_generic_template.c" + #include "mxm/factory/GB_AxB_saxpy_generic_template.c" } #endif } diff --git a/GraphBLAS/Source/Factories/GB_AxB_saxpy_generic_template.c b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy_generic_template.c similarity index 80% rename from GraphBLAS/Source/Factories/GB_AxB_saxpy_generic_template.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_saxpy_generic_template.c index 0c7d9575a9..a67965b82d 100644 --- a/GraphBLAS/Source/Factories/GB_AxB_saxpy_generic_template.c +++ b/GraphBLAS/Source/mxm/factory/GB_AxB_saxpy_generic_template.c @@ -10,7 +10,7 @@ // A and B matrices have any format: hypersparse, sparse, bitmap, or full. // C can be sparse, hypersparse, or bitmap, but not full. -#include "GB_mxm_shared_definitions.h" +#include "mxm/include/GB_mxm_shared_definitions.h" { #if GB_GENERIC_C_IS_SPARSE_OR_HYPERSPARSE @@ -22,27 +22,27 @@ // C = A*B, no mask #define GB_NO_MASK 1 #define GB_MASK_COMP 0 - #include "GB_AxB_saxpy3_template.c" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else if (!Mask_comp) { // C = A*B #define GB_NO_MASK 0 #define GB_MASK_COMP 0 - #include "GB_AxB_saxpy3_template.c" + #include "mxm/template/GB_AxB_saxpy3_template.c" } else { // C = A*B #define GB_NO_MASK 0 #define GB_MASK_COMP 1 - #include "GB_AxB_saxpy3_template.c" + #include "mxm/template/GB_AxB_saxpy3_template.c" } } #else { // C is bitmap - #include "GB_AxB_saxbit_template.c" + #include "mxm/template/GB_AxB_saxbit_template.c" } #endif } diff --git a/GraphBLAS/Source/Factories/GB_AxB_type_factory.c b/GraphBLAS/Source/mxm/factory/GB_AxB_type_factory.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_AxB_type_factory.c rename to GraphBLAS/Source/mxm/factory/GB_AxB_type_factory.c diff --git a/GraphBLAS/Source/Template/GB_AxB_dot_cij.h b/GraphBLAS/Source/mxm/include/GB_AxB_dot_cij.h similarity index 93% rename from GraphBLAS/Source/Template/GB_AxB_dot_cij.h rename to GraphBLAS/Source/mxm/include/GB_AxB_dot_cij.h index 2da066bd0f..e9bb1b28fd 100644 --- a/GraphBLAS/Source/Template/GB_AxB_dot_cij.h +++ b/GraphBLAS/Source/mxm/include/GB_AxB_dot_cij.h @@ -7,9 +7,10 @@ //------------------------------------------------------------------------------ -// The GB_AxB_dot_cij.c method is used only by Template/GB_AxB_dot2_template.c -// and Template/GB_AxB_dot3_template.c. That method declares the cij scalar, -// and initializes it to zero for the PLUS_PAIR_REAL semiring. +// The GB_AxB_dot_cij.c method is used only by +// mxm/template/GB_AxB_dot2_template.c and mxm/template/GB_AxB_dot3_template.c. +// That method declares the cij scalar, and initializes it to zero for the +// PLUS_PAIR_REAL semiring. // GB_DOT: cij += (A(k,i) or A(i,k)) * B(k,j), then break if terminal // Ai [pA] and Bi [pB] are both equal to the index k. @@ -17,7 +18,7 @@ // GB_AxB_dot2, with A_not_transposed where it points to A(i,k). // The #include'ing file must use GB_DECLARE_TERMINAL_CONST (zterminal), -// or define zterminal another way (see Template/GB_AxB_dot_generic.c). +// or define zterminal another way (see mxm/template/GB_AxB_dot_generic.c). // use the boolean flag cij_exists to set/check if C(i,j) exists #undef GB_CIJ_CHECK @@ -33,7 +34,8 @@ //-------------------------------------------------------------------------- // this method requires that cij = 0 be initialized when it is declared. - // See Template/GB_AxB_dot2_template.c and Template/GB_AxB_dot3_template.c + // See mxm/template/GB_AxB_dot2_template.c and + // mxm/template/GB_AxB_dot3_template.c #if GB_Z_IGNORE_OVERFLOW diff --git a/GraphBLAS/Source/Template/GB_AxB_macros.h b/GraphBLAS/Source/mxm/include/GB_AxB_macros.h similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_macros.h rename to GraphBLAS/Source/mxm/include/GB_AxB_macros.h diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_template.h b/GraphBLAS/Source/mxm/include/GB_AxB_saxpy3_template.h similarity index 99% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_template.h rename to GraphBLAS/Source/mxm/include/GB_AxB_saxpy3_template.h index 869dc51921..c70fc1247e 100644 --- a/GraphBLAS/Source/Template/GB_AxB_saxpy3_template.h +++ b/GraphBLAS/Source/mxm/include/GB_AxB_saxpy3_template.h @@ -599,7 +599,7 @@ #undef GB_META16 #endif -#include "GB_meta16_definitions.h" +#include "include/GB_meta16_definitions.h" #endif diff --git a/GraphBLAS/Source/Template/GB_meta16_definitions.h b/GraphBLAS/Source/mxm/include/GB_meta16_definitions.h similarity index 100% rename from GraphBLAS/Source/Template/GB_meta16_definitions.h rename to GraphBLAS/Source/mxm/include/GB_meta16_definitions.h diff --git a/GraphBLAS/Source/Shared/GB_mxm_shared_definitions.h b/GraphBLAS/Source/mxm/include/GB_mxm_shared_definitions.h similarity index 94% rename from GraphBLAS/Source/Shared/GB_mxm_shared_definitions.h rename to GraphBLAS/Source/mxm/include/GB_mxm_shared_definitions.h index 5db803c302..5b530993c6 100644 --- a/GraphBLAS/Source/Shared/GB_mxm_shared_definitions.h +++ b/GraphBLAS/Source/mxm/include/GB_mxm_shared_definitions.h @@ -12,7 +12,7 @@ // file. This file is shared by generic, pre-generated, and both CPU and CUDA // JIT kernels. -#include "GB_monoid_shared_definitions.h" +#include "include/GB_monoid_shared_definitions.h" #ifndef GB_MXM_SHARED_DEFINITIONS_H #define GB_MXM_SHARED_DEFINITIONS_H @@ -56,16 +56,6 @@ #define GB_IS_PLUS_PAIR_BIG_SEMIRING 0 #endif -// 1 for PLUS_PAIR_FC32 -// #ifndef GB_IS_PLUS_PAIR_FC32_SEMIRING -// #define GB_IS_PLUS_PAIR_FC32_SEMIRING 0 -// #endif - -// 1 for PLUS_PAIR_FC64 -// #ifndef GB_IS_PLUS_PAIR_FC64_SEMIRING -// #define GB_IS_PLUS_PAIR_FC64_SEMIRING 0 -// #endif - // 1 for MIN_FIRSTJ #ifndef GB_IS_MIN_FIRSTJ_SEMIRING #define GB_IS_MIN_FIRSTJ_SEMIRING 0 @@ -175,6 +165,11 @@ #define GB_PAIR_ONE 1 #endif + // Zx [p] += aik * bkj where Zx is ztype + #ifndef GB_MULTADD2 + #define GB_MULTADD2(Zx,p,a,b,i,k,j) + #endif + #else //-------------------------------------------------------------------------- @@ -183,7 +178,8 @@ // These definitions require explicit types to be used, not GB_void. // Generic methods using GB_void for all types, memcpy, and function - // pointers for all computations must #define these macros first. + // pointers for all computations must #define these macros first, + // or #undef them and re-#define them. // declare a scalar of ztype #ifndef GB_CIJ_DECLARE @@ -231,5 +227,11 @@ #define GB_PAIR_ONE ((GB_Z_TYPE) 1) #endif + // Zx [p] += aik * bkj where Zx is ztype + #ifndef GB_MULTADD2 + #define GB_MULTADD2(Zx,p,a,b,i,k,j) GB_MULTADD (Zx [p], a, b, i, k, j) + #endif + #endif #endif + diff --git a/GraphBLAS/Source/Template/GB_saxpy3task_struct.h b/GraphBLAS/Source/mxm/include/GB_saxpy3task_struct.h similarity index 100% rename from GraphBLAS/Source/Template/GB_saxpy3task_struct.h rename to GraphBLAS/Source/mxm/include/GB_saxpy3task_struct.h diff --git a/GraphBLAS/Source/Template/GB_AxB_dot2_meta.c b/GraphBLAS/Source/mxm/template/GB_AxB_dot2_meta.c similarity index 93% rename from GraphBLAS/Source/Template/GB_AxB_dot2_meta.c rename to GraphBLAS/Source/mxm/template/GB_AxB_dot2_meta.c index f09a3b3b05..32532da4fa 100644 --- a/GraphBLAS/Source/Template/GB_AxB_dot2_meta.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_dot2_meta.c @@ -9,8 +9,8 @@ #define GB_DOT2 -#include "GB_unused.h" -#include "GB_AxB_dot_cij.h" +#include "include/GB_unused.h" +#include "include/GB_AxB_dot_cij.h" { @@ -100,8 +100,8 @@ GB_DECLARE_TERMINAL_CONST (zterminal) ; #define GB_META16 - #include "GB_meta16_definitions.h" - #include "GB_AxB_dot2_template.c" + #include "include/GB_meta16_definitions.h" + #include "template/GB_AxB_dot2_template.c" #else @@ -139,7 +139,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" } else if (A_is_bitmap) { @@ -155,7 +155,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" } else { @@ -171,7 +171,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" } #undef GB_A_NOT_TRANSPOSED } @@ -192,7 +192,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" } else if (A_is_full) { @@ -206,7 +206,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" } else { @@ -221,7 +221,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" } #undef GB_C_IS_FULL #define GB_C_IS_FULL 0 @@ -230,7 +230,7 @@ { // C = A'*B, via dot2 method, where A is implicitly transposed, // C is bitmap - #include "GB_meta16_factory.c" + #include "template/GB_meta16_factory.c" } } @@ -287,7 +287,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" #undef GB_ANY_SPECIALIZED } @@ -320,7 +320,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" } else { @@ -333,14 +333,14 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" } #undef GB_A_NOT_TRANSPOSED } else { // C<#>M = A'*B, via dot2 method, A is implicitly transposed - #include "GB_meta16_factory.c" + #include "template/GB_meta16_factory.c" } } } diff --git a/GraphBLAS/Source/Template/GB_AxB_dot2_template.c b/GraphBLAS/Source/mxm/template/GB_AxB_dot2_template.c similarity index 99% rename from GraphBLAS/Source/Template/GB_AxB_dot2_template.c rename to GraphBLAS/Source/mxm/template/GB_AxB_dot2_template.c index ceff7b64fd..c8616e197d 100644 --- a/GraphBLAS/Source/Template/GB_AxB_dot2_template.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_dot2_template.c @@ -212,7 +212,7 @@ #if GB_IS_PLUS_PAIR_REAL_SEMIRING cij = 0 ; #endif - #include "GB_AxB_dot_cij.c" + #include "template/GB_AxB_dot_cij.c" } } } diff --git a/GraphBLAS/Source/Template/GB_AxB_dot3_meta.c b/GraphBLAS/Source/mxm/template/GB_AxB_dot3_meta.c similarity index 94% rename from GraphBLAS/Source/Template/GB_AxB_dot3_meta.c rename to GraphBLAS/Source/mxm/template/GB_AxB_dot3_meta.c index 7308d4b34d..2d3a832356 100644 --- a/GraphBLAS/Source/Template/GB_AxB_dot3_meta.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_dot3_meta.c @@ -8,15 +8,15 @@ //------------------------------------------------------------------------------ // This template is #include'd in 3 ways to construct: -// * a generic method: Template/GB_AxB_dot_generic.c) +// * a generic method: mxm/factory/GB_AxB_dot_generic.c // * a Factory method: FactoryKernels/GB_AxB_*, the Adot3B method -// * a JIT kernel: JitKernels/GB_jit_kernel_AxB_dot3.c +// * a JIT kernel: jit_kernels/GB_jit_kernel_AxB_dot3.c #define GB_DOT3 #define GB_DOT3_PHASE2 -#include "GB_unused.h" -#include "GB_AxB_dot_cij.h" +#include "include/GB_unused.h" +#include "include/GB_AxB_dot_cij.h" // GB_DOT_ALWAYS_SAVE_CIJ: C(i,j) = cij #if GB_CIJ_CHECK @@ -154,8 +154,8 @@ { GB_DECLARE_TERMINAL_CONST (zterminal) ; #define GB_META16 - #include "GB_meta16_definitions.h" - #include "GB_AxB_dot3_template.c" + #include "include/GB_meta16_definitions.h" + #include "template/GB_AxB_dot3_template.c" } #else { @@ -174,14 +174,14 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_AxB_dot3_template.c" + #include "template/GB_AxB_dot3_template.c" #undef GB_MASK_SPARSE_STRUCTURAL_AND_NOT_COMPLEMENTED } else { // general case const size_t msize = M->type->size ; - #include "GB_meta16_factory.c" + #include "template/GB_meta16_factory.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_AxB_dot3_phase1_template.c b/GraphBLAS/Source/mxm/template/GB_AxB_dot3_phase1_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_dot3_phase1_template.c rename to GraphBLAS/Source/mxm/template/GB_AxB_dot3_phase1_template.c diff --git a/GraphBLAS/Source/Template/GB_AxB_dot3_template.c b/GraphBLAS/Source/mxm/template/GB_AxB_dot3_template.c similarity index 99% rename from GraphBLAS/Source/Template/GB_AxB_dot3_template.c rename to GraphBLAS/Source/mxm/template/GB_AxB_dot3_template.c index d9cdb407d3..d60d2f2cfd 100644 --- a/GraphBLAS/Source/Template/GB_AxB_dot3_template.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_dot3_template.c @@ -152,7 +152,7 @@ #endif { // C(i,j) = A(:,i)'*B(:,j) - #include "GB_AxB_dot_cij.c" + #include "template/GB_AxB_dot_cij.c" } } diff --git a/GraphBLAS/Source/Template/GB_AxB_dot4_cij.c b/GraphBLAS/Source/mxm/template/GB_AxB_dot4_cij.c similarity index 92% rename from GraphBLAS/Source/Template/GB_AxB_dot4_cij.c rename to GraphBLAS/Source/mxm/template/GB_AxB_dot4_cij.c index 2d4fa79564..89acd2b073 100644 --- a/GraphBLAS/Source/Template/GB_AxB_dot4_cij.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_dot4_cij.c @@ -45,8 +45,9 @@ cij = (GB_C_TYPE) (t & 0xFFL) ; } #elif GB_IS_PLUS_PAIR_16_SEMIRING - { + { // (PLUS int16, uint16 monoids)_PAIR semirings + // this is only used by the JIT uint64_t t = ((uint64_t) cij) + ainz ; cij = (GB_C_TYPE) (t & 0xFFFFL) ; } @@ -61,16 +62,6 @@ // (PLUS int64, uint64, float, or double)_PAIR semirings cij += (GB_C_TYPE) ainz ; } -// #elif GB_IS_PLUS_PAIR_FC32_SEMIRING -// { -// // (PLUS monoid for float complex)_PAIR semiring -// cij = GJ_CMPLX32 (GB_crealf (cij) + (float) ainz, GB_imagf (cij)) ; -// } -// #elif GB_IS_PLUS_PAIR_FC64_SEMIRING -// { -// // (PLUS monoid for double complex)_PAIR semiring -// cij = GJ_CMPLX64 (GB_creal (cij) + (double) ainz, GB_imag (cij)) ; -// } #elif GB_IS_MIN_FIRSTJ_SEMIRING { // MIN_FIRSTJ semiring: take the 1st entry in A(:,i) diff --git a/GraphBLAS/Source/Template/GB_AxB_dot4_meta.c b/GraphBLAS/Source/mxm/template/GB_AxB_dot4_meta.c similarity index 96% rename from GraphBLAS/Source/Template/GB_AxB_dot4_meta.c rename to GraphBLAS/Source/mxm/template/GB_AxB_dot4_meta.c index 422ef700eb..b6b535f422 100644 --- a/GraphBLAS/Source/Template/GB_AxB_dot4_meta.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_dot4_meta.c @@ -111,10 +111,10 @@ #ifdef GB_JIT_KERNEL #define GB_META16 - #include "GB_meta16_definitions.h" - #include "GB_AxB_dot4_template.c" + #include "include/GB_meta16_definitions.h" + #include "template/GB_AxB_dot4_template.c" #else - #include "GB_meta16_factory.c" + #include "template/GB_meta16_factory.c" #endif } diff --git a/GraphBLAS/Source/Template/GB_AxB_dot4_template.c b/GraphBLAS/Source/mxm/template/GB_AxB_dot4_template.c similarity index 97% rename from GraphBLAS/Source/Template/GB_AxB_dot4_template.c rename to GraphBLAS/Source/mxm/template/GB_AxB_dot4_template.c index 5ad4c95318..a8fa7b4547 100644 --- a/GraphBLAS/Source/Template/GB_AxB_dot4_template.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_dot4_template.c @@ -112,8 +112,9 @@ cij = (GB_C_TYPE) (t & 0xFFL) ; } #elif GB_IS_PLUS_PAIR_16_SEMIRING - { + { // (PLUS int16, uint16 monoids)_PAIR semirings + // this is only used by the JIT uint64_t t = ((uint64_t) cij) + vlen ; cij = (GB_C_TYPE) (t & 0xFFFFL) ; } @@ -128,16 +129,6 @@ // (PLUS int64, uint64, float, or double)_PAIR semirings cij += (GB_C_TYPE) vlen ; } -// #elif GB_IS_PLUS_PAIR_FC32_SEMIRING -// { -// // (PLUS monoid for float complex)_PAIR semiring -// cij = GJ_CMPLX32 (GB_crealf (cij) + (float) vlen, 0) ; -// } -// #elif GB_IS_PLUS_PAIR_FC64_SEMIRING -// { -// // (PLUS monoid for double complex)_PAIR semiring -// cij = GJ_CMPLX64 (GB_creal (cij) + (double) vlen, 0) ; -// } #elif GB_IS_MIN_FIRSTJ_SEMIRING { // MIN_FIRSTJ semiring: take the first entry @@ -396,7 +387,7 @@ const int64_t pA_end = Ap [kA+1] ; const int64_t ainz = pA_end - pA ; // C(i) += A(:,i)'*B(:,0) - #include "GB_AxB_dot4_cij.c" + #include "template/GB_AxB_dot4_cij.c" } #undef pC_start #undef pB @@ -428,7 +419,7 @@ const int64_t pC_start = j * cvlen ; const int64_t pB = j * vlen ; // C(i,j) += A(:,i)'*B(:,j) - #include "GB_AxB_dot4_cij.c" + #include "template/GB_AxB_dot4_cij.c" } } } @@ -794,8 +785,9 @@ cij = (GB_C_TYPE) (t & 0xFFL) ; } #elif GB_IS_PLUS_PAIR_16_SEMIRING - { + { // (PLUS int16, uint16 monoids)_PAIR semirings + // this is only used by the JIT uint64_t t = ((uint64_t) cij) + bjnz ; cij = (GB_C_TYPE) (t & 0xFFFFL) ; } @@ -810,16 +802,6 @@ // (PLUS int64, uint64, float, or double)_PAIR semirings cij += (GB_C_TYPE) bjnz ; } -// #elif GB_IS_PLUS_PAIR_FC32_SEMIRING -// { -// // (PLUS monoid for float complex)_PAIR semiring -// cij = GJ_CMPLX32 (GB_crealf (cij) + (float) bjnz, 0) ; -// } -// #elif GB_IS_PLUS_PAIR_FC64_SEMIRING -// { -// // (PLUS monoid for double complex)_PAIR semiring -// cij = GJ_CMPLX64 (GB_creal (cij) + (double) bjnz, 0) ; -// } #elif GB_IS_MIN_FIRSTJ_SEMIRING { // MIN_FIRSTJ semiring: take the first entry in B(:,j) diff --git a/GraphBLAS/Source/Template/GB_AxB_dot_cij.c b/GraphBLAS/Source/mxm/template/GB_AxB_dot_cij.c similarity index 94% rename from GraphBLAS/Source/Template/GB_AxB_dot_cij.c rename to GraphBLAS/Source/mxm/template/GB_AxB_dot_cij.c index d9dd0bc46c..5c586b32af 100644 --- a/GraphBLAS/Source/Template/GB_AxB_dot_cij.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_dot_cij.c @@ -31,7 +31,7 @@ // entirely populated. // The #include'ing file must use GB_DECLARE_TERMINAL_CONST (zterminal), -// or define zterminal another way (see Template/GB_AxB_dot_generic.c). +// or define zterminal another way (see mxm/factory/GB_AxB_dot_generic.c). #ifndef GB_MXM_SHARED_DEFINITIONS_H #error "undefined" @@ -80,8 +80,9 @@ cij = (GB_C_TYPE) (((uint64_t) vlen) & 0xFFL) ; } #elif GB_IS_PLUS_PAIR_16_SEMIRING - { + { // (PLUS int16, uint16 monoids)_PAIR semirings + // this is only used by the JIT cij = (GB_C_TYPE) (((uint64_t) vlen) & 0xFFFFL) ; } #elif GB_IS_PLUS_PAIR_32_SEMIRING @@ -94,16 +95,6 @@ // (PLUS int64, uint64, float, or double)_PAIR semirings cij = (GB_C_TYPE) vlen ; } -// #elif GB_IS_PLUS_PAIR_FC32_SEMIRING -// { -// // (PLUS monoid for float complex)_PAIR semiring -// cij = GJ_CMPLX32 ((float) vlen, 0) ; -// } -// #elif GB_IS_PLUS_PAIR_FC64_SEMIRING -// { -// // (PLUS monoid for double complex)_PAIR semiring -// cij = GJ_CMPLX64 ((double) vlen, 0) ; -// } #elif GB_IS_MIN_FIRSTJ_SEMIRING { // MIN_FIRSTJ semiring: take the first entry @@ -206,8 +197,9 @@ cij = (GB_C_TYPE) (((uint64_t) bjnz) & 0xFFL) ; } #elif GB_IS_PLUS_PAIR_16_SEMIRING - { + { // (PLUS int16, uint16 monoids)_PAIR semirings + // this is only used by the JIT cij = (GB_C_TYPE) (((uint64_t) bjnz) & 0xFFFFL) ; } #elif GB_IS_PLUS_PAIR_32_SEMIRING @@ -220,16 +212,6 @@ // (PLUS int64, uint64, float, or double)_PAIR semirings cij = (GB_C_TYPE) bjnz ; } -// #elif GB_IS_PLUS_PAIR_FC32_SEMIRING -// { -// // (PLUS monoid for float complex)_PAIR semiring -// cij = GJ_CMPLX32 ((float) bjnz, 0) ; -// } -// #elif GB_IS_PLUS_PAIR_FC64_SEMIRING -// { -// // (PLUS monoid for double complex)_PAIR semiring -// cij = GJ_CMPLX64 ((double) bjnz, 0) ; -// } #elif GB_IS_MIN_FIRSTJ_SEMIRING { // MIN_FIRSTJ semiring: take the first entry in B(:,j) @@ -431,8 +413,9 @@ cij = (GB_C_TYPE) (((uint64_t) ainz) & 0xFFL) ; } #elif GB_IS_PLUS_PAIR_16_SEMIRING - { + { // (PLUS int16, uint16 monoids)_PAIR semirings + // this is only used by the JIT cij = (GB_C_TYPE) (((uint64_t) ainz) & 0xFFFFL) ; } #elif GB_IS_PLUS_PAIR_32_SEMIRING @@ -445,16 +428,6 @@ // (PLUS int64, uint64, float, or double)_PAIR semirings cij = (GB_C_TYPE) ainz ; } -// #elif GB_IS_PLUS_PAIR_FC32_SEMIRING -// { -// // (PLUS monoid for float complex)_PAIR semiring -// cij = GJ_CMPLX32 ((float) ainz, 0) ; -// } -// #elif GB_IS_PLUS_PAIR_FC64_SEMIRING -// { -// // (PLUS monoid for double complex)_PAIR semiring -// cij = GJ_CMPLX64 ((double) ainz, 0) ; -// } #elif GB_IS_MIN_FIRSTJ_SEMIRING { // MIN_FIRSTJ semiring: take the first entry in A(:,i) diff --git a/GraphBLAS/Source/Template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c similarity index 98% rename from GraphBLAS/Source/Template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c index 48d62bf737..568af03873 100644 --- a/GraphBLAS/Source/Template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c @@ -12,7 +12,7 @@ // no accumulator is used -// This template is used by Template/GB_AxB_saxbit_template, for all cases: +// This template is used by mxm/template/GB_AxB_saxbit_template, for all cases: // generic kernels, factory kernels (including the ANY_PAIR monoid), and JIT // kernels. @@ -117,22 +117,22 @@ #undef GB_MULT_A_ik_G_kj #if ( GB_IS_PAIR_MULTIPLIER && !GB_Z_IS_COMPLEX ) // t = A(i,k) * B (k,j) is already #defined as 1 - #define GB_MULT_A_ik_G_kj(gkj,jj) + #define GB_MULT_A_ik_G_kj(gkj,i,jj) #else // t = A(i,k) * B (k,j) - #define GB_MULT_A_ik_G_kj(gkj,jj) \ + #define GB_MULT_A_ik_G_kj(gkj,i,jj) \ GB_CIJ_DECLARE (t) ; \ GB_MULT (t, aik, gkj, i, k, j1 + jj) #endif #undef GB_HX_COMPUTE - #define GB_HX_COMPUTE(gkj,gb,jj) \ + #define GB_HX_COMPUTE(pH,i,gkj,gb,jj) \ { \ /* H (i,jj) += A(i,k) * B(k,j) */ \ if (GB_B_kj_PRESENT (gb)) \ { \ /* t = A(i,k) * B (k,j) */ \ - GB_MULT_A_ik_G_kj (gkj, jj) ; \ + GB_MULT_A_ik_G_kj (gkj, i, jj) ; \ if (Hf [pH+jj] == 0) \ { \ /* H(i,jj) is a new entry */ \ @@ -148,7 +148,10 @@ } \ } - #include "GB_AxB_saxpy4_panel.c" + #include "template/GB_AxB_saxpy4_panel.c" + #undef GB_MULT_A_ik_G_kj + #undef GB_HX_COMPUTE + #undef GB_B_kj_PRESENT //-------------------------------------------------------------- // C<#M>(:,j1:j2-1) = H diff --git a/GraphBLAS/Source/Template/GB_AxB_saxbit_template.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxbit_template.c similarity index 94% rename from GraphBLAS/Source/Template/GB_AxB_saxbit_template.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxbit_template.c index 2e1e3c226b..e71257ee73 100644 --- a/GraphBLAS/Source/Template/GB_AxB_saxbit_template.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_saxbit_template.c @@ -174,11 +174,11 @@ #if ( GB_A_IS_SPARSE || GB_A_IS_HYPER ) { - #include "GB_AxB_saxbit_A_sparse_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c" } #else { - #include "GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" } #endif @@ -237,14 +237,14 @@ // A is sparse/hyper, B is bitmap, no mask #undef GB_B_IS_BITMAP #define GB_B_IS_BITMAP 1 - #include "GB_AxB_saxbit_A_sparse_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c" } else { // A is sparse/hyper, B is full, no mask #undef GB_B_IS_BITMAP #define GB_B_IS_BITMAP 0 - #include "GB_AxB_saxbit_A_sparse_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c" } #undef GB_MASK_IS_SPARSE_OR_HYPER #undef GB_MASK_IS_BITMAP_OR_FULL @@ -268,14 +268,14 @@ // A is sparse/hyper, B is bitmap, M is sparse/hyper #undef GB_B_IS_BITMAP #define GB_B_IS_BITMAP 1 - #include "GB_AxB_saxbit_A_sparse_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c" } else { // A is sparse/hyper, B is full, M is sparse/hyper #undef GB_B_IS_BITMAP #define GB_B_IS_BITMAP 0 - #include "GB_AxB_saxbit_A_sparse_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c" } #undef GB_MASK_IS_SPARSE_OR_HYPER #undef GB_MASK_IS_BITMAP_OR_FULL @@ -297,14 +297,14 @@ // A is sparse/hyper, B is bitmap, M is bitmap/full #undef GB_B_IS_BITMAP #define GB_B_IS_BITMAP 1 - #include "GB_AxB_saxbit_A_sparse_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c" } else { // A is sparse/hyper, B is full, M is bitmap/full #undef GB_B_IS_BITMAP #define GB_B_IS_BITMAP 0 - #include "GB_AxB_saxbit_A_sparse_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c" } #undef GB_MASK_IS_SPARSE_OR_HYPER #undef GB_MASK_IS_BITMAP_OR_FULL @@ -355,7 +355,7 @@ #define GB_MASK_IS_BITMAP_OR_FULL 0 #undef keep #define keep 1 - #include "GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" #undef GB_MASK_IS_SPARSE_OR_HYPER #undef GB_MASK_IS_BITMAP_OR_FULL @@ -371,7 +371,7 @@ #define GB_MASK_IS_BITMAP_OR_FULL 0 #undef keep const int8_t keep = (Mask_comp) ? 1 : 3 ; - #include "GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" #undef GB_MASK_IS_SPARSE_OR_HYPER #undef GB_MASK_IS_BITMAP_OR_FULL @@ -387,7 +387,7 @@ #define GB_MASK_IS_BITMAP_OR_FULL 1 #undef keep #define keep 1 - #include "GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" + #include "template/GB_AxB_saxbit_A_bitmap_B_bitmap_template.c" #undef GB_MASK_IS_SPARSE_OR_HYPER #undef GB_MASK_IS_BITMAP_OR_FULL } diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_M_phase1.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_M_phase1.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_M_phase1.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_M_phase1.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_M_phase5.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_M_phase5.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_M_phase5.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_M_phase5.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_noM_phase1.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_noM_phase1.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_noM_phase1.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_noM_phase1.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_noM_phase5.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_noM_phase5.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_noM_phase5.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_noM_phase5.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_notM_phase1.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_notM_phase1.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_notM_phase1.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_notM_phase1.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_notM_phase5.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_notM_phase5.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseGus_notM_phase5.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseGus_notM_phase5.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_M_phase1.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_M_phase1.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_M_phase1.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_M_phase1.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_M_phase5.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_M_phase5.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_M_phase5.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_M_phase5.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_notM_phase1.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_notM_phase1.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_notM_phase1.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_notM_phase1.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_notM_phase5.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_notM_phase5.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_notM_phase5.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_notM_phase5.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_phase1.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_phase1.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_phase1.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_phase5.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_phase5.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_coarseHash_phase5.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_coarseHash_phase5.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_fineGus_M_phase2.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineGus_M_phase2.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_fineGus_M_phase2.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineGus_M_phase2.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_fineGus_notM_phase2.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineGus_notM_phase2.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_fineGus_notM_phase2.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineGus_notM_phase2.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_fineGus_phase2.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineGus_phase2.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_fineGus_phase2.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineGus_phase2.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_fineHash_M_phase2.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineHash_M_phase2.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_fineHash_M_phase2.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineHash_M_phase2.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_fineHash_notM_phase2.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineHash_notM_phase2.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_fineHash_notM_phase2.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineHash_notM_phase2.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_fineHash_phase2.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineHash_phase2.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_fineHash_phase2.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_fineHash_phase2.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy3_template.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_template.c similarity index 93% rename from GraphBLAS/Source/Template/GB_AxB_saxpy3_template.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_template.c index cac0998879..2efb196f52 100644 --- a/GraphBLAS/Source/Template/GB_AxB_saxpy3_template.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy3_template.c @@ -10,7 +10,7 @@ // GB_AxB_saxpy3_template.c computes C=A*B for any semiring and matrix types, // where C is sparse or hypersparse. -#include "GB_unused.h" +#include "include/GB_unused.h" //------------------------------------------------------------------------------ // template code for C=A*B via the saxpy3 method @@ -172,17 +172,17 @@ #if ( GB_NO_MASK ) { // phase2: fine Gustavson task, C(:,j)=A*B(:,j) - #include "GB_AxB_saxpy3_fineGus_phase2.c" + #include "template/GB_AxB_saxpy3_fineGus_phase2.c" } #elif ( !GB_MASK_COMP ) { // phase2: fine Gustavson task, C(:,j)=A*B(:,j) - #include "GB_AxB_saxpy3_fineGus_M_phase2.c" + #include "template/GB_AxB_saxpy3_fineGus_M_phase2.c" } #else { // phase2: fine Gustavson task, C(:,j)=A*B(:,j) - #include "GB_AxB_saxpy3_fineGus_notM_phase2.c" + #include "template/GB_AxB_saxpy3_fineGus_notM_phase2.c" } #endif @@ -230,7 +230,7 @@ // no mask present, or mask ignored #undef GB_CHECK_MASK_ij - #include "GB_AxB_saxpy3_fineHash_phase2.c" + #include "template/GB_AxB_saxpy3_fineHash_phase2.c" } #elif ( !GB_MASK_COMP ) @@ -251,7 +251,7 @@ #undef GB_CHECK_MASK_ij #define GB_CHECK_MASK_ij \ if (!Mjb [i]) continue ; - #include "GB_AxB_saxpy3_fineHash_phase2.c" + #include "template/GB_AxB_saxpy3_fineHash_phase2.c" } else { @@ -261,13 +261,13 @@ const int64_t pM = pM_start + i ; \ GB_GET_M_ij (pM) ; \ if (!mij) continue ; - #include "GB_AxB_saxpy3_fineHash_phase2.c" + #include "template/GB_AxB_saxpy3_fineHash_phase2.c" } } else { // M(:,j) is sparse and scattered into Hf - #include "GB_AxB_saxpy3_fineHash_M_phase2.c" + #include "template/GB_AxB_saxpy3_fineHash_M_phase2.c" } } @@ -289,7 +289,7 @@ #undef GB_CHECK_MASK_ij #define GB_CHECK_MASK_ij \ if (Mjb [i]) continue ; - #include "GB_AxB_saxpy3_fineHash_phase2.c" + #include "template/GB_AxB_saxpy3_fineHash_phase2.c" } else { @@ -299,13 +299,13 @@ const int64_t pM = pM_start + i ; \ GB_GET_M_ij (pM) ; \ if (mij) continue ; - #include "GB_AxB_saxpy3_fineHash_phase2.c" + #include "template/GB_AxB_saxpy3_fineHash_phase2.c" } } else { // M(:,j) is sparse/hyper and scattered into Hf - #include "GB_AxB_saxpy3_fineHash_notM_phase2.c" + #include "template/GB_AxB_saxpy3_fineHash_notM_phase2.c" } } #endif @@ -472,17 +472,17 @@ #if ( GB_NO_MASK ) { // phase5: coarse Gustavson task, C=A*B - #include "GB_AxB_saxpy3_coarseGus_noM_phase5.c" + #include "template/GB_AxB_saxpy3_coarseGus_noM_phase5.c" } #elif ( !GB_MASK_COMP ) { // phase5: coarse Gustavson task, C=A*B - #include "GB_AxB_saxpy3_coarseGus_M_phase5.c" + #include "template/GB_AxB_saxpy3_coarseGus_M_phase5.c" } #else { // phase5: coarse Gustavson task, C=A*B - #include "GB_AxB_saxpy3_coarseGus_notM_phase5.c" + #include "template/GB_AxB_saxpy3_coarseGus_notM_phase5.c" } #endif @@ -506,7 +506,7 @@ // no mask present, or mask ignored (see below) #undef GB_CHECK_MASK_ij - #include "GB_AxB_saxpy3_coarseHash_phase5.c" + #include "template/GB_AxB_saxpy3_coarseHash_phase5.c" } #elif ( !GB_MASK_COMP ) @@ -526,7 +526,7 @@ #undef GB_CHECK_MASK_ij #define GB_CHECK_MASK_ij \ if (!Mjb [i]) continue ; - #include "GB_AxB_saxpy3_coarseHash_phase5.c" + #include "template/GB_AxB_saxpy3_coarseHash_phase5.c" } else { @@ -536,13 +536,13 @@ const int64_t pM = pM_start + i ; \ GB_GET_M_ij (pM) ; \ if (!mij) continue ; - #include "GB_AxB_saxpy3_coarseHash_phase5.c" + #include "template/GB_AxB_saxpy3_coarseHash_phase5.c" } } else { // M is sparse and scattered into Hf - #include "GB_AxB_saxpy3_coarseHash_M_phase5.c" + #include "template/GB_AxB_saxpy3_coarseHash_M_phase5.c" } } @@ -563,7 +563,7 @@ #undef GB_CHECK_MASK_ij #define GB_CHECK_MASK_ij \ if (Mjb [i]) continue ; - #include "GB_AxB_saxpy3_coarseHash_phase5.c" + #include "template/GB_AxB_saxpy3_coarseHash_phase5.c" } else { @@ -573,13 +573,13 @@ const int64_t pM = pM_start + i ; \ GB_GET_M_ij (pM) ; \ if (mij) continue ; - #include "GB_AxB_saxpy3_coarseHash_phase5.c" + #include "template/GB_AxB_saxpy3_coarseHash_phase5.c" } } else { // M is sparse and scattered into Hf - #include "GB_AxB_saxpy3_coarseHash_notM_phase5.c" + #include "template/GB_AxB_saxpy3_coarseHash_notM_phase5.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy4_meta.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy4_meta.c similarity index 83% rename from GraphBLAS/Source/Template/GB_AxB_saxpy4_meta.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy4_meta.c index ef030b850c..d581211daa 100644 --- a/GraphBLAS/Source/Template/GB_AxB_saxpy4_meta.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy4_meta.c @@ -40,19 +40,36 @@ #endif const int8_t *restrict Bb = B->b ; - const bool B_iso = B->iso ; const int64_t bvlen = B->vlen ; const int64_t bvdim = B->vdim ; + + #ifdef GB_JIT_KERNEL + #define B_is_bitmap GB_B_IS_BITMAP + #define B_iso GB_B_ISO + #else const bool B_is_bitmap = GB_IS_BITMAP (B) ; - ASSERT (B_is_bitmap || GB_IS_FULL (B)) ; + const bool B_iso = B->iso ; + #endif + + ASSERT (GB_IS_BITMAP (B) || GB_IS_FULL (B)) ; const int64_t *restrict Ap = A->p ; const int64_t *restrict Ah = A->h ; const int64_t *restrict Ai = A->i ; - const bool A_iso = A->iso ; const int64_t anvec = A->nvec ; const int64_t avlen = A->vlen ; const int64_t avdim = A->vdim ; + + #ifdef GB_JIT_KERNEL + #define A_is_hyper GB_A_IS_HYPER + #define A_is_sparse GB_A_IS_SPARSE + #define A_iso GB_A_ISO + #else + const bool A_is_hyper = GB_IS_HYPERSPARSE (A) ; + const bool A_is_sparse = GB_IS_SPARSE (A) ; + const bool A_iso = A->iso ; + #endif + ASSERT (GB_IS_SPARSE (A) || GB_IS_HYPERSPARSE (A)) ; #if !GB_A_IS_PATTERN @@ -72,14 +89,14 @@ // A is sparse/hyper, B is bitmap, no mask #undef GB_B_IS_BITMAP #define GB_B_IS_BITMAP 1 - #include "GB_AxB_saxpy4_template.c" + #include "template/GB_AxB_saxpy4_template.c" } else { // A is sparse/hyper, B is full, no mask #undef GB_B_IS_BITMAP #define GB_B_IS_BITMAP 0 - #include "GB_AxB_saxpy4_template.c" + #include "template/GB_AxB_saxpy4_template.c" } #undef GB_B_IS_BITMAP } diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy4_panel.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy4_panel.c similarity index 80% rename from GraphBLAS/Source/Template/GB_AxB_saxpy4_panel.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy4_panel.c index 76da71e79b..25d4095848 100644 --- a/GraphBLAS/Source/Template/GB_AxB_saxpy4_panel.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy4_panel.c @@ -7,11 +7,11 @@ //------------------------------------------------------------------------------ -// This methods handles both C bitmap (Template/GB_AxB_saxpy4_panel.c) and C -// full (Template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c). Those methods -// define the GB_HX_COMPUTE macro for use in this method, which computes the -// single update: H (i,jj) += A(i,k) * B(k,j). The values of B have already -// been loaded into the panel G. +// This methods handles both C bitmap (mxm/template/GB_AxB_saxpy4_panel.c) and +// C full (mxm/template/GB_AxB_saxbit_A_sparse_B_bitmap_template.c). Those +// methods define the GB_HX_COMPUTE macro for use in this method, which +// computes the single update: H (i,jj) += A(i,k) * B(k,j). The values of B +// have already been loaded into the panel G. { switch (np) @@ -47,10 +47,10 @@ const int64_t pH = i * 4 ; GB_DECLAREA (aik) ; GB_GETA (aik, Ax, pA, A_iso) ; - GB_HX_COMPUTE (gk0, gb0, 0) ; - GB_HX_COMPUTE (gk1, gb1, 1) ; - GB_HX_COMPUTE (gk2, gb2, 2) ; - GB_HX_COMPUTE (gk3, gb3, 3) ; + GB_HX_COMPUTE (pH, i, gk0, gb0, 0) ; + GB_HX_COMPUTE (pH, i, gk1, gb1, 1) ; + GB_HX_COMPUTE (pH, i, gk2, gb2, 2) ; + GB_HX_COMPUTE (pH, i, gk3, gb3, 3) ; } } break ; @@ -82,9 +82,9 @@ const int64_t pH = i * 3 ; GB_DECLAREA (aik) ; GB_GETA (aik, Ax, pA, A_iso) ; - GB_HX_COMPUTE (gk0, gb0, 0) ; - GB_HX_COMPUTE (gk1, gb1, 1) ; - GB_HX_COMPUTE (gk2, gb2, 2) ; + GB_HX_COMPUTE (pH, i, gk0, gb0, 0) ; + GB_HX_COMPUTE (pH, i, gk1, gb1, 1) ; + GB_HX_COMPUTE (pH, i, gk2, gb2, 2) ; } } break ; @@ -113,8 +113,8 @@ const int64_t pH = i * 2 ; GB_DECLAREA (aik) ; GB_GETA (aik, Ax, pA, A_iso) ; - GB_HX_COMPUTE (gk0, gb0, 0) ; - GB_HX_COMPUTE (gk1, gb1, 1) ; + GB_HX_COMPUTE (pH, i, gk0, gb0, 0) ; + GB_HX_COMPUTE (pH, i, gk1, gb1, 1) ; } } break ; @@ -125,31 +125,27 @@ { // get A(:,k) const int64_t k = GBH_A (Ah, kA) ; - // get B(k,j1:j2-1) where j1 == j2-1 + // get B(k,j1) #if GB_B_IS_BITMAP const int8_t gb0 = Gb [k] ; if (!gb0) continue ; #endif - // H += A(:,k)*B(k,j1:j2-1) + // H += A(:,k)*B(k,j1) GB_DECLAREB (gk0) ; GB_GETB (gk0, Gx, k, B_iso) ; const int64_t pA_end = Ap [kA+1] ; for (int64_t pA = Ap [kA] ; pA < pA_end ; pA++) { - const int64_t i = Ai [pA] ; - const int64_t pH = i ; + // aik = A (i,j) GB_DECLAREA (aik) ; GB_GETA (aik, Ax, pA, A_iso) ; - GB_HX_COMPUTE (gk0, 1, 0) ; + // H (i) += aik * gk0 + GB_HX_COMPUTE (Ai [pA], Ai [pA], gk0, 1, 0) ; } } break ; default:; } - - #undef GB_HX_COMPUTE - #undef GB_B_kj_PRESENT - #undef GB_MULT_A_ik_G_kj } diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy4_template.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy4_template.c similarity index 92% rename from GraphBLAS/Source/Template/GB_AxB_saxpy4_template.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy4_template.c index 6c7d6c06fc..8e8bcbda21 100644 --- a/GraphBLAS/Source/Template/GB_AxB_saxpy4_template.c +++ b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy4_template.c @@ -11,7 +11,7 @@ // C += A*B is computed with the accumulator identical to the monoid. -// This template is used by Template/GB_AxB_saxpy4_meta. It is not used +// This template is used by mxm/template/GB_AxB_saxpy4_meta. It is not used // for the generic case, nor for the ANY_PAIR case. It is only used for the // pre-generated kernels, and for the JIT. @@ -118,38 +118,26 @@ // H += A*G for one panel //-------------------------------------------------------------- - #undef GB_B_kj_PRESENT - #if GB_B_IS_BITMAP - #define GB_B_kj_PRESENT(b) b - #else - #define GB_B_kj_PRESENT(b) 1 - #endif + // GB_HX_COMPUTE: computes H (i,jj) += A(i,k) * B(k,j) + // where H(i,jj) is located at Hx [pH+jj], aij = A(i,k), + // and gkj = B(k,j). gb is the bitmap value for B(k,j). - #undef GB_MULT_A_ik_G_kj - #if ( GB_IS_PAIR_MULTIPLIER && !GB_Z_IS_COMPLEX ) - // t = A(i,k) * B (k,j) is already #defined as 1 - #define GB_MULT_A_ik_G_kj(gkj,jj) + #undef GB_HX_COMPUTE + #if GB_B_IS_BITMAP + #define GB_HX_COMPUTE(pH,i,gkj,gb,jj) \ + if (gb) \ + { \ + GB_MULTADD2 (Hx, pH+jj, aik, gkj, i, k, j1+jj) ; \ + } #else - // t = A(i,k) * B (k,j) - #define GB_MULT_A_ik_G_kj(gkj,jj) \ - GB_CIJ_DECLARE (t) ; \ - GB_MULT (t, aik, gkj, i, k, j1 + jj) + #define GB_HX_COMPUTE(pH,i,gkj,gb,jj) \ + { \ + GB_MULTADD2 (Hx, pH+jj, aik, gkj, i, k, j1+jj) ; \ + } #endif - #undef GB_HX_COMPUTE - #define GB_HX_COMPUTE(gkj,gb,jj) \ - { \ - /* H (i,jj) += A(i,k) * B(k,j) */ \ - if (GB_B_kj_PRESENT (gb)) \ - { \ - /* t = A(i,k) * B (k,j) */ \ - GB_MULT_A_ik_G_kj (gkj, jj) ; \ - /* Hx(i,jj)+=t */ \ - GB_HX_UPDATE (pH+jj, t) ; \ - } \ - } - - #include "GB_AxB_saxpy4_panel.c" + #include "template/GB_AxB_saxpy4_panel.c" + #undef GB_HX_COMPUTE //-------------------------------------------------------------- // C(:,j1:j2-1) = H diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy5_A_bitmap.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy5_A_bitmap.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy5_A_bitmap.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy5_A_bitmap.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy5_A_iso_or_pattern.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy5_A_iso_or_pattern.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy5_A_iso_or_pattern.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy5_A_iso_or_pattern.c diff --git a/GraphBLAS/Source/Template/GB_AxB_saxpy5_unrolled.c b/GraphBLAS/Source/mxm/template/GB_AxB_saxpy5_unrolled.c similarity index 100% rename from GraphBLAS/Source/Template/GB_AxB_saxpy5_unrolled.c rename to GraphBLAS/Source/mxm/template/GB_AxB_saxpy5_unrolled.c diff --git a/GraphBLAS/Source/Template/GB_colscale_template.c b/GraphBLAS/Source/mxm/template/GB_colscale_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_colscale_template.c rename to GraphBLAS/Source/mxm/template/GB_colscale_template.c diff --git a/GraphBLAS/Source/Template/GB_meta16_factory.c b/GraphBLAS/Source/mxm/template/GB_meta16_factory.c similarity index 91% rename from GraphBLAS/Source/Template/GB_meta16_factory.c rename to GraphBLAS/Source/mxm/template/GB_meta16_factory.c index 6b38fa1216..e1bee825da 100644 --- a/GraphBLAS/Source/Template/GB_meta16_factory.c +++ b/GraphBLAS/Source/mxm/template/GB_meta16_factory.c @@ -30,7 +30,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else if (B_is_hyper) @@ -48,7 +48,7 @@ #define GB_B_IS_HYPER 1 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else if (B_is_bitmap) @@ -66,7 +66,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else @@ -84,7 +84,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } } @@ -105,7 +105,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else if (B_is_hyper) @@ -123,7 +123,7 @@ #define GB_B_IS_HYPER 1 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else if (B_is_bitmap) @@ -141,7 +141,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else @@ -159,7 +159,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } } @@ -180,7 +180,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else if (B_is_hyper) @@ -198,7 +198,7 @@ #define GB_B_IS_HYPER 1 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else if (B_is_bitmap) @@ -216,7 +216,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else @@ -234,7 +234,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } } @@ -255,7 +255,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else if (B_is_hyper) @@ -273,7 +273,7 @@ #define GB_B_IS_HYPER 1 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else if (B_is_bitmap) @@ -291,7 +291,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 1 #define GB_B_IS_FULL 0 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } else @@ -309,7 +309,7 @@ #define GB_B_IS_HYPER 0 #define GB_B_IS_BITMAP 0 #define GB_B_IS_FULL 1 - #include "GB_meta16_methods.c" + #include "template/GB_meta16_methods.c" } } @@ -320,5 +320,5 @@ //------------------------------------------------------------------------------ #undef GB_META16 -#include "GB_meta16_definitions.h" +#include "include/GB_meta16_definitions.h" diff --git a/GraphBLAS/Source/Template/GB_meta16_methods.c b/GraphBLAS/Source/mxm/template/GB_meta16_methods.c similarity index 79% rename from GraphBLAS/Source/Template/GB_meta16_methods.c rename to GraphBLAS/Source/mxm/template/GB_meta16_methods.c index 57d7a0ab0a..ab2d03f291 100644 --- a/GraphBLAS/Source/Template/GB_meta16_methods.c +++ b/GraphBLAS/Source/mxm/template/GB_meta16_methods.c @@ -10,17 +10,17 @@ { // declare macros that depend on the sparsity of A and B - #include "GB_meta16_definitions.h" + #include "include/GB_meta16_definitions.h" // dot product methods #if defined ( GB_DOT4 ) - #include "GB_AxB_dot4_template.c" + #include "template/GB_AxB_dot4_template.c" #elif defined ( GB_DOT3_PHASE1 ) - #include "GB_AxB_dot3_phase1_template.c" + #include "template/GB_AxB_dot3_phase1_template.c" #elif defined ( GB_DOT3_PHASE2 ) - #include "GB_AxB_dot3_template.c" + #include "template/GB_AxB_dot3_template.c" #elif defined ( GB_DOT2 ) - #include "GB_AxB_dot2_template.c" + #include "template/GB_AxB_dot2_template.c" #else #error "method undefined" diff --git a/GraphBLAS/Source/Template/GB_rowscale_template.c b/GraphBLAS/Source/mxm/template/GB_rowscale_template.c similarity index 94% rename from GraphBLAS/Source/Template/GB_rowscale_template.c rename to GraphBLAS/Source/mxm/template/GB_rowscale_template.c index cc22d86541..fcc849c959 100644 --- a/GraphBLAS/Source/Template/GB_rowscale_template.c +++ b/GraphBLAS/Source/mxm/template/GB_rowscale_template.c @@ -51,6 +51,9 @@ int ntasks = nthreads ; ntasks = GB_IMIN (bnz, ntasks) ; + // parition the space into ntasks, to do this in parallel: + // for (p = 0 ; p < bnz ; p++) { ... work on Bi [p] and Bx [p] ... } + int tid ; #pragma omp parallel for num_threads(nthreads) schedule(static) for (tid = 0 ; tid < ntasks ; tid++) diff --git a/GraphBLAS/Source/GB_nnz.c b/GraphBLAS/Source/nvals/GB_nnz.c similarity index 100% rename from GraphBLAS/Source/GB_nnz.c rename to GraphBLAS/Source/nvals/GB_nnz.c diff --git a/GraphBLAS/Source/GB_nnz.h b/GraphBLAS/Source/nvals/GB_nnz.h similarity index 100% rename from GraphBLAS/Source/GB_nnz.h rename to GraphBLAS/Source/nvals/GB_nnz.h diff --git a/GraphBLAS/Source/GB_nnz_full.c b/GraphBLAS/Source/nvals/GB_nnz_full.c similarity index 100% rename from GraphBLAS/Source/GB_nnz_full.c rename to GraphBLAS/Source/nvals/GB_nnz_full.c diff --git a/GraphBLAS/Source/GB_nnz_held.c b/GraphBLAS/Source/nvals/GB_nnz_held.c similarity index 100% rename from GraphBLAS/Source/GB_nnz_held.c rename to GraphBLAS/Source/nvals/GB_nnz_held.c diff --git a/GraphBLAS/Source/GB_nnz_max.c b/GraphBLAS/Source/nvals/GB_nnz_max.c similarity index 100% rename from GraphBLAS/Source/GB_nnz_max.c rename to GraphBLAS/Source/nvals/GB_nnz_max.c diff --git a/GraphBLAS/Source/GB_nvals.c b/GraphBLAS/Source/nvals/GB_nvals.c similarity index 100% rename from GraphBLAS/Source/GB_nvals.c rename to GraphBLAS/Source/nvals/GB_nvals.c diff --git a/GraphBLAS/Source/GB_nvals.h b/GraphBLAS/Source/nvals/GB_nvals.h similarity index 100% rename from GraphBLAS/Source/GB_nvals.h rename to GraphBLAS/Source/nvals/GB_nvals.h diff --git a/GraphBLAS/Source/GrB_Matrix_nvals.c b/GraphBLAS/Source/nvals/GrB_Matrix_nvals.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_nvals.c rename to GraphBLAS/Source/nvals/GrB_Matrix_nvals.c diff --git a/GraphBLAS/Source/GrB_Scalar_nvals.c b/GraphBLAS/Source/nvals/GrB_Scalar_nvals.c similarity index 100% rename from GraphBLAS/Source/GrB_Scalar_nvals.c rename to GraphBLAS/Source/nvals/GrB_Scalar_nvals.c diff --git a/GraphBLAS/Source/GrB_Vector_nvals.c b/GraphBLAS/Source/nvals/GrB_Vector_nvals.c similarity index 100% rename from GraphBLAS/Source/GrB_Vector_nvals.c rename to GraphBLAS/Source/nvals/GrB_Vector_nvals.c diff --git a/GraphBLAS/Source/GB_assert.h b/GraphBLAS/Source/ok/GB_assert.h similarity index 100% rename from GraphBLAS/Source/GB_assert.h rename to GraphBLAS/Source/ok/GB_assert.h diff --git a/GraphBLAS/Source/GB_ok.h b/GraphBLAS/Source/ok/GB_ok.h similarity index 100% rename from GraphBLAS/Source/GB_ok.h rename to GraphBLAS/Source/ok/GB_ok.h diff --git a/GraphBLAS/Source/Template/GB_assert_kernels.h b/GraphBLAS/Source/ok/include/GB_assert_kernels.h similarity index 100% rename from GraphBLAS/Source/Template/GB_assert_kernels.h rename to GraphBLAS/Source/ok/include/GB_assert_kernels.h diff --git a/GraphBLAS/Source/GB_omp.c b/GraphBLAS/Source/omp/GB_omp.c similarity index 100% rename from GraphBLAS/Source/GB_omp.c rename to GraphBLAS/Source/omp/GB_omp.c diff --git a/GraphBLAS/Source/GB_omp.h b/GraphBLAS/Source/omp/GB_omp.h similarity index 100% rename from GraphBLAS/Source/GB_omp.h rename to GraphBLAS/Source/omp/GB_omp.h diff --git a/GraphBLAS/Source/Template/GB_atomics.h b/GraphBLAS/Source/omp/include/GB_atomics.h similarity index 97% rename from GraphBLAS/Source/Template/GB_atomics.h rename to GraphBLAS/Source/omp/include/GB_atomics.h index 1b846f2ce7..c59078b459 100644 --- a/GraphBLAS/Source/Template/GB_atomics.h +++ b/GraphBLAS/Source/omp/include/GB_atomics.h @@ -384,17 +384,6 @@ // Type punning is used to extend these signed integer types to unsigned // integers of the same number of bytes, and to float and double. -//------------------------------------------------------------------------------ -// GB_PUN: type punning -//------------------------------------------------------------------------------ - -// With type punning, a value is treated as a different type, but with no -// typecasting. The address of the variable is first typecasted to a (type *) -// pointer, and then the pointer is dereferenced. - -#undef GB_PUN -#define GB_PUN(type,value) (*((type *) (&(value)))) - #if GB_COMPILER_MSC //-------------------------------------------------------------------------- @@ -421,7 +410,7 @@ #define GB_ATOMIC_COMPARE_EXCHANGE_32(target, expected, desired) \ ( \ GB_PUN (int32_t, expected) == \ - _InterlockedCompareExchange ((int32_t volatile *) (target), \ + _InterlockedCompareExchange ((long volatile *) (target), \ GB_PUN (int32_t, desired), GB_PUN (int32_t, expected)) \ ) diff --git a/GraphBLAS/Source/Shared/GB_kernel_shared_definitions.h b/GraphBLAS/Source/omp/include/GB_kernel_shared_definitions.h similarity index 98% rename from GraphBLAS/Source/Shared/GB_kernel_shared_definitions.h rename to GraphBLAS/Source/omp/include/GB_kernel_shared_definitions.h index fd673822ce..9fea24955e 100644 --- a/GraphBLAS/Source/Shared/GB_kernel_shared_definitions.h +++ b/GraphBLAS/Source/omp/include/GB_kernel_shared_definitions.h @@ -10,8 +10,8 @@ // This header is #include'd just before using any templates for any method: // pre-generated kernel, CPU or GPU JIT, or generic. -#include "GB_unused.h" -#include "GB_complex.h" +#include "include/GB_unused.h" +#include "include/GB_complex.h" #ifndef GB_KERNEL_SHARED_DEFINITIONS_H #define GB_KERNEL_SHARED_DEFINITIONS_H diff --git a/GraphBLAS/Source/Template/GB_nthreads.h b/GraphBLAS/Source/omp/include/GB_nthreads.h similarity index 100% rename from GraphBLAS/Source/Template/GB_nthreads.h rename to GraphBLAS/Source/omp/include/GB_nthreads.h diff --git a/GraphBLAS/Source/Template/GB_omp_kernels.h b/GraphBLAS/Source/omp/include/GB_omp_kernels.h similarity index 100% rename from GraphBLAS/Source/Template/GB_omp_kernels.h rename to GraphBLAS/Source/omp/include/GB_omp_kernels.h diff --git a/GraphBLAS/Source/GB_Op_free.c b/GraphBLAS/Source/op/GB_Op_free.c similarity index 100% rename from GraphBLAS/Source/GB_Op_free.c rename to GraphBLAS/Source/op/GB_Op_free.c diff --git a/GraphBLAS/Source/GB_op.h b/GraphBLAS/Source/op/GB_op.h similarity index 100% rename from GraphBLAS/Source/GB_op.h rename to GraphBLAS/Source/op/GB_op.h diff --git a/GraphBLAS/Source/GB_op_is_second.c b/GraphBLAS/Source/op/GB_op_is_second.c similarity index 100% rename from GraphBLAS/Source/GB_op_is_second.c rename to GraphBLAS/Source/op/GB_op_is_second.c diff --git a/GraphBLAS/Source/GB_op_name_and_defn.c b/GraphBLAS/Source/op/GB_op_name_and_defn.c similarity index 99% rename from GraphBLAS/Source/GB_op_name_and_defn.c rename to GraphBLAS/Source/op/GB_op_name_and_defn.c index f3b2bb73b7..f2601928f7 100644 --- a/GraphBLAS/Source/GB_op_name_and_defn.c +++ b/GraphBLAS/Source/op/GB_op_name_and_defn.c @@ -13,7 +13,7 @@ #include "GB.h" #include -#include "GB_jitifyer.h" +#include "jitifyer/GB_jitifyer.h" GrB_Info GB_op_name_and_defn ( diff --git a/GraphBLAS/Source/GxB_Matrix_pack_BitmapC.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_BitmapC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_pack_BitmapC.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_BitmapC.c index ac406da039..5357fbdbe5 100644 --- a/GraphBLAS/Source/GxB_Matrix_pack_BitmapC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_BitmapC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_pack_BitmapC // pack a bitmap matrix, held by column ( diff --git a/GraphBLAS/Source/GxB_Matrix_pack_BitmapR.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_BitmapR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_pack_BitmapR.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_BitmapR.c index 377402dd8c..774bdd1c71 100644 --- a/GraphBLAS/Source/GxB_Matrix_pack_BitmapR.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_BitmapR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_pack_BitmapR // pack a bitmap matrix, held by row ( diff --git a/GraphBLAS/Source/GxB_Matrix_pack_CSC.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_CSC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_pack_CSC.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_CSC.c index 797e7744e0..6f085a7672 100644 --- a/GraphBLAS/Source/GxB_Matrix_pack_CSC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_CSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_pack_CSC // pack a CSC matrix ( diff --git a/GraphBLAS/Source/GxB_Matrix_pack_CSR.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_CSR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_pack_CSR.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_CSR.c index 3af82290a7..2af50360ca 100644 --- a/GraphBLAS/Source/GxB_Matrix_pack_CSR.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_CSR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_pack_CSR // pack a CSR matrix ( diff --git a/GraphBLAS/Source/GxB_Matrix_pack_FullC.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_FullC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_pack_FullC.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_FullC.c index bfcfb8355c..f23aadaeeb 100644 --- a/GraphBLAS/Source/GxB_Matrix_pack_FullC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_FullC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_pack_FullC // pack a full matrix, held by column ( diff --git a/GraphBLAS/Source/GxB_Matrix_pack_FullR.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_FullR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_pack_FullR.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_FullR.c index befb2c0694..9b7a60959f 100644 --- a/GraphBLAS/Source/GxB_Matrix_pack_FullR.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_FullR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_pack_FullR // pack a full matrix, held by row ( diff --git a/GraphBLAS/Source/GxB_Matrix_pack_HyperCSC.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_HyperCSC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_pack_HyperCSC.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_HyperCSC.c index 28df622298..f71bbf81f7 100644 --- a/GraphBLAS/Source/GxB_Matrix_pack_HyperCSC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_HyperCSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_pack_HyperCSC // pack a hypersparse CSC matrix ( diff --git a/GraphBLAS/Source/GxB_Matrix_pack_HyperCSR.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_HyperCSR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_pack_HyperCSR.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_HyperCSR.c index 27a2c6a393..93fc7a0b8e 100644 --- a/GraphBLAS/Source/GxB_Matrix_pack_HyperCSR.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_pack_HyperCSR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Matrix_pack_HyperCSR // pack a hypersparse CSR matrix ( diff --git a/GraphBLAS/Source/GxB_Matrix_unpack_BitmapC.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_BitmapC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_unpack_BitmapC.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_BitmapC.c index 48d365c134..7c51a71860 100644 --- a/GraphBLAS/Source/GxB_Matrix_unpack_BitmapC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_BitmapC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_unpack_BitmapR.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_BitmapR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_unpack_BitmapR.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_BitmapR.c index 312c7845c8..32660b5d5c 100644 --- a/GraphBLAS/Source/GxB_Matrix_unpack_BitmapR.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_BitmapR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_unpack_CSC.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_CSC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_unpack_CSC.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_CSC.c index bbf94f5fe1..c5e35f017a 100644 --- a/GraphBLAS/Source/GxB_Matrix_unpack_CSC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_CSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_unpack_CSR.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_CSR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_unpack_CSR.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_CSR.c index 4f87877ebc..abbce3687d 100644 --- a/GraphBLAS/Source/GxB_Matrix_unpack_CSR.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_CSR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_unpack_FullC.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_FullC.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_unpack_FullC.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_FullC.c index ad6535955d..ab75ffdebd 100644 --- a/GraphBLAS/Source/GxB_Matrix_unpack_FullC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_FullC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_unpack_FullR.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_FullR.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_unpack_FullR.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_FullR.c index caa0b92751..dfe2d19940 100644 --- a/GraphBLAS/Source/GxB_Matrix_unpack_FullR.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_FullR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_unpack_HyperCSC.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_HyperCSC.c similarity index 99% rename from GraphBLAS/Source/GxB_Matrix_unpack_HyperCSC.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_HyperCSC.c index 6d9b250637..1051b7f7a1 100644 --- a/GraphBLAS/Source/GxB_Matrix_unpack_HyperCSC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_HyperCSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Matrix_unpack_HyperCSR.c b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_HyperCSR.c similarity index 99% rename from GraphBLAS/Source/GxB_Matrix_unpack_HyperCSR.c rename to GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_HyperCSR.c index c3db546081..c22e83e76a 100644 --- a/GraphBLAS/Source/GxB_Matrix_unpack_HyperCSR.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Matrix_unpack_HyperCSR.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Vector_pack_Bitmap.c b/GraphBLAS/Source/pack_unpack/GxB_Vector_pack_Bitmap.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_pack_Bitmap.c rename to GraphBLAS/Source/pack_unpack/GxB_Vector_pack_Bitmap.c index 9fdf1a27a2..92d710c71e 100644 --- a/GraphBLAS/Source/GxB_Vector_pack_Bitmap.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Vector_pack_Bitmap.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Vector_pack_Bitmap // pack a bitmap vector ( diff --git a/GraphBLAS/Source/GxB_Vector_pack_CSC.c b/GraphBLAS/Source/pack_unpack/GxB_Vector_pack_CSC.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_pack_CSC.c rename to GraphBLAS/Source/pack_unpack/GxB_Vector_pack_CSC.c index 5d13f68dae..0f2e7b91d4 100644 --- a/GraphBLAS/Source/GxB_Vector_pack_CSC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Vector_pack_CSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Vector_pack_CSC // pack a vector in CSC format ( diff --git a/GraphBLAS/Source/GxB_Vector_pack_Full.c b/GraphBLAS/Source/pack_unpack/GxB_Vector_pack_Full.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_pack_Full.c rename to GraphBLAS/Source/pack_unpack/GxB_Vector_pack_Full.c index d36d969bd3..c357d0d974 100644 --- a/GraphBLAS/Source/GxB_Vector_pack_Full.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Vector_pack_Full.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" GrB_Info GxB_Vector_pack_Full // pack a full vector ( diff --git a/GraphBLAS/Source/GxB_Vector_unpack_Bitmap.c b/GraphBLAS/Source/pack_unpack/GxB_Vector_unpack_Bitmap.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_unpack_Bitmap.c rename to GraphBLAS/Source/pack_unpack/GxB_Vector_unpack_Bitmap.c index 43020b4fe4..d38bb1048a 100644 --- a/GraphBLAS/Source/GxB_Vector_unpack_Bitmap.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Vector_unpack_Bitmap.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Vector_unpack_CSC.c b/GraphBLAS/Source/pack_unpack/GxB_Vector_unpack_CSC.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_unpack_CSC.c rename to GraphBLAS/Source/pack_unpack/GxB_Vector_unpack_CSC.c index a796c33b87..ccf061f89c 100644 --- a/GraphBLAS/Source/GxB_Vector_unpack_CSC.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Vector_unpack_CSC.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_Vector_unpack_Full.c b/GraphBLAS/Source/pack_unpack/GxB_Vector_unpack_Full.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_unpack_Full.c rename to GraphBLAS/Source/pack_unpack/GxB_Vector_unpack_Full.c index 39e662955c..64b3997c6f 100644 --- a/GraphBLAS/Source/GxB_Vector_unpack_Full.c +++ b/GraphBLAS/Source/pack_unpack/GxB_Vector_unpack_Full.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GxB_pack_HyperHash.c b/GraphBLAS/Source/pack_unpack/GxB_pack_HyperHash.c similarity index 97% rename from GraphBLAS/Source/GxB_pack_HyperHash.c rename to GraphBLAS/Source/pack_unpack/GxB_pack_HyperHash.c index 4689b8f913..bb1d417fc1 100644 --- a/GraphBLAS/Source/GxB_pack_HyperHash.c +++ b/GraphBLAS/Source/pack_unpack/GxB_pack_HyperHash.c @@ -55,7 +55,7 @@ // modified after they were exported/unpacked by // GxB_Matrix_(export/unpack)_Hyper(CSR/CSC). -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; GrB_Info GxB_pack_HyperHash // move Y into A->Y @@ -105,6 +105,7 @@ GrB_Info GxB_pack_HyperHash // move Y into A->Y A->Y = (*Y) ; (*Y) = NULL ; A->Y_shallow = false ; + A->no_hyper_hash = false ; // A now has a hyper_hash matrix A->Y GB_BURBLE_END ; return (GrB_SUCCESS) ; diff --git a/GraphBLAS/Source/GxB_unpack_HyperHash.c b/GraphBLAS/Source/pack_unpack/GxB_unpack_HyperHash.c similarity index 98% rename from GraphBLAS/Source/GxB_unpack_HyperHash.c rename to GraphBLAS/Source/pack_unpack/GxB_unpack_HyperHash.c index 301d5e83f6..ee01c6f657 100644 --- a/GraphBLAS/Source/GxB_unpack_HyperHash.c +++ b/GraphBLAS/Source/pack_unpack/GxB_unpack_HyperHash.c @@ -48,7 +48,7 @@ // matrix A, and then GrB_Matrix_wait (A, GrB_MATERIALIZE) is called, a new // hyper_hash matrix is constructed for A. -#include "GB_export.h" +#include "import_export/GB_export.h" #define GB_FREE_ALL ; GrB_Info GxB_unpack_HyperHash // move A->Y into Y diff --git a/GraphBLAS/Source/GB_Pending.h b/GraphBLAS/Source/pending/GB_Pending.h similarity index 100% rename from GraphBLAS/Source/GB_Pending.h rename to GraphBLAS/Source/pending/GB_Pending.h diff --git a/GraphBLAS/Source/GB_Pending_alloc.c b/GraphBLAS/Source/pending/GB_Pending_alloc.c similarity index 98% rename from GraphBLAS/Source/GB_Pending_alloc.c rename to GraphBLAS/Source/pending/GB_Pending_alloc.c index 45aa4b7f22..2c0f374ecd 100644 --- a/GraphBLAS/Source/GB_Pending_alloc.c +++ b/GraphBLAS/Source/pending/GB_Pending_alloc.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_Pending.h" +#include "pending/GB_Pending.h" bool GB_Pending_alloc // create a list of pending tuples ( diff --git a/GraphBLAS/Source/GB_Pending_free.c b/GraphBLAS/Source/pending/GB_Pending_free.c similarity index 97% rename from GraphBLAS/Source/GB_Pending_free.c rename to GraphBLAS/Source/pending/GB_Pending_free.c index f6b94bbc62..0395b5e506 100644 --- a/GraphBLAS/Source/GB_Pending_free.c +++ b/GraphBLAS/Source/pending/GB_Pending_free.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_Pending.h" +#include "pending/GB_Pending.h" void GB_Pending_free // free a list of pending tuples ( diff --git a/GraphBLAS/Source/GB_Pending_n.c b/GraphBLAS/Source/pending/GB_Pending_n.c similarity index 95% rename from GraphBLAS/Source/GB_Pending_n.c rename to GraphBLAS/Source/pending/GB_Pending_n.c index e65a0afb42..7a886da129 100644 --- a/GraphBLAS/Source/GB_Pending_n.c +++ b/GraphBLAS/Source/pending/GB_Pending_n.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_Pending.h" +#include "pending/GB_Pending.h" int64_t GB_Pending_n // return # of pending tuples in A ( diff --git a/GraphBLAS/Source/GB_Pending_n.h b/GraphBLAS/Source/pending/GB_Pending_n.h similarity index 100% rename from GraphBLAS/Source/GB_Pending_n.h rename to GraphBLAS/Source/pending/GB_Pending_n.h diff --git a/GraphBLAS/Source/GB_Pending_realloc.c b/GraphBLAS/Source/pending/GB_Pending_realloc.c similarity index 98% rename from GraphBLAS/Source/GB_Pending_realloc.c rename to GraphBLAS/Source/pending/GB_Pending_realloc.c index 45ca6d3d89..a7ed13a38a 100644 --- a/GraphBLAS/Source/GB_Pending_realloc.c +++ b/GraphBLAS/Source/pending/GB_Pending_realloc.c @@ -9,7 +9,7 @@ // Reallocate a list of pending tuples. If it fails, the list is freed. -#include "GB_Pending.h" +#include "pending/GB_Pending.h" bool GB_Pending_realloc // reallocate a list of pending tuples ( diff --git a/GraphBLAS/Source/GB_positional.h b/GraphBLAS/Source/positional/GB_positional.h similarity index 100% rename from GraphBLAS/Source/GB_positional.h rename to GraphBLAS/Source/positional/GB_positional.h diff --git a/GraphBLAS/Source/GB_positional_binop_ijflip.c b/GraphBLAS/Source/positional/GB_positional_binop_ijflip.c similarity index 100% rename from GraphBLAS/Source/GB_positional_binop_ijflip.c rename to GraphBLAS/Source/positional/GB_positional_binop_ijflip.c diff --git a/GraphBLAS/Source/GB_positional_idxunop_ijflip.c b/GraphBLAS/Source/positional/GB_positional_idxunop_ijflip.c similarity index 100% rename from GraphBLAS/Source/GB_positional_idxunop_ijflip.c rename to GraphBLAS/Source/positional/GB_positional_idxunop_ijflip.c diff --git a/GraphBLAS/Source/GB_positional_offset.c b/GraphBLAS/Source/positional/GB_positional_offset.c similarity index 100% rename from GraphBLAS/Source/GB_positional_offset.c rename to GraphBLAS/Source/positional/GB_positional_offset.c diff --git a/GraphBLAS/Source/GB_positional_unop_ijflip.c b/GraphBLAS/Source/positional/GB_positional_unop_ijflip.c similarity index 100% rename from GraphBLAS/Source/GB_positional_unop_ijflip.c rename to GraphBLAS/Source/positional/GB_positional_unop_ijflip.c diff --git a/GraphBLAS/Source/GB_BinaryOp_check.c b/GraphBLAS/Source/print/GB_BinaryOp_check.c similarity index 100% rename from GraphBLAS/Source/GB_BinaryOp_check.c rename to GraphBLAS/Source/print/GB_BinaryOp_check.c diff --git a/GraphBLAS/Source/GB_Context_check.c b/GraphBLAS/Source/print/GB_Context_check.c similarity index 100% rename from GraphBLAS/Source/GB_Context_check.c rename to GraphBLAS/Source/print/GB_Context_check.c diff --git a/GraphBLAS/Source/GB_Descriptor_check.c b/GraphBLAS/Source/print/GB_Descriptor_check.c similarity index 100% rename from GraphBLAS/Source/GB_Descriptor_check.c rename to GraphBLAS/Source/print/GB_Descriptor_check.c diff --git a/GraphBLAS/Source/GB_IndexUnaryOp_check.c b/GraphBLAS/Source/print/GB_IndexUnaryOp_check.c similarity index 100% rename from GraphBLAS/Source/GB_IndexUnaryOp_check.c rename to GraphBLAS/Source/print/GB_IndexUnaryOp_check.c diff --git a/GraphBLAS/Source/GB_Matrix_check.c b/GraphBLAS/Source/print/GB_Matrix_check.c similarity index 100% rename from GraphBLAS/Source/GB_Matrix_check.c rename to GraphBLAS/Source/print/GB_Matrix_check.c diff --git a/GraphBLAS/Source/GB_Monoid_check.c b/GraphBLAS/Source/print/GB_Monoid_check.c similarity index 100% rename from GraphBLAS/Source/GB_Monoid_check.c rename to GraphBLAS/Source/print/GB_Monoid_check.c diff --git a/GraphBLAS/Source/GB_Operator_check.c b/GraphBLAS/Source/print/GB_Operator_check.c similarity index 100% rename from GraphBLAS/Source/GB_Operator_check.c rename to GraphBLAS/Source/print/GB_Operator_check.c diff --git a/GraphBLAS/Source/GB_Scalar_check.c b/GraphBLAS/Source/print/GB_Scalar_check.c similarity index 100% rename from GraphBLAS/Source/GB_Scalar_check.c rename to GraphBLAS/Source/print/GB_Scalar_check.c diff --git a/GraphBLAS/Source/GB_SelectOp_check.c b/GraphBLAS/Source/print/GB_SelectOp_check.c similarity index 100% rename from GraphBLAS/Source/GB_SelectOp_check.c rename to GraphBLAS/Source/print/GB_SelectOp_check.c diff --git a/GraphBLAS/Source/GB_Semiring_check.c b/GraphBLAS/Source/print/GB_Semiring_check.c similarity index 100% rename from GraphBLAS/Source/GB_Semiring_check.c rename to GraphBLAS/Source/print/GB_Semiring_check.c diff --git a/GraphBLAS/Source/GB_Type_check.c b/GraphBLAS/Source/print/GB_Type_check.c similarity index 100% rename from GraphBLAS/Source/GB_Type_check.c rename to GraphBLAS/Source/print/GB_Type_check.c diff --git a/GraphBLAS/Source/GB_UnaryOp_check.c b/GraphBLAS/Source/print/GB_UnaryOp_check.c similarity index 100% rename from GraphBLAS/Source/GB_UnaryOp_check.c rename to GraphBLAS/Source/print/GB_UnaryOp_check.c diff --git a/GraphBLAS/Source/GB_Vector_check.c b/GraphBLAS/Source/print/GB_Vector_check.c similarity index 100% rename from GraphBLAS/Source/GB_Vector_check.c rename to GraphBLAS/Source/print/GB_Vector_check.c diff --git a/GraphBLAS/Source/GB_check.h b/GraphBLAS/Source/print/GB_check.h similarity index 100% rename from GraphBLAS/Source/GB_check.h rename to GraphBLAS/Source/print/GB_check.h diff --git a/GraphBLAS/Source/GB_code_check.c b/GraphBLAS/Source/print/GB_code_check.c similarity index 100% rename from GraphBLAS/Source/GB_code_check.c rename to GraphBLAS/Source/print/GB_code_check.c diff --git a/GraphBLAS/Source/GB_entry_check.c b/GraphBLAS/Source/print/GB_entry_check.c similarity index 100% rename from GraphBLAS/Source/GB_entry_check.c rename to GraphBLAS/Source/print/GB_entry_check.c diff --git a/GraphBLAS/Source/GB_matvec_check.c b/GraphBLAS/Source/print/GB_matvec_check.c similarity index 99% rename from GraphBLAS/Source/GB_matvec_check.c rename to GraphBLAS/Source/print/GB_matvec_check.c index 3afc9812f0..fae9178929 100644 --- a/GraphBLAS/Source/GB_matvec_check.c +++ b/GraphBLAS/Source/print/GB_matvec_check.c @@ -16,7 +16,7 @@ #define GB_DEVELOPER 0 #endif -#include "GB_Pending.h" +#include "pending/GB_Pending.h" #include "GB.h" GrB_Info GB_matvec_check // check a GraphBLAS matrix or vector @@ -347,7 +347,8 @@ GrB_Info GB_matvec_check // check a GraphBLAS matrix or vector A->b, A->b_shallow, (uint64_t) A->b_size) ; GBPR (" ->x: %p shallow: %d size: " GBu "\n", A->x, A->x_shallow, (uint64_t) A->x_size) ; - GBPR (" ->Y: %p shallow: %d\n", A->Y, A->Y_shallow) ; + GBPR (" ->Y: %p shallow: %d no_hyper_hash: %d\n", + A->Y, A->Y_shallow, A->no_hyper_hash) ; } #endif diff --git a/GraphBLAS/Source/GB_printf.h b/GraphBLAS/Source/print/GB_printf.h similarity index 100% rename from GraphBLAS/Source/GB_printf.h rename to GraphBLAS/Source/print/GB_printf.h diff --git a/GraphBLAS/Source/GxB_BinaryOp_fprint.c b/GraphBLAS/Source/print/GxB_BinaryOp_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_BinaryOp_fprint.c rename to GraphBLAS/Source/print/GxB_BinaryOp_fprint.c diff --git a/GraphBLAS/Source/GxB_Context_fprint.c b/GraphBLAS/Source/print/GxB_Context_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_Context_fprint.c rename to GraphBLAS/Source/print/GxB_Context_fprint.c diff --git a/GraphBLAS/Source/GxB_Descriptor_fprint.c b/GraphBLAS/Source/print/GxB_Descriptor_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_Descriptor_fprint.c rename to GraphBLAS/Source/print/GxB_Descriptor_fprint.c diff --git a/GraphBLAS/Source/GxB_IndexUnaryOp_fprint.c b/GraphBLAS/Source/print/GxB_IndexUnaryOp_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_IndexUnaryOp_fprint.c rename to GraphBLAS/Source/print/GxB_IndexUnaryOp_fprint.c diff --git a/GraphBLAS/Source/GxB_Matrix_fprint.c b/GraphBLAS/Source/print/GxB_Matrix_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_Matrix_fprint.c rename to GraphBLAS/Source/print/GxB_Matrix_fprint.c diff --git a/GraphBLAS/Source/GxB_Monoid_fprint.c b/GraphBLAS/Source/print/GxB_Monoid_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_Monoid_fprint.c rename to GraphBLAS/Source/print/GxB_Monoid_fprint.c diff --git a/GraphBLAS/Source/GxB_Scalar_fprint.c b/GraphBLAS/Source/print/GxB_Scalar_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_Scalar_fprint.c rename to GraphBLAS/Source/print/GxB_Scalar_fprint.c diff --git a/GraphBLAS/Source/GxB_SelectOp_fprint.c b/GraphBLAS/Source/print/GxB_SelectOp_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_SelectOp_fprint.c rename to GraphBLAS/Source/print/GxB_SelectOp_fprint.c diff --git a/GraphBLAS/Source/GxB_Semiring_fprint.c b/GraphBLAS/Source/print/GxB_Semiring_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_Semiring_fprint.c rename to GraphBLAS/Source/print/GxB_Semiring_fprint.c diff --git a/GraphBLAS/Source/GxB_Type_fprint.c b/GraphBLAS/Source/print/GxB_Type_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_Type_fprint.c rename to GraphBLAS/Source/print/GxB_Type_fprint.c diff --git a/GraphBLAS/Source/GxB_UnaryOp_fprint.c b/GraphBLAS/Source/print/GxB_UnaryOp_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_UnaryOp_fprint.c rename to GraphBLAS/Source/print/GxB_UnaryOp_fprint.c diff --git a/GraphBLAS/Source/GxB_Vector_fprint.c b/GraphBLAS/Source/print/GxB_Vector_fprint.c similarity index 100% rename from GraphBLAS/Source/GxB_Vector_fprint.c rename to GraphBLAS/Source/print/GxB_Vector_fprint.c diff --git a/GraphBLAS/Source/Template/GB_printf_kernels.h b/GraphBLAS/Source/print/include/GB_printf_kernels.h similarity index 95% rename from GraphBLAS/Source/Template/GB_printf_kernels.h rename to GraphBLAS/Source/print/include/GB_printf_kernels.h index 915b7564dd..aa6d795e7b 100644 --- a/GraphBLAS/Source/Template/GB_printf_kernels.h +++ b/GraphBLAS/Source/print/include/GB_printf_kernels.h @@ -10,6 +10,9 @@ #ifndef GB_PRINTF_KERNELS_H #define GB_PRINTF_KERNELS_H +// return the length of a string, or 0 if the string is NULL +#define GB_STRLEN(s) ((s == NULL) ? 0 : strlen (s)) + #define GB_STRING_MATCH(s,t) (strcmp (s,t) == 0) // format strings, normally %llu and %lld, for GrB_Index values diff --git a/GraphBLAS/Source/GB_Scalar_reduce.c b/GraphBLAS/Source/reduce/GB_Scalar_reduce.c similarity index 94% rename from GraphBLAS/Source/GB_Scalar_reduce.c rename to GraphBLAS/Source/reduce/GB_Scalar_reduce.c index b2fc87d871..58df9dc4b8 100644 --- a/GraphBLAS/Source/GB_Scalar_reduce.c +++ b/GraphBLAS/Source/reduce/GB_Scalar_reduce.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_reduce.h" +#include "reduce/GB_reduce.h" #define GB_FREE_ALL GB_phybix_free ((GrB_Matrix) S) ; @@ -22,10 +22,11 @@ GrB_Info GB_Scalar_reduce { //-------------------------------------------------------------------------- - // check inputs (accum and monoid are checked in GB_reduce_to_scalar) + // check inputs (accum and monoid are fully checked in GB_reduce_to_scalar) //-------------------------------------------------------------------------- GrB_Info info ; + GB_RETURN_IF_FAULTY_OR_POSITIONAL (accum) ; ASSERT_SCALAR_OK (S, "S for reduce to GrB_Scalar", GB0) ; ASSERT_MATRIX_OK (A, "A for reduce to GrB_Scalar", GB0) ; GBURBLE ("(to GrB_Scalar) ") ; diff --git a/GraphBLAS/Source/GB_reduce.h b/GraphBLAS/Source/reduce/GB_reduce.h similarity index 100% rename from GraphBLAS/Source/GB_reduce.h rename to GraphBLAS/Source/reduce/GB_reduce.h diff --git a/GraphBLAS/Source/GB_reduce_to_scalar.c b/GraphBLAS/Source/reduce/GB_reduce_to_scalar.c similarity index 96% rename from GraphBLAS/Source/GB_reduce_to_scalar.c rename to GraphBLAS/Source/reduce/GB_reduce_to_scalar.c index d743f6b9a8..2d7b0b43ba 100644 --- a/GraphBLAS/Source/GB_reduce_to_scalar.c +++ b/GraphBLAS/Source/reduce/GB_reduce_to_scalar.c @@ -24,13 +24,13 @@ // case when nvals(A) is zero, the existence of the identity value makes the // code a little simpler. -#include "GB_reduce.h" -#include "GB_binop.h" -#include "GB_stringify.h" +#include "reduce/GB_reduce.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_red__include.h" +#include "FactoryKernels/GB_red__include.h" #endif -#include "GB_monoid_shared_definitions.h" +#include "monoid/include/GB_monoid_shared_definitions.h" #define GB_FREE_ALL \ { \ @@ -240,7 +240,7 @@ GrB_Info GB_reduce_to_scalar // z = reduce_to_scalar (A) GB_Type_code typecode = A->type->code ; ASSERT (typecode <= GB_UDT_code) ; - #include "GB_red_factory.c" + #include "reduce/factory/GB_red_factory.c" } #endif } @@ -266,7 +266,7 @@ GrB_Info GB_reduce_to_scalar // z = reduce_to_scalar (A) // generic worker //------------------------------------------------------------------ - #include "GB_generic.h" + #include "generic/GB_generic.h" GxB_binary_function freduce = monoid->op->binop_function ; @@ -323,7 +323,7 @@ GrB_Info GB_reduce_to_scalar // z = reduce_to_scalar (A) #define GB_TERMINAL_CONDITION(z,zterminal) 0 #undef GB_IF_TERMINAL_BREAK #define GB_IF_TERMINAL_BREAK(z,zterminal) - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { @@ -336,7 +336,7 @@ GrB_Info GB_reduce_to_scalar // z = reduce_to_scalar (A) #undef GB_IF_TERMINAL_BREAK #define GB_IF_TERMINAL_BREAK(z,zterminal) \ if (GB_TERMINAL_CONDITION (z, zterminal)) break - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } } @@ -369,7 +369,7 @@ GrB_Info GB_reduce_to_scalar // z = reduce_to_scalar (A) #define GB_TERMINAL_CONDITION(z,zterminal) 0 #undef GB_IF_TERMINAL_BREAK #define GB_IF_TERMINAL_BREAK - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } else { @@ -382,7 +382,7 @@ GrB_Info GB_reduce_to_scalar // z = reduce_to_scalar (A) #undef GB_IF_TERMINAL_BREAK #define GB_IF_TERMINAL_BREAK(z,zterminal) \ if (GB_TERMINAL_CONDITION (z, zterminal)) break - #include "GB_reduce_to_scalar_template.c" + #include "reduce/template/GB_reduce_to_scalar_template.c" } } info = GrB_SUCCESS ; diff --git a/GraphBLAS/Source/reduce/GB_reduce_to_scalar_iso.c b/GraphBLAS/Source/reduce/GB_reduce_to_scalar_iso.c new file mode 100644 index 0000000000..bceab7089d --- /dev/null +++ b/GraphBLAS/Source/reduce/GB_reduce_to_scalar_iso.c @@ -0,0 +1,74 @@ +//------------------------------------------------------------------------------ +// GB_reduce_to_scalar_iso: reduce an iso matrix to a scalar +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "reduce/GB_reduce.h" + +void GB_reduce_to_scalar_iso // s = reduce (A) where A is iso +( + GB_void *restrict s, // output scalar of type reduce->op->ztype + GrB_Monoid monoid, // monoid to use for the reduction + GrB_Matrix A // matrix to reduce +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + ASSERT (A->iso) ; + ASSERT_MATRIX_OK (A, "A for reduce_to_scalar_iso", GB0) ; + ASSERT_MONOID_OK (monoid, "monoid for reduce_to_scalar_iso", GB0) ; + ASSERT (s != NULL) ; + ASSERT (GB_ZOMBIES_OK (A)) ; + ASSERT (GB_JUMBLED_OK (A)) ; + ASSERT (!GB_PENDING (A)) ; + + //-------------------------------------------------------------------------- + // get input matrix and the monoid + //-------------------------------------------------------------------------- + + // A consists of n entries, all equal to Ax [0] + uint64_t n = (uint64_t) (GB_nnz (A) - A->nzombies) ; + ASSERT (n > 0) ; + + // get the monoid + GxB_binary_function freduce = monoid->op->binop_function ; + GrB_Type ztype = monoid->op->ztype ; + size_t zsize = ztype->size ; + GB_Type_code zcode = ztype->code ; + + // a = (ztype) Ax [0] + GB_void a [GB_VLA(zsize)] ; + GB_cast_scalar (a, zcode, A->x, A->type->code, zsize) ; + + //-------------------------------------------------------------------------- + // reduce n entries, all equal to a, to the scalar s, in O(log(n)) time + //-------------------------------------------------------------------------- + + if (n == INT64_MAX) + { + // A has too many entries to reduce in a single step. The only way + // this can occur is if A is a huge full iso-valued matrix, where vlen + // * vdim caused uint64_t overflow in GB_nnz_full and returned + // INT64_MAX. Reduce the matrix in two steps: first reducing each + // vector of size vlen to a scalar t, obtainting an implicit iso full + // vector T of size vdim. Each entry in this vector T has the value t, + // and then this vector T is reduced to the result s. + GBURBLE ("(reduce huge iso full matrix to scalar) ") ; + GB_void t [GB_VLA(zsize)] ; + GB_reduce_worker_iso (t, freduce, a, A->vlen, zsize) ; + GB_reduce_worker_iso (s, freduce, t, A->vdim, zsize) ; + } + else + { + GBURBLE ("(reduce iso matrix to scalar) ") ; + GB_reduce_worker_iso (s, freduce, a, n, zsize) ; + } +} + diff --git a/GraphBLAS/Source/GB_reduce_to_vector.c b/GraphBLAS/Source/reduce/GB_reduce_to_vector.c similarity index 98% rename from GraphBLAS/Source/GB_reduce_to_vector.c rename to GraphBLAS/Source/reduce/GB_reduce_to_vector.c index a6d5b5d174..2ed85cb1df 100644 --- a/GraphBLAS/Source/GB_reduce_to_vector.c +++ b/GraphBLAS/Source/reduce/GB_reduce_to_vector.c @@ -16,11 +16,11 @@ GrB_Semiring_free (&semiring) ; \ } -#include "GB_reduce.h" -#include "GB_binop.h" -#include "GB_mxm.h" -#include "GB_get_mask.h" -#include "GB_Semiring_new.h" +#include "reduce/GB_reduce.h" +#include "binaryop/GB_binop.h" +#include "mxm/GB_mxm.h" +#include "mask/GB_get_mask.h" +#include "semiring/GB_Semiring_new.h" GrB_Info GB_reduce_to_vector // C = accum (C,reduce(A)) ( diff --git a/GraphBLAS/Source/GB_reduce_worker_iso.c b/GraphBLAS/Source/reduce/GB_reduce_worker_iso.c similarity index 98% rename from GraphBLAS/Source/GB_reduce_worker_iso.c rename to GraphBLAS/Source/reduce/GB_reduce_worker_iso.c index 477b7dded4..818118e99f 100644 --- a/GraphBLAS/Source/GB_reduce_worker_iso.c +++ b/GraphBLAS/Source/reduce/GB_reduce_worker_iso.c @@ -11,7 +11,7 @@ // O(log (n)) time which is fast enough, even if n = 2^60, and it works for all // monoids including user-defined ones. -#include "GB_reduce.h" +#include "reduce/GB_reduce.h" void GB_reduce_worker_iso ( diff --git a/GraphBLAS/Source/GrB_Matrix_reduce.c b/GraphBLAS/Source/reduce/GrB_Matrix_reduce.c similarity index 99% rename from GraphBLAS/Source/GrB_Matrix_reduce.c rename to GraphBLAS/Source/reduce/GrB_Matrix_reduce.c index e849171cf9..a2933e4477 100644 --- a/GraphBLAS/Source/GrB_Matrix_reduce.c +++ b/GraphBLAS/Source/reduce/GrB_Matrix_reduce.c @@ -7,8 +7,8 @@ //------------------------------------------------------------------------------ -#include "GB_reduce.h" -#include "GB_binop.h" +#include "reduce/GB_reduce.h" +#include "binaryop/GB_binop.h" //------------------------------------------------------------------------------ // GrB_Matrix_reduce_TYPE: reduce a matrix to a scalar diff --git a/GraphBLAS/Source/GrB_Vector_reduce.c b/GraphBLAS/Source/reduce/GrB_Vector_reduce.c similarity index 99% rename from GraphBLAS/Source/GrB_Vector_reduce.c rename to GraphBLAS/Source/reduce/GrB_Vector_reduce.c index b49ebbe27e..86a6aafd39 100644 --- a/GraphBLAS/Source/GrB_Vector_reduce.c +++ b/GraphBLAS/Source/reduce/GrB_Vector_reduce.c @@ -7,8 +7,8 @@ //------------------------------------------------------------------------------ -#include "GB_reduce.h" -#include "GB_binop.h" +#include "reduce/GB_reduce.h" +#include "binaryop/GB_binop.h" //------------------------------------------------------------------------------ // GrB_Vector_reduce_TYPE: reduce a vector to a scalar diff --git a/GraphBLAS/Source/Factories/GB_red_factory.c b/GraphBLAS/Source/reduce/factory/GB_red_factory.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_red_factory.c rename to GraphBLAS/Source/reduce/factory/GB_red_factory.c diff --git a/GraphBLAS/Source/Template/GB_reduce_panel.c b/GraphBLAS/Source/reduce/template/GB_reduce_panel.c similarity index 99% rename from GraphBLAS/Source/Template/GB_reduce_panel.c rename to GraphBLAS/Source/reduce/template/GB_reduce_panel.c index a047362900..27c4e7873e 100644 --- a/GraphBLAS/Source/Template/GB_reduce_panel.c +++ b/GraphBLAS/Source/reduce/template/GB_reduce_panel.c @@ -16,7 +16,7 @@ // The Panel and W arrays always have the same type as z, GB_Z_TYPE. -#include "GB_unused.h" +#include "include/GB_unused.h" // default panel size #ifndef GB_PANEL diff --git a/GraphBLAS/Source/Template/GB_reduce_to_scalar_template.c b/GraphBLAS/Source/reduce/template/GB_reduce_to_scalar_template.c similarity index 99% rename from GraphBLAS/Source/Template/GB_reduce_to_scalar_template.c rename to GraphBLAS/Source/reduce/template/GB_reduce_to_scalar_template.c index c22ef3bd42..4f61c0dc56 100644 --- a/GraphBLAS/Source/Template/GB_reduce_to_scalar_template.c +++ b/GraphBLAS/Source/reduce/template/GB_reduce_to_scalar_template.c @@ -11,7 +11,7 @@ // No panel is used. The workspace W always has the same type as the ztype // of the monoid, GB_Z_TYPE. -#include "GB_unused.h" +#include "include/GB_unused.h" // z += W [i], no typecast #ifndef GB_ADD_ARRAY_TO_SCALAR diff --git a/GraphBLAS/Source/GB_reshape.c b/GraphBLAS/Source/reshape/GB_reshape.c similarity index 99% rename from GraphBLAS/Source/GB_reshape.c rename to GraphBLAS/Source/reshape/GB_reshape.c index 3f9f9b6189..80640ed3b3 100644 --- a/GraphBLAS/Source/GB_reshape.c +++ b/GraphBLAS/Source/reshape/GB_reshape.c @@ -14,10 +14,10 @@ // nrows_new*ncols_new. #include "GB.h" -#include "GB_reshape.h" -#include "GB_transpose.h" -#include "GB_ek_slice.h" -#include "GB_build.h" +#include "reshape/GB_reshape.h" +#include "transpose/GB_transpose.h" +#include "slice/GB_ek_slice.h" +#include "builder/GB_build.h" #define GB_FREE_WORKSPACE \ { \ diff --git a/GraphBLAS/Source/GB_reshape.h b/GraphBLAS/Source/reshape/GB_reshape.h similarity index 100% rename from GraphBLAS/Source/GB_reshape.h rename to GraphBLAS/Source/reshape/GB_reshape.h diff --git a/GraphBLAS/Source/GxB_Matrix_reshape.c b/GraphBLAS/Source/reshape/GxB_Matrix_reshape.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_reshape.c rename to GraphBLAS/Source/reshape/GxB_Matrix_reshape.c index 83fda033b7..aec259ede2 100644 --- a/GraphBLAS/Source/GxB_Matrix_reshape.c +++ b/GraphBLAS/Source/reshape/GxB_Matrix_reshape.c @@ -31,7 +31,7 @@ // format need not match the by_col input parameter. #include "GB.h" -#include "GB_reshape.h" +#include "reshape/GB_reshape.h" GrB_Info GxB_Matrix_reshape // reshape a GrB_Matrix in place ( diff --git a/GraphBLAS/Source/GxB_Matrix_reshapeDup.c b/GraphBLAS/Source/reshape/GxB_Matrix_reshapeDup.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_reshapeDup.c rename to GraphBLAS/Source/reshape/GxB_Matrix_reshapeDup.c index 43b3f096c9..09045a99bd 100644 --- a/GraphBLAS/Source/GxB_Matrix_reshapeDup.c +++ b/GraphBLAS/Source/reshape/GxB_Matrix_reshapeDup.c @@ -16,7 +16,7 @@ // by_col input parameter. #include "GB.h" -#include "GB_reshape.h" +#include "reshape/GB_reshape.h" GrB_Info GxB_Matrix_reshapeDup // reshape a GrB_Matrix into another GrB_Matrix ( diff --git a/GraphBLAS/Source/GB_resize.c b/GraphBLAS/Source/resize/GB_resize.c similarity index 99% rename from GraphBLAS/Source/GB_resize.c rename to GraphBLAS/Source/resize/GB_resize.c index 8357b9f0e9..86ef000ecc 100644 --- a/GraphBLAS/Source/GB_resize.c +++ b/GraphBLAS/Source/resize/GB_resize.c @@ -9,8 +9,9 @@ // JIT: not needed. Only one variant possible. -#include "GB_select.h" -#include "GB_scalar_wrap.h" +#include "select/GB_select.h" +#include "scalar/GB_Scalar_wrap.h" +#include "resize/GB_resize.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GB_resize.h b/GraphBLAS/Source/resize/GB_resize.h similarity index 100% rename from GraphBLAS/Source/GB_resize.h rename to GraphBLAS/Source/resize/GB_resize.h diff --git a/GraphBLAS/Source/GrB_Matrix_resize.c b/GraphBLAS/Source/resize/GrB_Matrix_resize.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_resize.c rename to GraphBLAS/Source/resize/GrB_Matrix_resize.c index 35a64a5181..0663b0289e 100644 --- a/GraphBLAS/Source/GrB_Matrix_resize.c +++ b/GraphBLAS/Source/resize/GrB_Matrix_resize.c @@ -8,6 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" +#include "resize/GB_resize.h" GrB_Info GrB_Matrix_resize // change the size of a matrix ( diff --git a/GraphBLAS/Source/GrB_Vector_resize.c b/GraphBLAS/Source/resize/GrB_Vector_resize.c similarity index 98% rename from GraphBLAS/Source/GrB_Vector_resize.c rename to GraphBLAS/Source/resize/GrB_Vector_resize.c index dd39ee9340..73df8a6389 100644 --- a/GraphBLAS/Source/GrB_Vector_resize.c +++ b/GraphBLAS/Source/resize/GrB_Vector_resize.c @@ -8,6 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" +#include "resize/GB_resize.h" GrB_Info GrB_Vector_resize // change the size of a vector ( diff --git a/GraphBLAS/Source/GB_Scalar_wrap.c b/GraphBLAS/Source/scalar/GB_Scalar_wrap.c similarity index 97% rename from GraphBLAS/Source/GB_Scalar_wrap.c rename to GraphBLAS/Source/scalar/GB_Scalar_wrap.c index 6da7e5e52b..2aeb4eb434 100644 --- a/GraphBLAS/Source/GB_Scalar_wrap.c +++ b/GraphBLAS/Source/scalar/GB_Scalar_wrap.c @@ -14,7 +14,7 @@ // automatically to the GPU when using CUDA. #include "GB.h" -#include "GB_scalar_wrap.h" +#include "scalar/GB_Scalar_wrap.h" GrB_Scalar GB_Scalar_wrap // create a new GrB_Scalar with one entry ( @@ -57,6 +57,7 @@ GrB_Scalar GB_Scalar_wrap // create a new GrB_Scalar with one entry s->Y = NULL ; s->Y_shallow = false ; + s->no_hyper_hash = true ; s->nvals = 0 ; diff --git a/GraphBLAS/Source/scalar/GB_Scalar_wrap.h b/GraphBLAS/Source/scalar/GB_Scalar_wrap.h new file mode 100644 index 0000000000..8a0ed4a9c0 --- /dev/null +++ b/GraphBLAS/Source/scalar/GB_Scalar_wrap.h @@ -0,0 +1,44 @@ +//------------------------------------------------------------------------------ +// GB_Scalar_wrap.h: definitions for GB_Scalar_wrap +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#ifndef GB_SCALAR_WRAP_H +#define GB_SCALAR_WRAP_H + +GrB_Scalar GB_Scalar_wrap // create a new GrB_Scalar with one entry +( + GrB_Scalar s, // GrB_Scalar to create + GrB_Type type, // type of GrB_Scalar to create + void *Sx // becomes S->x, an array of size 1 * type->size +) ; + +// stype can be NULL if op is positional + +// wrap a bare scalar inside a statically-allocated GrB_Scalar +#define GB_SCALAR_WRAP(scalar,bare,stype) \ + struct GB_Scalar_opaque scalar ## _header ; \ + size_t ssize = (stype == NULL) ? 1 : (stype->size) ; \ + GB_void Sx [GB_VLA(ssize)] ; \ + GrB_Scalar scalar = GB_Scalar_wrap (& scalar ## _header, stype, Sx) ; \ + memcpy (Sx, &bare, ssize) ; + +// wrap a void *bare scalar inside a statically-allocated GrB_Scalar +#define GB_SCALAR_WRAP_UDT(scalar,bare,scalar_type) \ + GrB_Type stype = scalar_type ; \ + struct GB_Scalar_opaque scalar ## _header ; \ + size_t ssize = (stype == NULL) ? 1 : (stype->size) ; \ + GB_void Sx [GB_VLA(ssize)] ; \ + GrB_Scalar scalar = NULL ; \ + if (bare != NULL && stype != NULL) \ + { \ + scalar = GB_Scalar_wrap (& scalar ## _header, stype, Sx) ; \ + memcpy (Sx, bare, ssize) ; \ + } + +#endif + diff --git a/GraphBLAS/Source/GrB_Scalar_clear.c b/GraphBLAS/Source/scalar/GrB_Scalar_clear.c similarity index 100% rename from GraphBLAS/Source/GrB_Scalar_clear.c rename to GraphBLAS/Source/scalar/GrB_Scalar_clear.c diff --git a/GraphBLAS/Source/GrB_Scalar_free.c b/GraphBLAS/Source/scalar/GrB_Scalar_free.c similarity index 100% rename from GraphBLAS/Source/GrB_Scalar_free.c rename to GraphBLAS/Source/scalar/GrB_Scalar_free.c diff --git a/GraphBLAS/Source/GrB_Scalar_new.c b/GraphBLAS/Source/scalar/GrB_Scalar_new.c similarity index 100% rename from GraphBLAS/Source/GrB_Scalar_new.c rename to GraphBLAS/Source/scalar/GrB_Scalar_new.c diff --git a/GraphBLAS/Source/GB_select.c b/GraphBLAS/Source/select/GB_select.c similarity index 99% rename from GraphBLAS/Source/GB_select.c rename to GraphBLAS/Source/select/GB_select.c index 3b2088fa99..278821dfc0 100644 --- a/GraphBLAS/Source/GB_select.c +++ b/GraphBLAS/Source/select/GB_select.c @@ -14,10 +14,10 @@ GB_Matrix_free (&T) ; \ } -#include "GB_select.h" -#include "GB_accum_mask.h" -#include "GB_transpose.h" -#include "GB_scalar_wrap.h" +#include "select/GB_select.h" +#include "mask/GB_accum_mask.h" +#include "transpose/GB_transpose.h" +#include "scalar/GB_Scalar_wrap.h" GrB_Info GB_select // C = accum (C, select(A,k)) or select(A',k) ( diff --git a/GraphBLAS/Source/GB_select.h b/GraphBLAS/Source/select/GB_select.h similarity index 98% rename from GraphBLAS/Source/GB_select.h rename to GraphBLAS/Source/select/GB_select.h index e049edd6af..2492682c72 100644 --- a/GraphBLAS/Source/GB_select.h +++ b/GraphBLAS/Source/select/GB_select.h @@ -10,8 +10,7 @@ #ifndef GB_SELECT_H #define GB_SELECT_H #include "GB.h" -#include "GB_math.h" -#include "GB_is_nonzero.h" +#include "math/GB_math.h" GrB_Info GB_select // C = accum (C, select(A,k)) or select(A',k) ( @@ -208,7 +207,7 @@ static inline void GB_select_iso // Some parameters are unused for some uses of the FactoryKernels/GB_sel_* // functions -#include "GB_unused.h" +#include "include/GB_unused.h" #endif diff --git a/GraphBLAS/Source/select/GB_select_bitmap.c b/GraphBLAS/Source/select/GB_select_bitmap.c new file mode 100644 index 0000000000..1590e08953 --- /dev/null +++ b/GraphBLAS/Source/select/GB_select_bitmap.c @@ -0,0 +1,184 @@ +//------------------------------------------------------------------------------ +// GB_select_bitmap: select entries from a bitmap or full matrix +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// JIT: done. + +#include "select/GB_select.h" +#include "jitifyer/GB_stringify.h" +#ifndef GBCOMPACT +#include "FactoryKernels/GB_sel__include.h" +#endif + +#define GB_FREE_ALL \ + GB_phybix_free (C) ; + +GrB_Info GB_select_bitmap +( + GrB_Matrix C, // output matrix, static header + const bool C_iso, // if true, C is iso + const GrB_IndexUnaryOp op, + const bool flipij, // if true, flip i and j for user operator + GrB_Matrix A, // input matrix + const int64_t ithunk, // (int64_t) Thunk, if Thunk is NULL + const GB_void *restrict athunk, // (A->type) Thunk + const GB_void *restrict ythunk, // (op->ytype) Thunk + GB_Werk Werk +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GrB_Info info ; + ASSERT_MATRIX_OK (A, "A for bitmap selector", GB0) ; + ASSERT_INDEXUNARYOP_OK (op, "idxunop for bitmap selector", GB0) ; + ASSERT (GB_IS_BITMAP (A) || GB_IS_FULL (A)) ; + GB_Opcode opcode = op->opcode ; + ASSERT (opcode != GB_NONZOMBIE_idxunop_code) ; + ASSERT (C != NULL && (C->static_header || GBNSTATIC)) ; + + //-------------------------------------------------------------------------- + // get A + //-------------------------------------------------------------------------- + + int64_t anz = GB_nnz_held (A) ; + const size_t asize = A->type->size ; + const GB_Type_code acode = A->type->code ; + + //-------------------------------------------------------------------------- + // allocate C + //-------------------------------------------------------------------------- + + // C->b and C->x are malloc'd, not calloc'd + // set C->iso = C_iso OK + GB_OK (GB_new_bix (&C, // always bitmap, existing header + A->type, A->vlen, A->vdim, GB_Ap_calloc, true, + GxB_BITMAP, false, A->hyper_switch, -1, anz, true, C_iso)) ; + int64_t cnvals ; + + //-------------------------------------------------------------------------- + // determine the number of threads to use + //-------------------------------------------------------------------------- + + int nthreads_max = GB_Context_nthreads_max ( ) ; + double chunk = GB_Context_chunk ( ) ; + int nthreads = GB_nthreads (anz, chunk, nthreads_max) ; + + //-------------------------------------------------------------------------- + // copy values of A into C + //-------------------------------------------------------------------------- + + // C and A have the same type, since C is the T matrix from GB_select, + // not the final user's C matrix. In the future A could be typecasted + // into C in the JIT kernel. + + if (C_iso) + { + // Cx [0] = Ax [0] or (A->type) thunk + GB_select_iso (C->x, opcode, athunk, A->x, asize) ; + } + else + { + // Cx [0:anz-1] = Ax [0:anz-1] + // FIXME: do this on the GPU if appropriate + GB_memcpy (C->x, A->x, anz * asize, nthreads) ; + } + + //-------------------------------------------------------------------------- + // bitmap selector kernel + //-------------------------------------------------------------------------- + + info = GrB_NO_VALUE ; + + #if defined ( GRAPHBLAS_HAS_CUDA ) + if (GB_cuda_select_branch (A, op)) + { + info = GB_cuda_select_bitmap (C->b, &cnvals, C_iso, A, flipij, ythunk, op) ; + } + #endif + + if (info == GrB_NO_VALUE) + { + if (GB_IS_INDEXUNARYOP_CODE_POSITIONAL (opcode)) + { + + //---------------------------------------------------------------------- + // bitmap selector for positional ops + //---------------------------------------------------------------------- + + info = GB_select_positional_bitmap (C->b, &cnvals, A, ithunk, op, + nthreads) ; + } + else + { + + //---------------------------------------------------------------------- + // bitmap selector for VALUE* and user-defined ops + //---------------------------------------------------------------------- + + #ifndef GBCOMPACT + GB_IF_FACTORY_KERNELS_ENABLED + { + + //------------------------------------------------------------------ + // via the factory kernel + //------------------------------------------------------------------ + + #define GB_selbit(opname,aname) GB (_sel_bitmap_ ## opname ## aname) + #define GB_SEL_WORKER(opname,aname) \ + { \ + info = GB_selbit (opname, aname) (C->b, &cnvals, A, \ + ythunk, nthreads) ; \ + } \ + break ; + + #include "select/factory/GB_select_entry_factory.c" + } + #endif + + //---------------------------------------------------------------------- + // via the JIT or PreJIT kernel + //---------------------------------------------------------------------- + + if (info == GrB_NO_VALUE) + { + info = GB_select_bitmap_jit (C->b, &cnvals, C_iso, + A, flipij, ythunk, op, nthreads) ; + } + + //---------------------------------------------------------------------- + // via the generic kernel + //---------------------------------------------------------------------- + + if (info == GrB_NO_VALUE) + { + info = GB_select_generic_bitmap (C->b, &cnvals, A, flipij, ythunk, + op, nthreads) ; + } + } + } + + //-------------------------------------------------------------------------- + // return result + //-------------------------------------------------------------------------- + + if (info != GrB_SUCCESS) + { + // out of memory, or other error + GB_FREE_ALL ; + return (info) ; + } + + C->nvals = cnvals ; + C->magic = GB_MAGIC ; + ASSERT_MATRIX_OK (C, "C from bitmap selector", GB0) ; + return (GrB_SUCCESS) ; +} + diff --git a/GraphBLAS/Source/GB_select_column.c b/GraphBLAS/Source/select/GB_select_column.c similarity index 98% rename from GraphBLAS/Source/GB_select_column.c rename to GraphBLAS/Source/select/GB_select_column.c index f628575d76..2551c20aae 100644 --- a/GraphBLAS/Source/GB_select_column.c +++ b/GraphBLAS/Source/select/GB_select_column.c @@ -11,9 +11,9 @@ // The column selectors can be done in a single pass. -#include "GB_select.h" -#include "GB_transpose.h" -#include "GB_stringify.h" +#include "select/GB_select.h" +#include "transpose/GB_transpose.h" +#include "jitifyer/GB_stringify.h" #define GB_FREE_ALL \ { \ @@ -93,7 +93,7 @@ GrB_Info GB_select_column else if (A_is_hyper) { // find the column j in the hyperlist of A - // future:: use hyperhash if present + // future:: use hyper_hash if present int64_t kright = anvec-1 ; GB_SPLIT_BINARY_SEARCH (j, Ah, k, kright, found) ; // if found is true the Ah [k] == j diff --git a/GraphBLAS/Source/GB_select_generic_bitmap.c b/GraphBLAS/Source/select/GB_select_generic_bitmap.c similarity index 92% rename from GraphBLAS/Source/GB_select_generic_bitmap.c rename to GraphBLAS/Source/select/GB_select_generic_bitmap.c index 97489d948e..c7608c0e1d 100644 --- a/GraphBLAS/Source/GB_select_generic_bitmap.c +++ b/GraphBLAS/Source/select/GB_select_generic_bitmap.c @@ -9,8 +9,8 @@ // A is bitmap or full, C is bitmap -#include "GB_select.h" -#include "GB_ek_slice.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" GrB_Info GB_select_generic_bitmap ( @@ -53,7 +53,7 @@ GrB_Info GB_select_generic_bitmap #define GB_GENERIC #define GB_ENTRY_SELECTOR #define GB_A_TYPE GB_void - #include "GB_select_shared_definitions.h" + #include "select/include/GB_select_shared_definitions.h" if (A->iso) { @@ -77,7 +77,7 @@ GrB_Info GB_select_generic_bitmap bool keep ; \ fkeep (&keep, x, flipij ? j : i, flipij ? i : j, ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" } else @@ -96,7 +96,7 @@ GrB_Info GB_select_generic_bitmap fkeep (z, x, flipij ? j : i, flipij ? i : j, ythunk) ; \ cast_Z_to_bool (&keep, z, zsize) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" } } @@ -116,7 +116,7 @@ GrB_Info GB_select_generic_bitmap fkeep (&keep, Ax +(p)*asize, \ flipij ? j : i, flipij ? i : j, ythunk) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" } else @@ -138,7 +138,7 @@ GrB_Info GB_select_generic_bitmap fkeep (z, x, flipij ? j : i, flipij ? i : j, ythunk) ; \ cast_Z_to_bool (&keep, z, zsize) ; - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" } diff --git a/GraphBLAS/Source/GB_select_generic_phase1.c b/GraphBLAS/Source/select/GB_select_generic_phase1.c similarity index 92% rename from GraphBLAS/Source/GB_select_generic_phase1.c rename to GraphBLAS/Source/select/GB_select_generic_phase1.c index 258055be8f..7ddbf88ee5 100644 --- a/GraphBLAS/Source/GB_select_generic_phase1.c +++ b/GraphBLAS/Source/select/GB_select_generic_phase1.c @@ -10,8 +10,8 @@ // A is sparse, hypersparse, or full, and the op is not positional. // C is sparse or hypersparse. -#include "GB_select.h" -#include "GB_ek_slice.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" GrB_Info GB_select_generic_phase1 ( @@ -53,7 +53,7 @@ GrB_Info GB_select_generic_phase1 #define GB_GENERIC #define GB_A_TYPE GB_void - #include "GB_select_shared_definitions.h" + #include "select/include/GB_select_shared_definitions.h" if (A->iso) { @@ -76,7 +76,7 @@ GrB_Info GB_select_generic_phase1 #define GB_TEST_VALUE_OF_ENTRY(keep,p) \ bool keep ; \ fkeep (&keep, x, flipij ? j : i, flipij ? i : j, ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" } else @@ -94,7 +94,7 @@ GrB_Info GB_select_generic_phase1 GB_void z [GB_VLA(zsize)] ; \ fkeep (z, x, flipij ? j : i, flipij ? i : j, ythunk) ; \ cast_Z_to_bool (&keep, z, zsize) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" } @@ -114,7 +114,7 @@ GrB_Info GB_select_generic_phase1 bool keep ; \ fkeep (&keep, Ax +(p)*asize, \ flipij ? j : i, flipij ? i : j, ythunk) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" } else @@ -135,7 +135,7 @@ GrB_Info GB_select_generic_phase1 cast_A_to_X (x, Ax +(p)*asize, asize) ; \ fkeep (z, x, flipij ? j : i, flipij ? i : j, ythunk) ; \ cast_Z_to_bool (&keep, z, zsize) ; - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" } } diff --git a/GraphBLAS/Source/GB_select_generic_phase2.c b/GraphBLAS/Source/select/GB_select_generic_phase2.c similarity index 94% rename from GraphBLAS/Source/GB_select_generic_phase2.c rename to GraphBLAS/Source/select/GB_select_generic_phase2.c index 1e7438f07f..0c4961da6e 100644 --- a/GraphBLAS/Source/GB_select_generic_phase2.c +++ b/GraphBLAS/Source/select/GB_select_generic_phase2.c @@ -10,8 +10,8 @@ // A is sparse, hypersparse, or full, and the op is not positional. // C is sparse or hypersparse. -#include "GB_select.h" -#include "GB_ek_slice.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" GrB_Info GB_select_generic_phase2 ( @@ -65,7 +65,7 @@ GrB_Info GB_select_generic_phase2 #define GB_GENERIC #define GB_ENTRY_SELECTOR #define GB_A_TYPE GB_void - #include "GB_select_shared_definitions.h" + #include "select/include/GB_select_shared_definitions.h" // GB_ISO_SELECT is always #defined'd as 1 here, even though C can be iso. // The case when C is iso is handled by the GB_SELECT_ENTRY macro itself. @@ -95,7 +95,7 @@ GrB_Info GB_select_generic_phase2 #define GB_TEST_VALUE_OF_ENTRY(keep,p) \ bool keep ; \ fkeep (&keep, x, flipij ? j : i, flipij ? i : j, ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" } else @@ -113,7 +113,7 @@ GrB_Info GB_select_generic_phase2 GB_void z [GB_VLA(zsize)] ; \ fkeep (z, x, flipij ? j : i, flipij ? i : j, ythunk) ; \ cast_Z_to_bool (&keep, z, zsize) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" } @@ -143,7 +143,7 @@ GrB_Info GB_select_generic_phase2 #undef GB_TEST_VALUE_OF_ENTRY #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" } else if (op->ztype == GrB_BOOL && op->xtype == A->type) @@ -158,7 +158,7 @@ GrB_Info GB_select_generic_phase2 bool keep ; \ fkeep (&keep, Ax +(p)*asize, \ flipij ? j : i, flipij ? i : j, ythunk) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" } else @@ -179,7 +179,7 @@ GrB_Info GB_select_generic_phase2 cast_A_to_X (x, Ax +(p)*asize, asize) ; \ fkeep (z, x, flipij ? j : i, flipij ? i : j, ythunk) ; \ cast_Z_to_bool (&keep, z, zsize) ; - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" } } diff --git a/GraphBLAS/Source/GB_select_positional_bitmap.c b/GraphBLAS/Source/select/GB_select_positional_bitmap.c similarity index 75% rename from GraphBLAS/Source/GB_select_positional_bitmap.c rename to GraphBLAS/Source/select/GB_select_positional_bitmap.c index dc14364719..066a7ba8a2 100644 --- a/GraphBLAS/Source/GB_select_positional_bitmap.c +++ b/GraphBLAS/Source/select/GB_select_positional_bitmap.c @@ -11,8 +11,8 @@ // A is bitmap or as-if-full. C is bitmap -#include "GB_select.h" -#include "GB_ek_slice.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" GrB_Info GB_select_positional_bitmap ( @@ -38,60 +38,60 @@ GrB_Info GB_select_positional_bitmap //-------------------------------------------------------------------------- #define GB_A_TYPE GB_void - #include "GB_select_shared_definitions.h" + #include "select/include/GB_select_shared_definitions.h" switch (opcode) { case GB_TRIL_idxunop_code : #define GB_TRIL_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; case GB_TRIU_idxunop_code : #define GB_TRIU_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; case GB_DIAG_idxunop_code : #define GB_DIAG_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; case GB_OFFDIAG_idxunop_code : case GB_DIAGINDEX_idxunop_code : #define GB_OFFDIAG_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; case GB_ROWINDEX_idxunop_code : #define GB_ROWINDEX_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; case GB_ROWLE_idxunop_code : #define GB_ROWLE_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; case GB_ROWGT_idxunop_code : #define GB_ROWGT_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; case GB_COLINDEX_idxunop_code : #define GB_COLINDEX_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; case GB_COLLE_idxunop_code : #define GB_COLLE_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; case GB_COLGT_idxunop_code : #define GB_COLGT_SELECTOR - #include "GB_select_bitmap_template.c" + #include "select/template/GB_select_bitmap_template.c" break ; default: ; diff --git a/GraphBLAS/Source/GB_select_positional_phase1.c b/GraphBLAS/Source/select/GB_select_positional_phase1.c similarity index 77% rename from GraphBLAS/Source/GB_select_positional_phase1.c rename to GraphBLAS/Source/select/GB_select_positional_phase1.c index 7a18f4e4e5..97ce29a44d 100644 --- a/GraphBLAS/Source/GB_select_positional_phase1.c +++ b/GraphBLAS/Source/select/GB_select_positional_phase1.c @@ -11,8 +11,8 @@ // JIT: not needed, but 3 variants possible (A sparse, hyper, or full for DIAG) -#include "GB_select.h" -#include "GB_ek_slice.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" GrB_Info GB_select_positional_phase1 ( @@ -44,52 +44,52 @@ GrB_Info GB_select_positional_phase1 // phase1: positional operators and nonzombie selector //-------------------------------------------------------------------------- - #include "GB_select_shared_definitions.h" + #include "select/include/GB_select_shared_definitions.h" switch (opcode) { case GB_TRIL_idxunop_code : #define GB_TRIL_SELECTOR - #include "GB_select_positional_phase1_template.c" + #include "select/template/GB_select_positional_phase1_template.c" break ; case GB_TRIU_idxunop_code : #define GB_TRIU_SELECTOR - #include "GB_select_positional_phase1_template.c" + #include "select/template/GB_select_positional_phase1_template.c" break ; case GB_DIAG_idxunop_code : #define GB_DIAG_SELECTOR - #include "GB_select_positional_phase1_template.c" + #include "select/template/GB_select_positional_phase1_template.c" break ; case GB_OFFDIAG_idxunop_code : case GB_DIAGINDEX_idxunop_code : #define GB_OFFDIAG_SELECTOR - #include "GB_select_positional_phase1_template.c" + #include "select/template/GB_select_positional_phase1_template.c" break ; case GB_ROWINDEX_idxunop_code : #define GB_ROWINDEX_SELECTOR - #include "GB_select_positional_phase1_template.c" + #include "select/template/GB_select_positional_phase1_template.c" break ; case GB_ROWLE_idxunop_code : #define GB_ROWLE_SELECTOR - #include "GB_select_positional_phase1_template.c" + #include "select/template/GB_select_positional_phase1_template.c" break ; case GB_ROWGT_idxunop_code : #define GB_ROWGT_SELECTOR - #include "GB_select_positional_phase1_template.c" + #include "select/template/GB_select_positional_phase1_template.c" break ; case GB_NONZOMBIE_idxunop_code : // keep A(i,j) if it's not a zombie #define GB_A_TYPE GB_void #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) - #include "GB_select_entry_phase1_template.c" + #include "select/template/GB_select_entry_phase1_template.c" break ; default: ; diff --git a/GraphBLAS/Source/GB_select_positional_phase2.c b/GraphBLAS/Source/select/GB_select_positional_phase2.c similarity index 80% rename from GraphBLAS/Source/GB_select_positional_phase2.c rename to GraphBLAS/Source/select/GB_select_positional_phase2.c index 0dd7c21266..3623620a1c 100644 --- a/GraphBLAS/Source/GB_select_positional_phase2.c +++ b/GraphBLAS/Source/select/GB_select_positional_phase2.c @@ -11,8 +11,8 @@ // JIT: not needed, but 3 variants possible (A sparse, hyper, or full for DIAG) -#include "GB_select.h" -#include "GB_ek_slice.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" GrB_Info GB_select_positional_phase2 ( @@ -46,7 +46,7 @@ GrB_Info GB_select_positional_phase2 //-------------------------------------------------------------------------- #define GB_A_TYPE GB_void - #include "GB_select_shared_definitions.h" + #include "select/include/GB_select_shared_definitions.h" if (A->iso) { @@ -63,38 +63,38 @@ GrB_Info GB_select_positional_phase2 case GB_TRIL_idxunop_code : #define GB_TRIL_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_TRIU_idxunop_code : #define GB_TRIU_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_DIAG_idxunop_code : #define GB_DIAG_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_OFFDIAG_idxunop_code : case GB_DIAGINDEX_idxunop_code : #define GB_OFFDIAG_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_ROWINDEX_idxunop_code : #define GB_ROWINDEX_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_ROWLE_idxunop_code : #define GB_ROWLE_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_ROWGT_idxunop_code : #define GB_ROWGT_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_NONZOMBIE_idxunop_code : @@ -103,7 +103,7 @@ GrB_Info GB_select_positional_phase2 #define GB_TEST_VALUE_OF_ENTRY(keep,p) bool keep = (i >= 0) // A is iso and thus so is C, so do not select the value #define GB_SELECT_ENTRY(Cx,pC,Ax,pA) - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" #undef GB_ENTRY_SELECTOR break ; @@ -126,38 +126,38 @@ GrB_Info GB_select_positional_phase2 case GB_TRIL_idxunop_code : #define GB_TRIL_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_TRIU_idxunop_code : #define GB_TRIU_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_DIAG_idxunop_code : #define GB_DIAG_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_OFFDIAG_idxunop_code : case GB_DIAGINDEX_idxunop_code : #define GB_OFFDIAG_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_ROWINDEX_idxunop_code : #define GB_ROWINDEX_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_ROWLE_idxunop_code : #define GB_ROWLE_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; case GB_ROWGT_idxunop_code : #define GB_ROWGT_SELECTOR - #include "GB_select_phase2.c" + #include "select/template/GB_select_phase2.c" break ; default: ; diff --git a/GraphBLAS/Source/GB_select_sparse.c b/GraphBLAS/Source/select/GB_select_sparse.c similarity index 98% rename from GraphBLAS/Source/GB_select_sparse.c rename to GraphBLAS/Source/select/GB_select_sparse.c index 8374b78809..f23dbd4e39 100644 --- a/GraphBLAS/Source/GB_select_sparse.c +++ b/GraphBLAS/Source/select/GB_select_sparse.c @@ -9,13 +9,13 @@ // JIT: done. -#include "GB_select.h" -#include "GB_ek_slice.h" +#include "select/GB_select.h" +#include "slice/GB_ek_slice.h" #ifndef GBCOMPACT -#include "GB_sel__include.h" +#include "FactoryKernels/GB_sel__include.h" #endif -#include "GB_scalar_wrap.h" -#include "GB_stringify.h" +#include "scalar/GB_Scalar_wrap.h" +#include "jitifyer/GB_stringify.h" #define GB_FREE_WORKSPACE \ { \ @@ -202,7 +202,7 @@ GrB_Info GB_select_sparse break ; // launch the switch factory - #include "GB_select_entry_factory.c" + #include "select/factory/GB_select_entry_factory.c" #undef GB_SEL_WORKER } #endif @@ -316,7 +316,7 @@ GrB_Info GB_select_sparse break ; // launch the switch factory - #include "GB_select_entry_factory.c" + #include "select/factory/GB_select_entry_factory.c" } #endif diff --git a/GraphBLAS/Source/GB_select_value_iso.c b/GraphBLAS/Source/select/GB_select_value_iso.c similarity index 97% rename from GraphBLAS/Source/GB_select_value_iso.c rename to GraphBLAS/Source/select/GB_select_value_iso.c index ff4598472c..1ea4d55f5f 100644 --- a/GraphBLAS/Source/GB_select_value_iso.c +++ b/GraphBLAS/Source/select/GB_select_value_iso.c @@ -20,9 +20,9 @@ GB_phybix_free (C) ; \ } -#include "GB_select.h" -#include "GB_scalar_wrap.h" -#include "GB_transpose.h" +#include "select/GB_select.h" +#include "scalar/GB_Scalar_wrap.h" +#include "transpose/GB_transpose.h" GrB_Info GB_select_value_iso ( diff --git a/GraphBLAS/Source/GB_selectop_to_idxunop.c b/GraphBLAS/Source/select/GB_selectop_to_idxunop.c similarity index 99% rename from GraphBLAS/Source/GB_selectop_to_idxunop.c rename to GraphBLAS/Source/select/GB_selectop_to_idxunop.c index 0347987e2c..44e58d4856 100644 --- a/GraphBLAS/Source/GB_selectop_to_idxunop.c +++ b/GraphBLAS/Source/select/GB_selectop_to_idxunop.c @@ -19,7 +19,7 @@ GB_Matrix_free ((GrB_Matrix *) &NewThunk) ; \ } -#include "GB_select.h" +#include "select/GB_select.h" GrB_Info GB_selectop_to_idxunop ( diff --git a/GraphBLAS/Source/GB_selector.c b/GraphBLAS/Source/select/GB_selector.c similarity index 94% rename from GraphBLAS/Source/GB_selector.c rename to GraphBLAS/Source/select/GB_selector.c index d27a1fc04c..2536301ebe 100644 --- a/GraphBLAS/Source/GB_selector.c +++ b/GraphBLAS/Source/select/GB_selector.c @@ -19,7 +19,7 @@ // TODO: GB_selector does not exploit the mask. -#include "GB_select.h" +#include "select/GB_select.h" #define GB_FREE_ALL ; @@ -104,8 +104,6 @@ GrB_Info GB_selector return (GB_select_value_iso (C, op, A, ithunk, athunk, ythunk, Werk)) ; } - // The CUDA select kernel would be called here. - //-------------------------------------------------------------------------- // bitmap/as-if-full case //-------------------------------------------------------------------------- @@ -159,7 +157,21 @@ GrB_Info GB_selector // sparse/hypersparse general case //-------------------------------------------------------------------------- - return (GB_select_sparse (C, C_iso, op, flipij, A, ithunk, athunk, ythunk, - Werk)) ; + info = GrB_NO_VALUE ; + + #if defined ( GRAPHBLAS_HAS_CUDA ) + if (GB_cuda_select_branch (A, op)) + { + info = GB_cuda_select_sparse (C, C_iso, op, flipij, A, ythunk) ; + } + #endif + + if (info == GrB_NO_VALUE) + { + info = GB_select_sparse (C, C_iso, op, flipij, A, ithunk, athunk, + ythunk, Werk) ; + } + + return (info) ; } diff --git a/GraphBLAS/Source/GrB_Matrix_select.c b/GraphBLAS/Source/select/GrB_Matrix_select.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_select.c rename to GraphBLAS/Source/select/GrB_Matrix_select.c index 98d170d089..b7fad2f15f 100644 --- a/GraphBLAS/Source/GrB_Matrix_select.c +++ b/GraphBLAS/Source/select/GrB_Matrix_select.c @@ -9,9 +9,9 @@ // C = accum(C,select(A,k)) or accum(C,select(A',)) -#include "GB_select.h" -#include "GB_get_mask.h" -#include "GB_scalar_wrap.h" +#include "select/GB_select.h" +#include "mask/GB_get_mask.h" +#include "scalar/GB_Scalar_wrap.h" //------------------------------------------------------------------------------ // GB_sel: select using a GrB_IndexUnaryOp diff --git a/GraphBLAS/Source/GrB_Vector_select.c b/GraphBLAS/Source/select/GrB_Vector_select.c similarity index 98% rename from GraphBLAS/Source/GrB_Vector_select.c rename to GraphBLAS/Source/select/GrB_Vector_select.c index 49ae96a9c6..eddc40b3a6 100644 --- a/GraphBLAS/Source/GrB_Vector_select.c +++ b/GraphBLAS/Source/select/GrB_Vector_select.c @@ -7,9 +7,9 @@ //------------------------------------------------------------------------------ -#include "GB_select.h" -#include "GB_get_mask.h" -#include "GB_scalar_wrap.h" +#include "select/GB_select.h" +#include "mask/GB_get_mask.h" +#include "scalar/GB_Scalar_wrap.h" //------------------------------------------------------------------------------ // GB_sel: select using a GrB_IndexUnaryOp diff --git a/GraphBLAS/Source/GxB_Matrix_select.c b/GraphBLAS/Source/select/GxB_Matrix_select.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_select.c rename to GraphBLAS/Source/select/GxB_Matrix_select.c index 7bb90ce89f..6e2de2c106 100644 --- a/GraphBLAS/Source/GxB_Matrix_select.c +++ b/GraphBLAS/Source/select/GxB_Matrix_select.c @@ -14,8 +14,8 @@ GrB_Scalar_free (&Thunk) ; \ } -#include "GB_select.h" -#include "GB_get_mask.h" +#include "select/GB_select.h" +#include "mask/GB_get_mask.h" GrB_Info GxB_Matrix_select // C = accum (C, select(A,k)) or select(A',k) ( diff --git a/GraphBLAS/Source/GxB_Vector_select.c b/GraphBLAS/Source/select/GxB_Vector_select.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_select.c rename to GraphBLAS/Source/select/GxB_Vector_select.c index 616832eb86..01c852d3ac 100644 --- a/GraphBLAS/Source/GxB_Vector_select.c +++ b/GraphBLAS/Source/select/GxB_Vector_select.c @@ -14,8 +14,8 @@ GrB_Scalar_free (&Thunk) ; \ } -#include "GB_select.h" -#include "GB_get_mask.h" +#include "select/GB_select.h" +#include "mask/GB_get_mask.h" GrB_Info GxB_Vector_select // w = accum (w, select(u,k)) ( diff --git a/GraphBLAS/Source/Factories/GB_select_entry_factory.c b/GraphBLAS/Source/select/factory/GB_select_entry_factory.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_select_entry_factory.c rename to GraphBLAS/Source/select/factory/GB_select_entry_factory.c diff --git a/GraphBLAS/Source/Shared/GB_select_shared_definitions.h b/GraphBLAS/Source/select/include/GB_select_shared_definitions.h similarity index 94% rename from GraphBLAS/Source/Shared/GB_select_shared_definitions.h rename to GraphBLAS/Source/select/include/GB_select_shared_definitions.h index 97b91853ce..22a67d872f 100644 --- a/GraphBLAS/Source/Shared/GB_select_shared_definitions.h +++ b/GraphBLAS/Source/select/include/GB_select_shared_definitions.h @@ -12,7 +12,7 @@ // this file. This file is shared by generic, factory, and both CPU and // CUDA JIT kernels. -#include "GB_kernel_shared_definitions.h" +#include "include/GB_kernel_shared_definitions.h" #ifndef GB_SELECT_SHARED_DEFINITIONS_H #define GB_SELECT_SHARED_DEFINITIONS_H diff --git a/GraphBLAS/Source/Template/GB_select_bitmap_bitmap_template.c b/GraphBLAS/Source/select/template/GB_select_bitmap_bitmap_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_select_bitmap_bitmap_template.c rename to GraphBLAS/Source/select/template/GB_select_bitmap_bitmap_template.c diff --git a/GraphBLAS/Source/Template/GB_select_bitmap_full_template.c b/GraphBLAS/Source/select/template/GB_select_bitmap_full_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_select_bitmap_full_template.c rename to GraphBLAS/Source/select/template/GB_select_bitmap_full_template.c diff --git a/GraphBLAS/Source/Template/GB_select_bitmap_template.c b/GraphBLAS/Source/select/template/GB_select_bitmap_template.c similarity index 81% rename from GraphBLAS/Source/Template/GB_select_bitmap_template.c rename to GraphBLAS/Source/select/template/GB_select_bitmap_template.c index f210481168..247f573eab 100644 --- a/GraphBLAS/Source/Template/GB_select_bitmap_template.c +++ b/GraphBLAS/Source/select/template/GB_select_bitmap_template.c @@ -16,12 +16,12 @@ { // A is bitmap int8_t *Ab = A->b ; - #include "GB_select_bitmap_bitmap_template.c" + #include "template/GB_select_bitmap_bitmap_template.c" } #else { // A is full - #include "GB_select_bitmap_full_template.c" + #include "template/GB_select_bitmap_full_template.c" } #endif } @@ -31,12 +31,12 @@ if (Ab != NULL) { // A is bitmap - #include "GB_select_bitmap_bitmap_template.c" + #include "template/GB_select_bitmap_bitmap_template.c" } else { // A is full - #include "GB_select_bitmap_full_template.c" + #include "template/GB_select_bitmap_full_template.c" } } #endif diff --git a/GraphBLAS/Source/Template/GB_select_entry_phase1_template.c b/GraphBLAS/Source/select/template/GB_select_entry_phase1_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_select_entry_phase1_template.c rename to GraphBLAS/Source/select/template/GB_select_entry_phase1_template.c diff --git a/GraphBLAS/Source/Template/GB_select_phase2.c b/GraphBLAS/Source/select/template/GB_select_phase2.c similarity index 100% rename from GraphBLAS/Source/Template/GB_select_phase2.c rename to GraphBLAS/Source/select/template/GB_select_phase2.c diff --git a/GraphBLAS/Source/Template/GB_select_positional_phase1_template.c b/GraphBLAS/Source/select/template/GB_select_positional_phase1_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_select_positional_phase1_template.c rename to GraphBLAS/Source/select/template/GB_select_positional_phase1_template.c diff --git a/GraphBLAS/Source/GB_Semiring_new.c b/GraphBLAS/Source/semiring/GB_Semiring_new.c similarity index 97% rename from GraphBLAS/Source/GB_Semiring_new.c rename to GraphBLAS/Source/semiring/GB_Semiring_new.c index 62b17e637e..00f9d5c0fc 100644 --- a/GraphBLAS/Source/GB_Semiring_new.c +++ b/GraphBLAS/Source/semiring/GB_Semiring_new.c @@ -10,8 +10,8 @@ // The semiring struct is already allocated on input. #include "GB.h" -#include "GB_Semiring_new.h" -#include "GB_jitifyer.h" +#include "semiring/GB_Semiring_new.h" +#include "jitifyer/GB_jitifyer.h" GrB_Info GB_Semiring_new // create a semiring ( diff --git a/GraphBLAS/Source/GB_Semiring_new.h b/GraphBLAS/Source/semiring/GB_Semiring_new.h similarity index 100% rename from GraphBLAS/Source/GB_Semiring_new.h rename to GraphBLAS/Source/semiring/GB_Semiring_new.h diff --git a/GraphBLAS/Source/GrB_Semiring_free.c b/GraphBLAS/Source/semiring/GrB_Semiring_free.c similarity index 100% rename from GraphBLAS/Source/GrB_Semiring_free.c rename to GraphBLAS/Source/semiring/GrB_Semiring_free.c diff --git a/GraphBLAS/Source/GrB_Semiring_new.c b/GraphBLAS/Source/semiring/GrB_Semiring_new.c similarity index 98% rename from GraphBLAS/Source/GrB_Semiring_new.c rename to GraphBLAS/Source/semiring/GrB_Semiring_new.c index 3ff05e5657..712889865d 100644 --- a/GraphBLAS/Source/GrB_Semiring_new.c +++ b/GraphBLAS/Source/semiring/GrB_Semiring_new.c @@ -28,7 +28,7 @@ // operator is not assumed to be commutative. #include "GB.h" -#include "GB_Semiring_new.h" +#include "semiring/GB_Semiring_new.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GxB_Semiring_add.c b/GraphBLAS/Source/semiring/GxB_Semiring_add.c similarity index 100% rename from GraphBLAS/Source/GxB_Semiring_add.c rename to GraphBLAS/Source/semiring/GxB_Semiring_add.c diff --git a/GraphBLAS/Source/GxB_Semiring_multiply.c b/GraphBLAS/Source/semiring/GxB_Semiring_multiply.c similarity index 100% rename from GraphBLAS/Source/GxB_Semiring_multiply.c rename to GraphBLAS/Source/semiring/GxB_Semiring_multiply.c diff --git a/GraphBLAS/Source/GB_deserialize.c b/GraphBLAS/Source/serialize/GB_deserialize.c similarity index 99% rename from GraphBLAS/Source/GB_deserialize.c rename to GraphBLAS/Source/serialize/GB_deserialize.c index 48254488a9..14f012b169 100644 --- a/GraphBLAS/Source/GB_deserialize.c +++ b/GraphBLAS/Source/serialize/GB_deserialize.c @@ -10,8 +10,8 @@ // A parallel decompression of a serialized blob into a GrB_Matrix. #include "GB.h" -#include "GB_get_set.h" -#include "GB_serialize.h" +#include "get_set/GB_get_set.h" +#include "serialize/GB_serialize.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GB_deserialize_from_blob.c b/GraphBLAS/Source/serialize/GB_deserialize_from_blob.c similarity index 98% rename from GraphBLAS/Source/GB_deserialize_from_blob.c rename to GraphBLAS/Source/serialize/GB_deserialize_from_blob.c index 66c8ac7f90..6845a324fc 100644 --- a/GraphBLAS/Source/GB_deserialize_from_blob.c +++ b/GraphBLAS/Source/serialize/GB_deserialize_from_blob.c @@ -16,9 +16,9 @@ // done by GB_deserialize, if requested. #include "GB.h" -#include "GB_serialize.h" -#include "GB_lz4.h" -#include "GB_zstd.h" +#include "serialize/GB_serialize.h" +#include "lz4_wrapper/GB_lz4.h" +#include "zstd_wrapper/GB_zstd.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GB_serialize.c b/GraphBLAS/Source/serialize/GB_serialize.c similarity index 99% rename from GraphBLAS/Source/GB_serialize.c rename to GraphBLAS/Source/serialize/GB_serialize.c index 2b9591c3cc..3d12478ddf 100644 --- a/GraphBLAS/Source/GB_serialize.c +++ b/GraphBLAS/Source/serialize/GB_serialize.c @@ -14,8 +14,8 @@ // estimate the size of the blob for GrB_Matrix_serializeSize. #include "GB.h" -#include "GB_get_set.h" -#include "GB_serialize.h" +#include "get_set/GB_get_set.h" +#include "serialize/GB_serialize.h" #define GB_FREE_WORKSPACE \ { \ diff --git a/GraphBLAS/Source/GB_serialize.h b/GraphBLAS/Source/serialize/GB_serialize.h similarity index 100% rename from GraphBLAS/Source/GB_serialize.h rename to GraphBLAS/Source/serialize/GB_serialize.h diff --git a/GraphBLAS/Source/GB_serialize_array.c b/GraphBLAS/Source/serialize/GB_serialize_array.c similarity index 99% rename from GraphBLAS/Source/GB_serialize_array.c rename to GraphBLAS/Source/serialize/GB_serialize_array.c index 69efd4dbd4..4da9f67a02 100644 --- a/GraphBLAS/Source/GB_serialize_array.c +++ b/GraphBLAS/Source/serialize/GB_serialize_array.c @@ -14,9 +14,9 @@ // compressed. Currently, only LZ4, LZ4HC, and ZSTD are supported. #include "GB.h" -#include "GB_serialize.h" -#include "GB_lz4.h" -#include "GB_zstd.h" +#include "serialize/GB_serialize.h" +#include "lz4_wrapper/GB_lz4.h" +#include "zstd_wrapper/GB_zstd.h" #define GB_FREE_ALL \ { \ diff --git a/GraphBLAS/Source/GB_serialize_free_blocks.c b/GraphBLAS/Source/serialize/GB_serialize_free_blocks.c similarity index 97% rename from GraphBLAS/Source/GB_serialize_free_blocks.c rename to GraphBLAS/Source/serialize/GB_serialize_free_blocks.c index 4641c36018..eb7896c3cb 100644 --- a/GraphBLAS/Source/GB_serialize_free_blocks.c +++ b/GraphBLAS/Source/serialize/GB_serialize_free_blocks.c @@ -10,7 +10,7 @@ // Free the Blocks constructed by GB_serialize_array. #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" void GB_serialize_free_blocks ( diff --git a/GraphBLAS/Source/GB_serialize_method.c b/GraphBLAS/Source/serialize/GB_serialize_method.c similarity index 98% rename from GraphBLAS/Source/GB_serialize_method.c rename to GraphBLAS/Source/serialize/GB_serialize_method.c index 927bb21a9c..58affe4b0a 100644 --- a/GraphBLAS/Source/GB_serialize_method.c +++ b/GraphBLAS/Source/serialize/GB_serialize_method.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" void GB_serialize_method ( diff --git a/GraphBLAS/Source/GB_serialize_to_blob.c b/GraphBLAS/Source/serialize/GB_serialize_to_blob.c similarity index 98% rename from GraphBLAS/Source/GB_serialize_to_blob.c rename to GraphBLAS/Source/serialize/GB_serialize_to_blob.c index c78c4c8b7d..80d7ca2418 100644 --- a/GraphBLAS/Source/GB_serialize_to_blob.c +++ b/GraphBLAS/Source/serialize/GB_serialize_to_blob.c @@ -10,7 +10,7 @@ // JIT: not needed. Only one variant possible. #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" void GB_serialize_to_blob ( diff --git a/GraphBLAS/Source/GrB_Matrix_deserialize.c b/GraphBLAS/Source/serialize/GrB_Matrix_deserialize.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_deserialize.c rename to GraphBLAS/Source/serialize/GrB_Matrix_deserialize.c index 7b99304674..4bb59529b3 100644 --- a/GraphBLAS/Source/GrB_Matrix_deserialize.c +++ b/GraphBLAS/Source/serialize/GrB_Matrix_deserialize.c @@ -13,7 +13,7 @@ // a descriptor as the last parameter. #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" GrB_Info GrB_Matrix_deserialize // deserialize blob into a GrB_Matrix ( diff --git a/GraphBLAS/Source/GrB_Matrix_serialize.c b/GraphBLAS/Source/serialize/GrB_Matrix_serialize.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_serialize.c rename to GraphBLAS/Source/serialize/GrB_Matrix_serialize.c index fb47aeea45..7509761f46 100644 --- a/GraphBLAS/Source/GrB_Matrix_serialize.c +++ b/GraphBLAS/Source/serialize/GrB_Matrix_serialize.c @@ -28,7 +28,7 @@ */ #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" GrB_Info GrB_Matrix_serialize // serialize a GrB_Matrix to a blob ( diff --git a/GraphBLAS/Source/GrB_Matrix_serializeSize.c b/GraphBLAS/Source/serialize/GrB_Matrix_serializeSize.c similarity index 98% rename from GraphBLAS/Source/GrB_Matrix_serializeSize.c rename to GraphBLAS/Source/serialize/GrB_Matrix_serializeSize.c index b71acca082..aa6c57ef1b 100644 --- a/GraphBLAS/Source/GrB_Matrix_serializeSize.c +++ b/GraphBLAS/Source/serialize/GrB_Matrix_serializeSize.c @@ -13,7 +13,7 @@ // using the dryrun option in GB_serialize. #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" GrB_Info GrB_Matrix_serializeSize // estimate the size of a blob ( diff --git a/GraphBLAS/Source/GxB_Matrix_deserialize.c b/GraphBLAS/Source/serialize/GxB_Matrix_deserialize.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_deserialize.c rename to GraphBLAS/Source/serialize/GxB_Matrix_deserialize.c index 59779cab97..11856d0058 100644 --- a/GraphBLAS/Source/GxB_Matrix_deserialize.c +++ b/GraphBLAS/Source/serialize/GxB_Matrix_deserialize.c @@ -13,7 +13,7 @@ // a descriptor as the last parameter, to control the # of threads used. #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" GrB_Info GxB_Matrix_deserialize // deserialize blob into a GrB_Matrix ( diff --git a/GraphBLAS/Source/GxB_Matrix_serialize.c b/GraphBLAS/Source/serialize/GxB_Matrix_serialize.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_serialize.c rename to GraphBLAS/Source/serialize/GxB_Matrix_serialize.c index 7674c64c24..e9f3dcdb4d 100644 --- a/GraphBLAS/Source/GxB_Matrix_serialize.c +++ b/GraphBLAS/Source/serialize/GxB_Matrix_serialize.c @@ -31,7 +31,7 @@ */ #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" GrB_Info GxB_Matrix_serialize // serialize a GrB_Matrix to a blob ( diff --git a/GraphBLAS/Source/GxB_Vector_deserialize.c b/GraphBLAS/Source/serialize/GxB_Vector_deserialize.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_deserialize.c rename to GraphBLAS/Source/serialize/GxB_Vector_deserialize.c index 7c3830083d..5e0a8c08af 100644 --- a/GraphBLAS/Source/GxB_Vector_deserialize.c +++ b/GraphBLAS/Source/serialize/GxB_Vector_deserialize.c @@ -13,7 +13,7 @@ // a descriptor as the last parameter, to control the # of threads used. #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" GrB_Info GxB_Vector_deserialize // deserialize blob into a GrB_Vector ( diff --git a/GraphBLAS/Source/GxB_Vector_serialize.c b/GraphBLAS/Source/serialize/GxB_Vector_serialize.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_serialize.c rename to GraphBLAS/Source/serialize/GxB_Vector_serialize.c index ab8de201f4..3b9deb4b4c 100644 --- a/GraphBLAS/Source/GxB_Vector_serialize.c +++ b/GraphBLAS/Source/serialize/GxB_Vector_serialize.c @@ -31,7 +31,7 @@ */ #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" GrB_Info GxB_Vector_serialize // serialize a GrB_Vector to a blob ( diff --git a/GraphBLAS/Source/GxB_deserialize_type_name.c b/GraphBLAS/Source/serialize/GxB_deserialize_type_name.c similarity index 99% rename from GraphBLAS/Source/GxB_deserialize_type_name.c rename to GraphBLAS/Source/serialize/GxB_deserialize_type_name.c index 8ef32fb32b..e06f41d47b 100644 --- a/GraphBLAS/Source/GxB_deserialize_type_name.c +++ b/GraphBLAS/Source/serialize/GxB_deserialize_type_name.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_serialize.h" +#include "serialize/GB_serialize.h" // This method is historical; use GrB_get instead. diff --git a/GraphBLAS/Source/slice/GB_e_slice.c b/GraphBLAS/Source/slice/GB_e_slice.c new file mode 100644 index 0000000000..1f8798acc1 --- /dev/null +++ b/GraphBLAS/Source/slice/GB_e_slice.c @@ -0,0 +1,29 @@ +//------------------------------------------------------------------------------ +// GB_e_slice: equal partition of e items to each task +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// There are e items to split between ntasks. Task tid will own items +// Slice [tid] to Slice [tid+1]-1. + +#include "GB.h" + +void GB_e_slice +( + int64_t *Slice, // array of size ntasks+1 + int64_t e, // number items to partition amongst the tasks + const int ntasks // # of tasks +) +{ + Slice [0] = 0 ; + for (int tid = 1 ; tid < ntasks ; tid++) + { + Slice [tid] = (int64_t) GB_PART (tid, e, ntasks) ; + } + Slice [ntasks] = e ; +} + diff --git a/GraphBLAS/Source/GB_ek_slice.c b/GraphBLAS/Source/slice/GB_ek_slice.c similarity index 83% rename from GraphBLAS/Source/GB_ek_slice.c rename to GraphBLAS/Source/slice/GB_ek_slice.c index 9a8c320f9e..296b18b317 100644 --- a/GraphBLAS/Source/GB_ek_slice.c +++ b/GraphBLAS/Source/slice/GB_ek_slice.c @@ -22,8 +22,20 @@ // A can have any sparsity structure (sparse, hyper, bitmap, or full). // A may be jumbled. -#include "GB_ek_slice.h" -#include "GB_ek_slice_search.c" +#include "slice/GB_ek_slice.h" +#include "slice/factory/GB_ek_slice_search.c" + +#if 0 +#define GB_CALLBACK_EK_SLICE_PROTO(GX_ek_slice) \ +void GX_ek_slice /* slice a matrix */ \ +( \ + /* output: */ \ + int64_t *restrict A_ek_slicing, /* size 3*ntasks+1 */ \ + /* input: */ \ + GrB_Matrix A, /* matrix to slice */ \ + int ntasks /* # of tasks */ \ +) +#endif GB_CALLBACK_EK_SLICE_PROTO (GB_ek_slice) { @@ -77,7 +89,7 @@ GB_CALLBACK_EK_SLICE_PROTO (GB_ek_slice) //-------------------------------------------------------------------------- // FUTURE: this can be done in parallel if there are many tasks - GB_eslice (pstart_slice, anz, ntasks) ; + GB_e_slice (pstart_slice, anz, ntasks) ; //-------------------------------------------------------------------------- // find the first and last vectors in each slice diff --git a/GraphBLAS/Source/GB_ek_slice.h b/GraphBLAS/Source/slice/GB_ek_slice.h similarity index 77% rename from GraphBLAS/Source/GB_ek_slice.h rename to GraphBLAS/Source/slice/GB_ek_slice.h index 17325e7dca..42d8072039 100644 --- a/GraphBLAS/Source/GB_ek_slice.h +++ b/GraphBLAS/Source/slice/GB_ek_slice.h @@ -32,17 +32,17 @@ void GB_ek_slice_merge2 // merge final results for matrix C ( // output - int64_t *C_nvec_nonempty, // # of non-empty vectors in C - int64_t *restrict Cp_kfirst, // size ntasks + int64_t *C_nvec_nonempty, // # of non-empty vectors in C + int64_t *restrict Cp_kfirst, // size ntasks // input/output - int64_t *restrict Cp, // size cnvec+1 + int64_t *restrict Cp, // size cnvec+1 // input const int64_t cnvec, - const int64_t *restrict Wfirst, // size ntasks - const int64_t *restrict Wlast, // size ntasks - const int64_t *ek_slicing, // size 3*ntasks+1 - const int ntasks, // # of tasks used to construct C - const int nthreads, // # of threads to use + const int64_t *restrict Wfirst, // size ntasks + const int64_t *restrict Wlast, // size ntasks + const int64_t *A_ek_slicing, // size 3*ntasks+1 + const int ntasks, // # of tasks used to construct C + const int nthreads, // # of threads to use GB_Werk Werk ) ; @@ -52,6 +52,13 @@ void GB_ek_slice_merge2 // merge final results for matrix C // The tasks were generated by GB_ek_slice. +// GB_get_pA_and_pC is no longer used. JIT kernels and templates use +// use the GB_GET_PA_AND_PC macro instead, #define'd in +// Source/slice/include/GB_ek_slice_kernels.h. + +// FIXME: replace GB_GET_PA_AND_PC with this static inline function and use +// this instead (but without the assignment of p0 and p1). + #if 0 static inline void GB_get_pA_and_pC ( @@ -73,6 +80,7 @@ static inline void GB_get_pA_and_pC ) { + // get the start of vector k and k+1 (does not appear in GB_GET_PA_AND_PC) int64_t p0 = GBP (Ap, k, avlen) ; int64_t p1 = GBP (Ap, k+1, avlen) ; @@ -106,6 +114,15 @@ static inline void GB_get_pA_and_pC // The tasks were generated by GB_ek_slice. +// GB_get_pA is only used for non-templatized factory methods, not in any JIT +// kernels or templates. JIT kernels and templates use the GB_GET_PA macro +// instead, #define'd in Source/slice/include/GB_ek_slice_kernels.h. + +// GB_get_pA and GB_GET_PA are very similar, except that GB_get_pA computes +// p0 and p1. + +// FIXME: unify GB_get_pA and GB_GET_PA into a single method. + static inline void GB_get_pA ( // output @@ -122,6 +139,7 @@ static inline void GB_get_pA ) { + // get the start of vector k and k+1 (does not appear in GB_GET_PA) int64_t p0 = GBP (Ap, k, avlen) ; int64_t p1 = GBP (Ap, k+1, avlen) ; diff --git a/GraphBLAS/Source/GB_ek_slice_merge1.c b/GraphBLAS/Source/slice/GB_ek_slice_merge1.c similarity index 77% rename from GraphBLAS/Source/GB_ek_slice_merge1.c rename to GraphBLAS/Source/slice/GB_ek_slice_merge1.c index 86669d4b5b..b5df69c0f6 100644 --- a/GraphBLAS/Source/GB_ek_slice_merge1.c +++ b/GraphBLAS/Source/slice/GB_ek_slice_merge1.c @@ -22,7 +22,21 @@ // This function sums up the entries computed for C(:,k) by all tasks, so that // on output, Cp [k] is the total count of entries in C(:,k). -#include "GB_ek_slice.h" +#include "slice/GB_ek_slice.h" + +#if 0 +#define GB_CALLBACK_EK_SLICE_MERGE1_PROTO(GX_ek_slice_merge1) \ +void GX_ek_slice_merge1 /* merge column counts for the matrix C */ \ +( \ + /* input/output: */ \ + int64_t *restrict Cp, /* column counts */ \ + /* input: */ \ + const int64_t *restrict Wfirst, /* size A_ntasks */ \ + const int64_t *restrict Wlast, /* size A_ntasks */ \ + const int64_t *A_ek_slicing, /* size 3*A_ntasks+1 */ \ + const int A_ntasks /* # of tasks */ \ +) +#endif GB_CALLBACK_EK_SLICE_MERGE1_PROTO (GB_ek_slice_merge1) { diff --git a/GraphBLAS/Source/GB_ek_slice_merge2.c b/GraphBLAS/Source/slice/GB_ek_slice_merge2.c similarity index 88% rename from GraphBLAS/Source/GB_ek_slice_merge2.c rename to GraphBLAS/Source/slice/GB_ek_slice_merge2.c index 33b711f2e2..dde979d414 100644 --- a/GraphBLAS/Source/GB_ek_slice_merge2.c +++ b/GraphBLAS/Source/slice/GB_ek_slice_merge2.c @@ -31,22 +31,22 @@ // operate on C(:,klast). In both cases, task tid starts its computations at // the top of C(:,klast), which can be found at Cp [klast]. -#include "GB_ek_slice.h" +#include "slice/GB_ek_slice.h" void GB_ek_slice_merge2 // merge final results for matrix C ( // output - int64_t *C_nvec_nonempty, // # of non-empty vectors in C - int64_t *restrict Cp_kfirst, // size ntasks + int64_t *C_nvec_nonempty, // # of non-empty vectors in C + int64_t *restrict Cp_kfirst, // size ntasks // input/output - int64_t *restrict Cp, // size cnvec+1 + int64_t *restrict Cp, // size cnvec+1 // input const int64_t cnvec, - const int64_t *restrict Wfirst, // size ntasks - const int64_t *restrict Wlast, // size ntasks - const int64_t *A_ek_slicing, // size 3*ntasks+1 - const int ntasks, // # of tasks used to construct C - const int nthreads, // # of threads to use + const int64_t *restrict Wfirst, // size ntasks + const int64_t *restrict Wlast, // size ntasks + const int64_t *A_ek_slicing, // size 3*ntasks+1 + const int ntasks, // # of tasks used to construct C + const int nthreads, // # of threads to use GB_Werk Werk ) { diff --git a/GraphBLAS/Source/GB_ewise_slice.c b/GraphBLAS/Source/slice/GB_ewise_slice.c similarity index 99% rename from GraphBLAS/Source/GB_ewise_slice.c rename to GraphBLAS/Source/slice/GB_ewise_slice.c index 623194cc5b..4868b1e261 100644 --- a/GraphBLAS/Source/GB_ewise_slice.c +++ b/GraphBLAS/Source/slice/GB_ewise_slice.c @@ -289,7 +289,7 @@ GrB_Info GB_ewise_slice GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (Coarse, Cwork, Cnvec, ntasks1, false) ; + GB_p_slice (Coarse, Cwork, Cnvec, ntasks1, false) ; //-------------------------------------------------------------------------- // construct all tasks, both coarse and fine diff --git a/GraphBLAS/Source/slice/GB_p_slice.c b/GraphBLAS/Source/slice/GB_p_slice.c new file mode 100644 index 0000000000..09706fd94d --- /dev/null +++ b/GraphBLAS/Source/slice/GB_p_slice.c @@ -0,0 +1,213 @@ +//------------------------------------------------------------------------------ +// GB_p_slice: partition Ap for a set of tasks +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// Ap [0..n] is an array with monotonically increasing entries. This function +// slices Ap so that each chunk has the same number of total values of its +// entries. Ap can be A->p for a matrix and then n = A->nvec. Or it can be +// the work needed for computing each vector of a matrix (see GB_ewise_slice +// and GB_subref_slice, for example). + +// If Ap is NULL then the matrix A (not provided here) is full or bitmap, +// which this function handles (Ap is implicit). + +#include "GB.h" + +//------------------------------------------------------------------------------ +// GB_p_slice_worker: partition Ap for a set of tasks +//------------------------------------------------------------------------------ + +static void GB_p_slice_worker +( + int64_t *restrict Slice, // size ntasks+1 + const int64_t *restrict Ap, // array size n+1 + int tlo, // assign to Slice [(tlo+1):(thi-1)] + int thi +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + #ifdef GB_DEBUG + ASSERT (Ap != NULL) ; + ASSERT (Slice != NULL) ; + ASSERT (0 <= tlo && tlo < thi - 1) ; + for (int t = tlo+1 ; t <= thi-1 ; t++) + { + ASSERT (Slice [t] == -1) ; + } + #endif + + //-------------------------------------------------------------------------- + // assign work to Slice [(tlo+1):(thi-1)] + //-------------------------------------------------------------------------- + + // klo = Slice [tlo] and khi = Slice [thi] are defined on input, where + // tlo < thi - 1. This determines the task boundaries for tasks + // tlo+1 to thi-1, which defines Slice [(tlo+1):(thi-1)]. + + int64_t klo = Slice [tlo] ; + int64_t khi = Slice [thi] ; ASSERT (0 <= klo && klo <= khi) ; + int64_t p1 = Ap [klo] ; + int64_t p2 = Ap [khi] ; ASSERT (p1 <= p2) ; + + if (p1 == p2 || klo == khi) + { + + //---------------------------------------------------------------------- + // no work is left so simply fill in with empty tasks + //---------------------------------------------------------------------- + + int64_t k = klo ; + for (int64_t t = tlo+1 ; t <= thi-1 ; t++) + { + Slice [t] = k ; + } + + } + else // p1 < p2 && klo < khi + { + + //---------------------------------------------------------------------- + // find task t that evenly partitions the work p1:p2 to tasks tlo:thi + //---------------------------------------------------------------------- + + int64_t k = (klo + khi) / 2 ; ASSERT (klo <= k && k <= khi) ; + int64_t p = Ap [k] ; ASSERT (p1 <= p && p <= p2) ; + double ntasks = thi - tlo ; + double ratio = (((double) (p - p1)) / ((double) (p2 - p1))) ; + int t = tlo + (int) floor (ratio * ntasks) ; + t = GB_IMAX (t, tlo+1) ; + t = GB_IMIN (t, thi-1) ; ASSERT (tlo < t && t < thi) ; + + //---------------------------------------------------------------------- + // assign work to task t + //---------------------------------------------------------------------- + + ASSERT (Slice [t] == -1) ; + Slice [t] = k ; + + //---------------------------------------------------------------------- + // recursively partition for tasks (tlo+1):(t-1) and (t+1):(thi-1) + //---------------------------------------------------------------------- + + if (tlo < t-1) + { + GB_p_slice_worker (Slice, Ap, tlo, t) ; + } + if (t < thi-1) + { + GB_p_slice_worker (Slice, Ap, t, thi) ; + } + } +} + +//------------------------------------------------------------------------------ +// GB_p_slice: partition Ap for a set of tasks +//------------------------------------------------------------------------------ + +void GB_p_slice // slice Ap +( + // output: + int64_t *restrict Slice, // size ntasks+1 + // input: + const int64_t *restrict Ap, // array size n+1 (NULL if full or bitmap) + const int64_t n, + const int ntasks, // # of tasks + const bool perfectly_balanced +) +{ + + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + ASSERT (Slice != NULL) ; + #ifdef GB_DEBUG + for (int taskid = 0 ; taskid <= ntasks ; taskid++) + { + Slice [taskid] = -1 ; + } + #endif + + //-------------------------------------------------------------------------- + // slice the work + //-------------------------------------------------------------------------- + + if (Ap == NULL) + { + + //---------------------------------------------------------------------- + // A is full or bitmap: slice 0:n equally for all tasks + //---------------------------------------------------------------------- + + GB_e_slice (Slice, n, ntasks) ; + + } + else + { + + //---------------------------------------------------------------------- + // A is sparse or hypersparse + //---------------------------------------------------------------------- + + if (n == 0 || ntasks <= 1 || Ap [n] == 0) + { + // matrix is empty, or a single thread is used + memset ((void *) Slice, 0, ntasks * sizeof (int64_t)) ; + Slice [ntasks] = n ; + } + else + { + // slice Ap by # of entries + Slice [0] = 0 ; + Slice [ntasks] = n ; + if (perfectly_balanced) + { + // this method is costly, and should only be used if the + // work is to be perfectly balanced (in particular, when there + // is just one task per thread, with static scheduling) + const double work = (double) (Ap [n]) ; + int64_t k = 0 ; + for (int taskid = 1 ; taskid < ntasks ; taskid++) + { + // binary search to find k so that Ap [k] == (taskid*work) / + // ntasks. The exact value will not typically not be found; + // just pick what the binary search comes up with. + int64_t wtask = (int64_t) GB_PART (taskid, work, ntasks) ; + int64_t pright = n ; + GB_TRIM_BINARY_SEARCH (wtask, Ap, k, pright) ; + Slice [taskid] = k ; + } + } + else + { + // this is much faster, and results in good load balancing if + // there is more than one task per thread, and dynamic + // scheduling is used. + GB_p_slice_worker (Slice, Ap, 0, ntasks) ; + } + } + } + + //-------------------------------------------------------------------------- + // check result + //-------------------------------------------------------------------------- + + #ifdef GB_DEBUG + ASSERT (Slice [0] == 0) ; + ASSERT (Slice [ntasks] == n) ; + for (int taskid = 0 ; taskid < ntasks ; taskid++) + { + ASSERT (Slice [taskid] <= Slice [taskid+1]) ; + } + #endif +} + diff --git a/GraphBLAS/Source/slice/GB_slice.h b/GraphBLAS/Source/slice/GB_slice.h new file mode 100644 index 0000000000..6115df54c4 --- /dev/null +++ b/GraphBLAS/Source/slice/GB_slice.h @@ -0,0 +1,34 @@ +//------------------------------------------------------------------------------ +// GB_slice.h: definitions for GB_e_slice and GB_p_slice +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#ifndef GB_SLICE_H +#define GB_SLICE_H + +void GB_p_slice // slice Ap +( + // output: + int64_t *restrict Slice, // size ntasks+1 + // input: + const int64_t *restrict Ap, // array size n+1 (NULL if full or bitmap) + const int64_t n, + const int ntasks, // # of tasks + const bool perfectly_balanced +) ; + +void GB_e_slice +( + // output: + int64_t *Slice, // array of size ntasks+1 + // input: + int64_t e, // number items to partition amongst the tasks + const int ntasks // # of tasks +) ; + +#endif + diff --git a/GraphBLAS/Source/GB_slice_vector.c b/GraphBLAS/Source/slice/GB_slice_vector.c similarity index 100% rename from GraphBLAS/Source/GB_slice_vector.c rename to GraphBLAS/Source/slice/GB_slice_vector.c diff --git a/GraphBLAS/Source/GB_task_cumsum.c b/GraphBLAS/Source/slice/GB_task_cumsum.c similarity index 100% rename from GraphBLAS/Source/GB_task_cumsum.c rename to GraphBLAS/Source/slice/GB_task_cumsum.c diff --git a/GraphBLAS/Source/GB_task_methods.h b/GraphBLAS/Source/slice/GB_task_methods.h similarity index 99% rename from GraphBLAS/Source/GB_task_methods.h rename to GraphBLAS/Source/slice/GB_task_methods.h index 718e415e7c..b4bb248829 100644 --- a/GraphBLAS/Source/GB_task_methods.h +++ b/GraphBLAS/Source/slice/GB_task_methods.h @@ -29,7 +29,7 @@ // The GB_subassign functions use the TaskList, in many different ways. // typedef GB_task_struct: -#include "GB_task_struct.h" +#include "include/GB_task_struct.h" // GB_REALLOC_TASK_WORK: Allocate or reallocate the TaskList so that it can // hold at least ntasks. Double the size if it's too small. diff --git a/GraphBLAS/Source/Factories/GB_ek_slice_search.c b/GraphBLAS/Source/slice/factory/GB_ek_slice_search.c similarity index 97% rename from GraphBLAS/Source/Factories/GB_ek_slice_search.c rename to GraphBLAS/Source/slice/factory/GB_ek_slice_search.c index 67fb8e3ed5..968e4d4742 100644 --- a/GraphBLAS/Source/Factories/GB_ek_slice_search.c +++ b/GraphBLAS/Source/slice/factory/GB_ek_slice_search.c @@ -9,7 +9,7 @@ #ifndef GB_EK_SLICE_SEARCH_H #define GB_EK_SLICE_SEARCH_H -#include "GB_search_for_vector_template.c" +#include "slice/factory/GB_search_for_vector_template.c" static inline void GB_ek_slice_search ( diff --git a/GraphBLAS/Source/Factories/GB_search_for_vector_template.c b/GraphBLAS/Source/slice/factory/GB_search_for_vector_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_search_for_vector_template.c rename to GraphBLAS/Source/slice/factory/GB_search_for_vector_template.c diff --git a/GraphBLAS/Source/Template/GB_ek_slice_kernels.h b/GraphBLAS/Source/slice/include/GB_ek_slice_kernels.h similarity index 98% rename from GraphBLAS/Source/Template/GB_ek_slice_kernels.h rename to GraphBLAS/Source/slice/include/GB_ek_slice_kernels.h index c00bcc7a5f..cae30aa2a8 100644 --- a/GraphBLAS/Source/Template/GB_ek_slice_kernels.h +++ b/GraphBLAS/Source/slice/include/GB_ek_slice_kernels.h @@ -36,8 +36,8 @@ static inline void GB_ek_slice_ntasks { (*nthreads) = GB_nthreads (work, chunk, nthreads_max) ; (*ntasks) = (*nthreads == 1) ? 1 : ((ntasks_per_thread) * (*nthreads)) ; - (*ntasks) = GB_IMIN (*ntasks, anz_held) ; - (*ntasks) = GB_IMAX (*ntasks, 1) ; + (*ntasks) = (int) GB_IMIN (*ntasks, anz_held) ; + (*ntasks) = (int) GB_IMAX (*ntasks, 1) ; } } diff --git a/GraphBLAS/Source/Shared/GB_partition.h b/GraphBLAS/Source/slice/include/GB_partition.h similarity index 100% rename from GraphBLAS/Source/Shared/GB_partition.h rename to GraphBLAS/Source/slice/include/GB_partition.h diff --git a/GraphBLAS/Source/Template/GB_task_struct.h b/GraphBLAS/Source/slice/include/GB_task_struct.h similarity index 100% rename from GraphBLAS/Source/Template/GB_task_struct.h rename to GraphBLAS/Source/slice/include/GB_task_struct.h diff --git a/GraphBLAS/Source/GB_msort_1.c b/GraphBLAS/Source/sort/GB_msort_1.c similarity index 99% rename from GraphBLAS/Source/GB_msort_1.c rename to GraphBLAS/Source/sort/GB_msort_1.c index f39764c047..c11ba60a3f 100644 --- a/GraphBLAS/Source/GB_msort_1.c +++ b/GraphBLAS/Source/sort/GB_msort_1.c @@ -11,7 +11,7 @@ // A parallel mergesort of an array of 1-by-n integers. -#include "GB_msort_1.h" +#include "sort/GB_msort_1.h" //------------------------------------------------------------------------------ // GB_msort_1_binary_search: binary search for the pivot @@ -346,7 +346,7 @@ GrB_Info GB_msort_1 // sort array A of size 1-by-n // partition and sort the leaves //-------------------------------------------------------------------------- - GB_eslice (Slice, n, ntasks) ; + GB_e_slice (Slice, n, ntasks) ; int tid ; #pragma omp parallel for num_threads(nthreads) schedule(dynamic,1) for (tid = 0 ; tid < ntasks ; tid++) diff --git a/GraphBLAS/Source/GB_msort_1.h b/GraphBLAS/Source/sort/GB_msort_1.h similarity index 98% rename from GraphBLAS/Source/GB_msort_1.h rename to GraphBLAS/Source/sort/GB_msort_1.h index abda154102..a8109e32ef 100644 --- a/GraphBLAS/Source/GB_msort_1.h +++ b/GraphBLAS/Source/sort/GB_msort_1.h @@ -10,7 +10,7 @@ // A parallel mergesort of an array of 2-by-n integers. Each key consists // of two integers. -#include "GB_sort.h" +#include "sort/GB_sort.h" //------------------------------------------------------------------------------ // prototypes only needed for GB_msort_1 diff --git a/GraphBLAS/Source/GB_msort_2.c b/GraphBLAS/Source/sort/GB_msort_2.c similarity index 99% rename from GraphBLAS/Source/GB_msort_2.c rename to GraphBLAS/Source/sort/GB_msort_2.c index 45b1e43408..50172242f0 100644 --- a/GraphBLAS/Source/GB_msort_2.c +++ b/GraphBLAS/Source/sort/GB_msort_2.c @@ -12,7 +12,7 @@ // A parallel mergesort of an array of 2-by-n integers. Each key // consists of two integers. -#include "GB_msort_2.h" +#include "sort/GB_msort_2.h" //------------------------------------------------------------------------------ // GB_msort_2_binary_search: binary search for the pivot @@ -360,7 +360,7 @@ GrB_Info GB_msort_2 // sort array A of size 2-by-n, using 2 keys (A [0:1][]) // partition and sort the leaves //-------------------------------------------------------------------------- - GB_eslice (Slice, n, ntasks) ; + GB_e_slice (Slice, n, ntasks) ; int tid ; #pragma omp parallel for num_threads(nthreads) schedule(dynamic,1) for (tid = 0 ; tid < ntasks ; tid++) diff --git a/GraphBLAS/Source/GB_msort_2.h b/GraphBLAS/Source/sort/GB_msort_2.h similarity index 98% rename from GraphBLAS/Source/GB_msort_2.h rename to GraphBLAS/Source/sort/GB_msort_2.h index 8b303c1165..ca8ed87bc5 100644 --- a/GraphBLAS/Source/GB_msort_2.h +++ b/GraphBLAS/Source/sort/GB_msort_2.h @@ -10,7 +10,7 @@ // A parallel mergesort of an array of 2-by-n integers. Each key consists // of two integers. -#include "GB_sort.h" +#include "sort/GB_sort.h" //------------------------------------------------------------------------------ // prototypes only needed for GB_msort_2 diff --git a/GraphBLAS/Source/GB_msort_3.c b/GraphBLAS/Source/sort/GB_msort_3.c similarity index 99% rename from GraphBLAS/Source/GB_msort_3.c rename to GraphBLAS/Source/sort/GB_msort_3.c index 22502b3767..2de5194ae2 100644 --- a/GraphBLAS/Source/GB_msort_3.c +++ b/GraphBLAS/Source/sort/GB_msort_3.c @@ -12,7 +12,7 @@ // A parallel mergesort of an array of 3-by-n integers. Each key // consists of three integers. -#include "GB_msort_3.h" +#include "sort/GB_msort_3.h" //------------------------------------------------------------------------------ // GB_msort_3_binary_search: binary search for the pivot @@ -373,7 +373,7 @@ GrB_Info GB_msort_3 // sort array A of size 3-by-n, using 3 keys (A [0:2][]) // partition and sort the leaves //-------------------------------------------------------------------------- - GB_eslice (Slice, n, ntasks) ; + GB_e_slice (Slice, n, ntasks) ; int tid ; #pragma omp parallel for num_threads(nthreads) schedule(dynamic,1) for (tid = 0 ; tid < ntasks ; tid++) diff --git a/GraphBLAS/Source/GB_msort_3.h b/GraphBLAS/Source/sort/GB_msort_3.h similarity index 98% rename from GraphBLAS/Source/GB_msort_3.h rename to GraphBLAS/Source/sort/GB_msort_3.h index 435e978546..a80abd7669 100644 --- a/GraphBLAS/Source/GB_msort_3.h +++ b/GraphBLAS/Source/sort/GB_msort_3.h @@ -10,7 +10,7 @@ // A parallel mergesort of an array of 3-by-n integers. Each key consists // of three integers. -#include "GB_sort.h" +#include "sort/GB_sort.h" //------------------------------------------------------------------------------ // prototypes only needed for GB_msort_3 diff --git a/GraphBLAS/Source/GB_qsort_1.c b/GraphBLAS/Source/sort/GB_qsort_1.c similarity index 95% rename from GraphBLAS/Source/GB_qsort_1.c rename to GraphBLAS/Source/sort/GB_qsort_1.c index c78bfaa841..89c0eb5f3c 100644 --- a/GraphBLAS/Source/GB_qsort_1.c +++ b/GraphBLAS/Source/sort/GB_qsort_1.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_sort.h" +#include "sort/GB_sort.h" // returns true if A [a] < B [b] #define GB_lt(A,a,B,b) \ @@ -37,7 +37,7 @@ #define GB_partition GB_partition_1 #define GB_quicksort GB_quicksort_1 -#include "GB_qsort_template.c" +#include "sort/factory/GB_qsort_template.c" GB_CALLBACK_QSORT_1_PROTO (GB_qsort_1) { diff --git a/GraphBLAS/Source/GB_qsort_1b.c b/GraphBLAS/Source/sort/GB_qsort_1b.c similarity index 95% rename from GraphBLAS/Source/GB_qsort_1b.c rename to GraphBLAS/Source/sort/GB_qsort_1b.c index 75a316a5b7..76dae1b833 100644 --- a/GraphBLAS/Source/GB_qsort_1b.c +++ b/GraphBLAS/Source/sort/GB_qsort_1b.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_sort.h" +#include "sort/GB_sort.h" // returns true if A [a] < B [b] #define GB_lt(A,a,B,b) GB_lt_1 (A ## _0, a, B ## _0, b) @@ -46,7 +46,7 @@ #define GB_partition GB_partition_1b #define GB_quicksort GB_quicksort_1b -#include "GB_qsort_template.c" +#include "sort/factory/GB_qsort_template.c" void GB_qsort_1b // sort array A of size 2-by-n, using 1 key (A [0][]) ( @@ -97,7 +97,7 @@ void GB_qsort_1b // sort array A of size 2-by-n, using 1 key (A [0][]) #undef GB_quicksort #define GB_quicksort GB_quicksort_1b_size1 -#include "GB_qsort_template.c" +#include "sort/factory/GB_qsort_template.c" void GB_qsort_1b_size1 // GB_qsort_1b with A_1 with sizeof = 1 ( @@ -123,7 +123,7 @@ void GB_qsort_1b_size1 // GB_qsort_1b with A_1 with sizeof = 1 #undef GB_quicksort #define GB_quicksort GB_quicksort_1b_size2 -#include "GB_qsort_template.c" +#include "sort/factory/GB_qsort_template.c" void GB_qsort_1b_size2 // GB_qsort_1b with A_1 with sizeof = 2 ( @@ -150,7 +150,7 @@ void GB_qsort_1b_size2 // GB_qsort_1b with A_1 with sizeof = 2 #undef GB_quicksort #define GB_quicksort GB_quicksort_1b_size4 -#include "GB_qsort_template.c" +#include "sort/factory/GB_qsort_template.c" void GB_qsort_1b_size4 // GB_qsort_1b with A_1 with sizeof = 4 ( @@ -177,7 +177,7 @@ void GB_qsort_1b_size4 // GB_qsort_1b with A_1 with sizeof = 4 #undef GB_quicksort #define GB_quicksort GB_quicksort_1b_size8 -#include "GB_qsort_template.c" +#include "sort/factory/GB_qsort_template.c" void GB_qsort_1b_size8 // GB_qsort_1b with A_1 with sizeof = 8 ( @@ -203,7 +203,7 @@ void GB_qsort_1b_size8 // GB_qsort_1b with A_1 with sizeof = 8 #undef GB_quicksort #define GB_quicksort GB_quicksort_1b_size16 -#include "GB_qsort_template.c" +#include "sort/factory/GB_qsort_template.c" void GB_qsort_1b_size16 // GB_qsort_1b with A_1 with sizeof = 16 ( diff --git a/GraphBLAS/Source/GB_qsort_2.c b/GraphBLAS/Source/sort/GB_qsort_2.c similarity index 96% rename from GraphBLAS/Source/GB_qsort_2.c rename to GraphBLAS/Source/sort/GB_qsort_2.c index b777d7182a..8023684251 100644 --- a/GraphBLAS/Source/GB_qsort_2.c +++ b/GraphBLAS/Source/sort/GB_qsort_2.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_sort.h" +#include "sort/GB_sort.h" // returns true if A [a] < B [b] #define GB_lt(A,a,B,b) \ @@ -39,7 +39,7 @@ #define GB_partition GB_partition_2 #define GB_quicksort GB_quicksort_2 -#include "GB_qsort_template.c" +#include "sort/factory/GB_qsort_template.c" void GB_qsort_2 // sort array A of size 2-by-n, using 2 keys (A [0:1][]) ( diff --git a/GraphBLAS/Source/GB_qsort_3.c b/GraphBLAS/Source/sort/GB_qsort_3.c similarity index 96% rename from GraphBLAS/Source/GB_qsort_3.c rename to GraphBLAS/Source/sort/GB_qsort_3.c index 9d0eca6611..cd978017f3 100644 --- a/GraphBLAS/Source/GB_qsort_3.c +++ b/GraphBLAS/Source/sort/GB_qsort_3.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_sort.h" +#include "sort/GB_sort.h" // returns true if A [a] < B [b] #define GB_lt(A,a,B,b) \ @@ -41,7 +41,7 @@ #define GB_partition GB_partition_3 #define GB_quicksort GB_quicksort_3 -#include "GB_qsort_template.c" +#include "sort/factory/GB_qsort_template.c" void GB_qsort_3 // sort array A of size 3-by-n, using 3 keys (A [0:2][]) ( diff --git a/GraphBLAS/Source/GB_sort.c b/GraphBLAS/Source/sort/GB_sort.c similarity index 94% rename from GraphBLAS/Source/GB_sort.c rename to GraphBLAS/Source/sort/GB_sort.c index 9af105fefe..45954c17a1 100644 --- a/GraphBLAS/Source/GB_sort.c +++ b/GraphBLAS/Source/sort/GB_sort.c @@ -9,9 +9,9 @@ // JIT: needed. -#include "GB_sort.h" -#include "GB_transpose.h" -#include "GB_ek_slice.h" +#include "sort/GB_sort.h" +#include "transpose/GB_transpose.h" +#include "slice/GB_ek_slice.h" // macros: @@ -47,47 +47,47 @@ #define GB_TYPE bool #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_BOOL) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE int8_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_INT8) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE int16_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_INT16) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE int32_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_INT32) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE int64_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_INT64) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE uint8_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_UINT8) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE uint16_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_UINT16) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE uint32_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_UINT32) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE uint64_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_UINT64) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE float #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_FP32) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE double #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _ascend_FP64) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" //------------------------------------------------------------------------------ // descending sort for built-in types @@ -99,47 +99,47 @@ #define GB_TYPE bool #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_BOOL) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE int8_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_INT8) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE int16_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_INT16) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE int32_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_INT32) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE int64_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_INT64) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE uint8_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_UINT8) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE uint16_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_UINT16) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE uint32_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_UINT32) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE uint64_t #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_UINT64) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE float #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_FP32) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" #define GB_TYPE double #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _descend_FP64) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" //------------------------------------------------------------------------------ // macros for user-defined types and when typecasting is performed @@ -182,7 +182,7 @@ #undef GB_SORT_UDT #define GB_SORT_UDT 1 #define GB_SORT(func) GB_EVAL3 (GB(sort_), func, _UDT) -#include "GB_sort_template.c" +#include "sort/factory/GB_sort_template.c" //------------------------------------------------------------------------------ // GB_sort @@ -204,7 +204,7 @@ } // redefine to use the revised GB_FREE_ALL above: -#include "GB_static_header.h" +#include "matrix/GB_static_header.h" GrB_Info GB_sort ( diff --git a/GraphBLAS/Source/GB_sort.h b/GraphBLAS/Source/sort/GB_sort.h similarity index 100% rename from GraphBLAS/Source/GB_sort.h rename to GraphBLAS/Source/sort/GB_sort.h diff --git a/GraphBLAS/Source/GxB_Matrix_sort.c b/GraphBLAS/Source/sort/GxB_Matrix_sort.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_sort.c rename to GraphBLAS/Source/sort/GxB_Matrix_sort.c index 0171373a95..b47b66ba1d 100644 --- a/GraphBLAS/Source/GxB_Matrix_sort.c +++ b/GraphBLAS/Source/sort/GxB_Matrix_sort.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_sort.h" +#include "sort/GB_sort.h" GrB_Info GxB_Matrix_sort ( diff --git a/GraphBLAS/Source/GxB_Vector_sort.c b/GraphBLAS/Source/sort/GxB_Vector_sort.c similarity index 98% rename from GraphBLAS/Source/GxB_Vector_sort.c rename to GraphBLAS/Source/sort/GxB_Vector_sort.c index 8d57dc2340..593aec9f2c 100644 --- a/GraphBLAS/Source/GxB_Vector_sort.c +++ b/GraphBLAS/Source/sort/GxB_Vector_sort.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_sort.h" +#include "sort/GB_sort.h" GrB_Info GxB_Vector_sort ( diff --git a/GraphBLAS/Source/Factories/GB_qsort_template.c b/GraphBLAS/Source/sort/factory/GB_qsort_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_qsort_template.c rename to GraphBLAS/Source/sort/factory/GB_qsort_template.c diff --git a/GraphBLAS/Source/Factories/GB_sort_template.c b/GraphBLAS/Source/sort/factory/GB_sort_template.c similarity index 99% rename from GraphBLAS/Source/Factories/GB_sort_template.c rename to GraphBLAS/Source/sort/factory/GB_sort_template.c index 4af094b309..11a49fb365 100644 --- a/GraphBLAS/Source/Factories/GB_sort_template.c +++ b/GraphBLAS/Source/sort/factory/GB_sort_template.c @@ -541,7 +541,7 @@ static void GB_SORT (vector) // sort the pair of arrays A_0, A_1 // partition and sort the leaves //-------------------------------------------------------------------------- - GB_eslice (Slice, n, ntasks) ; + GB_e_slice (Slice, n, ntasks) ; int tid ; #pragma omp parallel for num_threads(nthreads) schedule(dynamic,1) for (tid = 0 ; tid < ntasks ; tid++) @@ -731,7 +731,7 @@ static GrB_Info GB_SORT (matrix) int64_t *restrict C_skip = SortTasks + ntasks ; // size ntasks+1 int64_t *restrict C_slice = SortTasks + 2*ntasks + 1; // size ntasks+1 - GB_pslice (C_slice, Cp, cnvec, ntasks, false) ; + GB_p_slice (C_slice, Cp, cnvec, ntasks, false) ; // sort all short vectors in parallel, one thread per vector int tid ; diff --git a/GraphBLAS/Source/GB_split.c b/GraphBLAS/Source/split/GB_split.c similarity index 99% rename from GraphBLAS/Source/GB_split.c rename to GraphBLAS/Source/split/GB_split.c index 0da9d8166c..5ff3ad5272 100644 --- a/GraphBLAS/Source/GB_split.c +++ b/GraphBLAS/Source/split/GB_split.c @@ -18,7 +18,7 @@ GB_Matrix_free (&(Tiles [k])) ; \ } -#include "GB_split.h" +#include "split/GB_split.h" GrB_Info GB_split // split a matrix ( diff --git a/GraphBLAS/Source/GB_split.h b/GraphBLAS/Source/split/GB_split.h similarity index 98% rename from GraphBLAS/Source/GB_split.h rename to GraphBLAS/Source/split/GB_split.h index 848e4be9d7..c086aff682 100644 --- a/GraphBLAS/Source/GB_split.h +++ b/GraphBLAS/Source/split/GB_split.h @@ -10,7 +10,7 @@ #ifndef GB_SPLIT_H #define GB_SPLIT_H #include "GB.h" -#include "GB_ek_slice.h" +#include "slice/GB_ek_slice.h" #define GB_TILE(Tiles,i,j) (*(Tiles + (i) * n + (j))) GrB_Info GB_split // split a matrix diff --git a/GraphBLAS/Source/GB_split_bitmap.c b/GraphBLAS/Source/split/GB_split_bitmap.c similarity index 92% rename from GraphBLAS/Source/GB_split_bitmap.c rename to GraphBLAS/Source/split/GB_split_bitmap.c index 09f5d10790..5f3c2c1741 100644 --- a/GraphBLAS/Source/GB_split_bitmap.c +++ b/GraphBLAS/Source/split/GB_split_bitmap.c @@ -12,9 +12,9 @@ #define GB_FREE_ALL \ GB_Matrix_free (&C) ; -#include "GB_split.h" -#include "GB_stringify.h" -#include "GB_apply.h" +#include "split/GB_split.h" +#include "jitifyer/GB_stringify.h" +#include "apply/GB_apply.h" GrB_Info GB_split_bitmap // split a bitmap matrix ( @@ -109,7 +109,7 @@ GrB_Info GB_split_bitmap // split a bitmap matrix memcpy (C->x, A->x, asize) ; #define GB_ISO_SPLIT #define GB_COPY(pC,pA) ; - #include "GB_split_bitmap_template.c" + #include "split/template/GB_split_bitmap_template.c" info = GrB_SUCCESS ; } @@ -132,21 +132,21 @@ GrB_Info GB_split_bitmap // split a bitmap matrix case GB_1BYTE : // uint8, int8, bool, or 1-byte user #define GB_C_TYPE uint8_t #define GB_A_TYPE uint8_t - #include "GB_split_bitmap_template.c" + #include "split/template/GB_split_bitmap_template.c" info = GrB_SUCCESS ; break ; case GB_2BYTE : // uint16, int16, or 2-byte user #define GB_C_TYPE uint16_t #define GB_A_TYPE uint16_t - #include "GB_split_bitmap_template.c" + #include "split/template/GB_split_bitmap_template.c" info = GrB_SUCCESS ; break ; case GB_4BYTE : // uint32, int32, float, or 4-byte user #define GB_C_TYPE uint32_t #define GB_A_TYPE uint32_t - #include "GB_split_bitmap_template.c" + #include "split/template/GB_split_bitmap_template.c" info = GrB_SUCCESS ; break ; @@ -154,14 +154,14 @@ GrB_Info GB_split_bitmap // split a bitmap matrix // or 8-byte user defined #define GB_C_TYPE uint64_t #define GB_A_TYPE uint64_t - #include "GB_split_bitmap_template.c" + #include "split/template/GB_split_bitmap_template.c" info = GrB_SUCCESS ; break ; case GB_16BYTE : // double complex or 16-byte user #define GB_C_TYPE GB_blob16 #define GB_A_TYPE GB_blob16 - #include "GB_split_bitmap_template.c" + #include "split/template/GB_split_bitmap_template.c" info = GrB_SUCCESS ; break ; @@ -196,7 +196,7 @@ GrB_Info GB_split_bitmap // split a bitmap matrix #undef GB_COPY #define GB_COPY(pC,pA) \ memcpy (Cx + (pC)*asize, Ax +(pA)*asize, asize) ; - #include "GB_split_bitmap_template.c" + #include "split/template/GB_split_bitmap_template.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GB_split_full.c b/GraphBLAS/Source/split/GB_split_full.c similarity index 93% rename from GraphBLAS/Source/GB_split_full.c rename to GraphBLAS/Source/split/GB_split_full.c index 29f620ee62..f0cc974599 100644 --- a/GraphBLAS/Source/GB_split_full.c +++ b/GraphBLAS/Source/split/GB_split_full.c @@ -12,9 +12,9 @@ #define GB_FREE_ALL \ GB_Matrix_free (&C) ; -#include "GB_split.h" -#include "GB_stringify.h" -#include "GB_apply.h" +#include "split/GB_split.h" +#include "jitifyer/GB_stringify.h" +#include "apply/GB_apply.h" GrB_Info GB_split_full // split a full matrix ( @@ -125,21 +125,21 @@ GrB_Info GB_split_full // split a full matrix case GB_1BYTE : // uint8, int8, bool, or 1-byte user #define GB_C_TYPE uint8_t #define GB_A_TYPE uint8_t - #include "GB_split_full_template.c" + #include "split/template/GB_split_full_template.c" info = GrB_SUCCESS ; break ; case GB_2BYTE : // uint16, int16, or 2-byte user #define GB_C_TYPE uint16_t #define GB_A_TYPE uint16_t - #include "GB_split_full_template.c" + #include "split/template/GB_split_full_template.c" info = GrB_SUCCESS ; break ; case GB_4BYTE : // uint32, int32, float, or 4-byte user #define GB_C_TYPE uint32_t #define GB_A_TYPE uint32_t - #include "GB_split_full_template.c" + #include "split/template/GB_split_full_template.c" info = GrB_SUCCESS ; break ; @@ -147,14 +147,14 @@ GrB_Info GB_split_full // split a full matrix // complex, or 8-byte user #define GB_C_TYPE uint64_t #define GB_A_TYPE uint64_t - #include "GB_split_full_template.c" + #include "split/template/GB_split_full_template.c" info = GrB_SUCCESS ; break ; case GB_16BYTE : // double complex or 16-byte user #define GB_C_TYPE GB_blob16 #define GB_A_TYPE GB_blob16 - #include "GB_split_full_template.c" + #include "split/template/GB_split_full_template.c" info = GrB_SUCCESS ; break ; @@ -188,7 +188,7 @@ GrB_Info GB_split_full // split a full matrix #undef GB_COPY #define GB_COPY(pC,pA) \ memcpy (Cx +(pC)*asize, Ax +(pA)*asize, asize) ; - #include "GB_split_full_template.c" + #include "split/template/GB_split_full_template.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GB_split_sparse.c b/GraphBLAS/Source/split/GB_split_sparse.c similarity index 95% rename from GraphBLAS/Source/GB_split_sparse.c rename to GraphBLAS/Source/split/GB_split_sparse.c index eda613b45a..d8906d49c5 100644 --- a/GraphBLAS/Source/GB_split_sparse.c +++ b/GraphBLAS/Source/split/GB_split_sparse.c @@ -17,9 +17,9 @@ GB_FREE_WORKSPACE ; \ GB_Matrix_free (&C) ; -#include "GB_split.h" -#include "GB_stringify.h" -#include "GB_apply.h" +#include "split/GB_split.h" +#include "jitifyer/GB_stringify.h" +#include "apply/GB_apply.h" GrB_Info GB_split_sparse // split a sparse matrix ( @@ -238,7 +238,7 @@ GrB_Info GB_split_sparse // split a sparse matrix memcpy (C->x, A->x, asize) ; #define GB_ISO_SPLIT #define GB_COPY(pC,pA) ; - #include "GB_split_sparse_template.c" + #include "split/template/GB_split_sparse_template.c" info = GrB_SUCCESS ; } @@ -261,21 +261,21 @@ GrB_Info GB_split_sparse // split a sparse matrix case GB_1BYTE : // uint8, int8, bool, or 1-byte user #define GB_C_TYPE uint8_t #define GB_A_TYPE uint8_t - #include "GB_split_sparse_template.c" + #include "split/template/GB_split_sparse_template.c" info = GrB_SUCCESS ; break ; case GB_2BYTE : // uint16, int16, or 2-byte user-defined #define GB_C_TYPE uint16_t #define GB_A_TYPE uint16_t - #include "GB_split_sparse_template.c" + #include "split/template/GB_split_sparse_template.c" info = GrB_SUCCESS ; break ; case GB_4BYTE : // uint32, int32, float, or 4-byte user #define GB_C_TYPE uint32_t #define GB_A_TYPE uint32_t - #include "GB_split_sparse_template.c" + #include "split/template/GB_split_sparse_template.c" info = GrB_SUCCESS ; break ; @@ -283,14 +283,14 @@ GrB_Info GB_split_sparse // split a sparse matrix // or 8-byte user defined #define GB_C_TYPE uint64_t #define GB_A_TYPE uint64_t - #include "GB_split_sparse_template.c" + #include "split/template/GB_split_sparse_template.c" info = GrB_SUCCESS ; break ; case GB_16BYTE : // double complex or 16-byte user #define GB_C_TYPE GB_blob16 #define GB_A_TYPE GB_blob16 - #include "GB_split_sparse_template.c" + #include "split/template/GB_split_sparse_template.c" info = GrB_SUCCESS ; break ; @@ -325,7 +325,7 @@ GrB_Info GB_split_sparse // split a sparse matrix #undef GB_COPY #define GB_COPY(pC,pA) \ memcpy (Cx + (pC)*asize, Ax +(pA)*asize, asize) ; - #include "GB_split_sparse_template.c" + #include "split/template/GB_split_sparse_template.c" info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GxB_Matrix_split.c b/GraphBLAS/Source/split/GxB_Matrix_split.c similarity index 98% rename from GraphBLAS/Source/GxB_Matrix_split.c rename to GraphBLAS/Source/split/GxB_Matrix_split.c index 8a895fa753..d37e5bc5a2 100644 --- a/GraphBLAS/Source/GxB_Matrix_split.c +++ b/GraphBLAS/Source/split/GxB_Matrix_split.c @@ -10,7 +10,7 @@ // The input matrix A is split into a 2D array of size m-by-n. The Tile{i,j} // matrix has dimension Tile_nrows[i]-by-Tile_ncols[j]. -#include "GB_split.h" +#include "split/GB_split.h" GrB_Info GxB_Matrix_split // split a matrix into 2D array of matrices ( diff --git a/GraphBLAS/Source/Template/GB_split_bitmap_template.c b/GraphBLAS/Source/split/template/GB_split_bitmap_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_split_bitmap_template.c rename to GraphBLAS/Source/split/template/GB_split_bitmap_template.c diff --git a/GraphBLAS/Source/Template/GB_split_full_template.c b/GraphBLAS/Source/split/template/GB_split_full_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_split_full_template.c rename to GraphBLAS/Source/split/template/GB_split_full_template.c diff --git a/GraphBLAS/Source/Template/GB_split_sparse_template.c b/GraphBLAS/Source/split/template/GB_split_sparse_template.c similarity index 100% rename from GraphBLAS/Source/Template/GB_split_sparse_template.c rename to GraphBLAS/Source/split/template/GB_split_sparse_template.c diff --git a/GraphBLAS/Source/GB_transplant.c b/GraphBLAS/Source/transplant/GB_transplant.c similarity index 98% rename from GraphBLAS/Source/GB_transplant.c rename to GraphBLAS/Source/transplant/GB_transplant.c index d5a8ab19a8..b53b1c9998 100644 --- a/GraphBLAS/Source/GB_transplant.c +++ b/GraphBLAS/Source/transplant/GB_transplant.c @@ -113,7 +113,12 @@ GrB_Info GB_transplant // transplant one matrix into another if (C_is_hyper && A->Y != NULL) { - if (A->Y_shallow || GB_is_shallow (A->Y)) + if (C->no_hyper_hash) + { + // A has a hyper_hash matrix A->Y but C does not want it + GB_hyper_hash_free (A) ; + } + else if (A->Y_shallow || GB_is_shallow (A->Y)) { // A->Y is shallow, so create a deep copy for C GB_OK (GB_dup (&(C->Y), A->Y, Werk)) ; diff --git a/GraphBLAS/Source/GB_transplant.h b/GraphBLAS/Source/transplant/GB_transplant.h similarity index 100% rename from GraphBLAS/Source/GB_transplant.h rename to GraphBLAS/Source/transplant/GB_transplant.h diff --git a/GraphBLAS/Source/GB_transplant_conform.c b/GraphBLAS/Source/transplant/GB_transplant_conform.c similarity index 100% rename from GraphBLAS/Source/GB_transplant_conform.c rename to GraphBLAS/Source/transplant/GB_transplant_conform.c diff --git a/GraphBLAS/Source/GB_transpose.c b/GraphBLAS/Source/transpose/GB_transpose.c similarity index 99% rename from GraphBLAS/Source/GB_transpose.c rename to GraphBLAS/Source/transpose/GB_transpose.c index d7a4a41f6c..1829d0779a 100644 --- a/GraphBLAS/Source/GB_transpose.c +++ b/GraphBLAS/Source/transpose/GB_transpose.c @@ -52,9 +52,10 @@ GB_phybix_free (C) ; \ } -#include "GB_transpose.h" -#include "GB_build.h" -#include "GB_apply.h" +#include "transpose/GB_transpose.h" +#include "builder/GB_build.h" +#include "apply/GB_apply.h" +#include "extractTuples/GB_extractTuples.h" //------------------------------------------------------------------------------ // GB_transpose diff --git a/GraphBLAS/Source/GB_transpose.h b/GraphBLAS/Source/transpose/GB_transpose.h similarity index 100% rename from GraphBLAS/Source/GB_transpose.h rename to GraphBLAS/Source/transpose/GB_transpose.h diff --git a/GraphBLAS/Source/GB_transpose_bucket.c b/GraphBLAS/Source/transpose/GB_transpose_bucket.c similarity index 99% rename from GraphBLAS/Source/GB_transpose_bucket.c rename to GraphBLAS/Source/transpose/GB_transpose_bucket.c index b3bafc99c4..f6344bb858 100644 --- a/GraphBLAS/Source/GB_transpose_bucket.c +++ b/GraphBLAS/Source/transpose/GB_transpose_bucket.c @@ -35,7 +35,7 @@ // This method is parallel, but not highly scalable. At most O(e/m) threads // are used. -#include "GB_transpose.h" +#include "transpose/GB_transpose.h" #define GB_FREE_WORKSPACE \ { \ @@ -171,7 +171,7 @@ GrB_Info GB_transpose_bucket // bucket transpose; typecast and apply op GB_FREE_ALL ; return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (A_slice, A->p, A->nvec, nthreads, true) ; + GB_p_slice (A_slice, A->p, A->nvec, nthreads, true) ; // sum up the row counts and find C->p if (nthreads == 1) diff --git a/GraphBLAS/Source/GB_transpose_cast.c b/GraphBLAS/Source/transpose/GB_transpose_cast.c similarity index 95% rename from GraphBLAS/Source/GB_transpose_cast.c rename to GraphBLAS/Source/transpose/GB_transpose_cast.c index 483ff2c423..086672e4ec 100644 --- a/GraphBLAS/Source/GB_transpose_cast.c +++ b/GraphBLAS/Source/transpose/GB_transpose_cast.c @@ -12,8 +12,8 @@ // ctype is not equal to A->type. If iso_one is true, C is returned as an // iso matrix, with an iso value of 1. -#include "GB_transpose.h" -#include "GB_unop.h" +#include "transpose/GB_transpose.h" +#include "unaryop/GB_unop.h" GrB_Info GB_transpose_cast // C= (ctype) A' or one (A'), not in-place ( diff --git a/GraphBLAS/Source/GB_transpose_in_place.c b/GraphBLAS/Source/transpose/GB_transpose_in_place.c similarity index 96% rename from GraphBLAS/Source/GB_transpose_in_place.c rename to GraphBLAS/Source/transpose/GB_transpose_in_place.c index 020d8e9ef2..7dddc67671 100644 --- a/GraphBLAS/Source/GB_transpose_in_place.c +++ b/GraphBLAS/Source/transpose/GB_transpose_in_place.c @@ -10,7 +10,7 @@ // All other uses of GB_transpose are not in-place. // No operator is applied and no typecasting is done. -#include "GB_transpose.h" +#include "transpose/GB_transpose.h" GrB_Info GB_transpose_in_place // C=A', no change of type, no operators ( diff --git a/GraphBLAS/Source/GB_transpose_ix.c b/GraphBLAS/Source/transpose/GB_transpose_ix.c similarity index 91% rename from GraphBLAS/Source/GB_transpose_ix.c rename to GraphBLAS/Source/transpose/GB_transpose_ix.c index 0e2e7ad857..0c2005eacc 100644 --- a/GraphBLAS/Source/GB_transpose_ix.c +++ b/GraphBLAS/Source/transpose/GB_transpose_ix.c @@ -27,11 +27,11 @@ // Workspaces and A_slice are NULL. // This method is parallel and fully scalable. -#include "GB_transpose.h" -#include "GB_unop.h" -#include "GB_stringify.h" +#include "transpose/GB_transpose.h" +#include "unaryop/GB_unop.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_unop__include.h" +#include "FactoryKernels/GB_uop__include.h" #endif GrB_Info GB_transpose_ix // transpose the pattern and values of a matrix @@ -77,7 +77,7 @@ GrB_Info GB_transpose_ix // transpose the pattern and values of a matrix // C = pattern of A transposed #define GB_ISO_TRANSPOSE - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" info = GrB_SUCCESS ; } @@ -96,12 +96,12 @@ GrB_Info GB_transpose_ix // transpose the pattern and values of a matrix // define the worker for the switch factory //------------------------------------------------------------------ - #define GB_unop_tran(zname,aname) \ - GB (_unop_tran__identity ## zname ## aname) + #define GB_uop_tran(zname,aname) \ + GB (_uop_tran__identity ## zname ## aname) #define GB_WORKER(ignore1,zname,ztype,aname,atype) \ { \ - info = GB_unop_tran (zname,aname) \ + info = GB_uop_tran (zname,aname) \ (C, A, Workspaces, A_slice, nworkspaces, nthreads) ; \ } \ break ; @@ -110,7 +110,7 @@ GrB_Info GB_transpose_ix // transpose the pattern and values of a matrix // launch the switch factory //------------------------------------------------------------------ - #include "GB_twotype_factory.c" + #include "apply/factory/GB_twotype_factory.c" } #endif @@ -143,7 +143,7 @@ GrB_Info GB_transpose_ix // transpose the pattern and values of a matrix cast_A_to_X (Cx +((pC)*csize), Ax +((pA)*asize), asize) ; #define GB_A_TYPE GB_void #define GB_C_TYPE GB_void - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" info = GrB_SUCCESS ; } } diff --git a/GraphBLAS/Source/GB_transpose_method.c b/GraphBLAS/Source/transpose/GB_transpose_method.c similarity index 99% rename from GraphBLAS/Source/GB_transpose_method.c rename to GraphBLAS/Source/transpose/GB_transpose_method.c index 9e5fc03cbf..8db9cdaad0 100644 --- a/GraphBLAS/Source/GB_transpose_method.c +++ b/GraphBLAS/Source/transpose/GB_transpose_method.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_transpose.h" +#include "transpose/GB_transpose.h" // GB_transpose can use choose between a merge-sort-based method that takes // O(anz*log(anz)) time, or a bucket-sort method that takes O(anz+m+n) time. diff --git a/GraphBLAS/Source/GB_transpose_op.c b/GraphBLAS/Source/transpose/GB_transpose_op.c similarity index 94% rename from GraphBLAS/Source/GB_transpose_op.c rename to GraphBLAS/Source/transpose/GB_transpose_op.c index 085685c485..03625b9b0e 100644 --- a/GraphBLAS/Source/GB_transpose_op.c +++ b/GraphBLAS/Source/transpose/GB_transpose_op.c @@ -35,12 +35,12 @@ // Workspaces and A_slice are NULL. // This method is parallel and fully scalable. -#include "GB_transpose.h" -#include "GB_binop.h" -#include "GB_stringify.h" +#include "transpose/GB_transpose.h" +#include "binaryop/GB_binop.h" +#include "jitifyer/GB_stringify.h" #ifndef GBCOMPACT -#include "GB_unop__include.h" -#include "GB_ew__include.h" +#include "FactoryKernels/GB_uop__include.h" +#include "FactoryKernels/GB_ew__include.h" #endif GrB_Info GB_transpose_op // transpose, typecast, and apply operator to a matrix @@ -97,7 +97,7 @@ GrB_Info GB_transpose_op // transpose, typecast, and apply operator to a matrix // C = transpose the pattern #define GB_ISO_TRANSPOSE - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" info = GrB_SUCCESS ; } @@ -128,12 +128,12 @@ GrB_Info GB_transpose_op // transpose, typecast, and apply operator to a matrix // define the worker for the switch factory //-------------------------------------------------------------- - #define GB_unop_tran(opname,zname,aname) \ - GB (_unop_tran_ ## opname ## zname ## aname) + #define GB_uop_tran(opname,zname,aname) \ + GB (_uop_tran_ ## opname ## zname ## aname) #define GB_WORKER(opname,zname,ztype,aname,atype) \ { \ - info = GB_unop_tran (opname,zname,aname) \ + info = GB_uop_tran (opname,zname,aname) \ (C, A, Workspaces, A_slice, nworkspaces, nthreads) ; \ } \ break ; @@ -142,7 +142,7 @@ GrB_Info GB_transpose_op // transpose, typecast, and apply operator to a matrix // launch the switch factory //-------------------------------------------------------------- - #include "GB_unop_factory.c" + #include "apply/factory/GB_unop_factory.c" } } #endif @@ -191,7 +191,7 @@ GrB_Info GB_transpose_op // transpose, typecast, and apply operator to a matrix #define GB_A_TYPE GB_void #define GB_C_TYPE GB_void - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" info = GrB_SUCCESS ; } @@ -284,7 +284,7 @@ GrB_Info GB_transpose_op // transpose, typecast, and apply operator to a matrix #define GB_NO_FIRST #define GB_NO_SECOND #define GB_NO_PAIR - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } #endif @@ -335,7 +335,7 @@ GrB_Info GB_transpose_op // transpose, typecast, and apply operator to a matrix #define GB_NO_FIRST #define GB_NO_SECOND #define GB_NO_PAIR - #include "GB_binop_factory.c" + #include "binaryop/factory/GB_binop_factory.c" } } #endif @@ -372,7 +372,7 @@ GrB_Info GB_transpose_op // transpose, typecast, and apply operator to a matrix /* Cx [pC] = fop (xwork) ; Cx is of type op->ztype */ \ fop (Cx +((pC)*zsize), scalarx, ywork) ; \ } - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" } else { @@ -386,7 +386,7 @@ GrB_Info GB_transpose_op // transpose, typecast, and apply operator to a matrix /* Cx [pC] = fop (xwork) ; Cx is of type op->ztype */ \ fop (Cx +(pC*zsize), xwork, scalarx) ; \ } - #include "GB_transpose_template.c" + #include "transpose/template/GB_transpose_template.c" } info = GrB_SUCCESS ; } diff --git a/GraphBLAS/Source/GrB_transpose.c b/GraphBLAS/Source/transpose/GrB_transpose.c similarity index 98% rename from GraphBLAS/Source/GrB_transpose.c rename to GraphBLAS/Source/transpose/GrB_transpose.c index c816aa1732..aa7c0aaac8 100644 --- a/GraphBLAS/Source/GrB_transpose.c +++ b/GraphBLAS/Source/transpose/GrB_transpose.c @@ -11,9 +11,9 @@ #define GB_FREE_ALL GB_Matrix_free (&T) ; -#include "GB_transpose.h" -#include "GB_accum_mask.h" -#include "GB_get_mask.h" +#include "transpose/GB_transpose.h" +#include "mask/GB_accum_mask.h" +#include "mask/GB_get_mask.h" GrB_Info GrB_transpose // C = accum(C,A') or accum(C,A) ( diff --git a/GraphBLAS/Source/Template/GB_transpose_bitmap.c b/GraphBLAS/Source/transpose/template/GB_transpose_bitmap.c similarity index 100% rename from GraphBLAS/Source/Template/GB_transpose_bitmap.c rename to GraphBLAS/Source/transpose/template/GB_transpose_bitmap.c diff --git a/GraphBLAS/Source/Template/GB_transpose_full.c b/GraphBLAS/Source/transpose/template/GB_transpose_full.c similarity index 100% rename from GraphBLAS/Source/Template/GB_transpose_full.c rename to GraphBLAS/Source/transpose/template/GB_transpose_full.c diff --git a/GraphBLAS/Source/Template/GB_transpose_sparse.c b/GraphBLAS/Source/transpose/template/GB_transpose_sparse.c similarity index 100% rename from GraphBLAS/Source/Template/GB_transpose_sparse.c rename to GraphBLAS/Source/transpose/template/GB_transpose_sparse.c diff --git a/GraphBLAS/Source/Template/GB_transpose_template.c b/GraphBLAS/Source/transpose/template/GB_transpose_template.c similarity index 86% rename from GraphBLAS/Source/Template/GB_transpose_template.c rename to GraphBLAS/Source/transpose/template/GB_transpose_template.c index c03aa5c7e8..7fd76a1a6d 100644 --- a/GraphBLAS/Source/Template/GB_transpose_template.c +++ b/GraphBLAS/Source/transpose/template/GB_transpose_template.c @@ -10,7 +10,7 @@ { // Ax unused for some uses of this template - #include "GB_unused.h" + #include "include/GB_unused.h" //-------------------------------------------------------------------------- // get A and C @@ -46,17 +46,17 @@ #if GB_C_IS_FULL { // A and C are both full - #include "GB_transpose_full.c" + #include "template/GB_transpose_full.c" } #elif GB_C_IS_BITMAP { // A and C are both bitmap - #include "GB_transpose_bitmap.c" + #include "template/GB_transpose_bitmap.c" } #else { // A is sparse or hypersparse; C is sparse - #include "GB_transpose_sparse.c" + #include "template/GB_transpose_sparse.c" } #endif } @@ -68,18 +68,18 @@ if (A->b == NULL) { // A and C are both full - #include "GB_transpose_full.c" + #include "template/GB_transpose_full.c" } else { // A and C are both bitmap - #include "GB_transpose_bitmap.c" + #include "template/GB_transpose_bitmap.c" } } else { // A is sparse or hypersparse; C is sparse - #include "GB_transpose_sparse.c" + #include "template/GB_transpose_sparse.c" } } #endif diff --git a/GraphBLAS/Source/GB_code_size.c b/GraphBLAS/Source/type/GB_code_size.c similarity index 100% rename from GraphBLAS/Source/GB_code_size.c rename to GraphBLAS/Source/type/GB_code_size.c diff --git a/GraphBLAS/Source/GB_code_string.c b/GraphBLAS/Source/type/GB_code_string.c similarity index 100% rename from GraphBLAS/Source/GB_code_string.c rename to GraphBLAS/Source/type/GB_code_string.c diff --git a/GraphBLAS/Source/GB_code_type.c b/GraphBLAS/Source/type/GB_code_type.c similarity index 100% rename from GraphBLAS/Source/GB_code_type.c rename to GraphBLAS/Source/type/GB_code_type.c diff --git a/GraphBLAS/Source/GB_matvec_type.c b/GraphBLAS/Source/type/GB_matvec_type.c similarity index 100% rename from GraphBLAS/Source/GB_matvec_type.c rename to GraphBLAS/Source/type/GB_matvec_type.c diff --git a/GraphBLAS/Source/GB_matvec_type_name.c b/GraphBLAS/Source/type/GB_matvec_type_name.c similarity index 100% rename from GraphBLAS/Source/GB_matvec_type_name.c rename to GraphBLAS/Source/type/GB_matvec_type_name.c diff --git a/GraphBLAS/Source/GB_type.h b/GraphBLAS/Source/type/GB_type.h similarity index 100% rename from GraphBLAS/Source/GB_type.h rename to GraphBLAS/Source/type/GB_type.h diff --git a/GraphBLAS/Source/GrB_Type_free.c b/GraphBLAS/Source/type/GrB_Type_free.c similarity index 100% rename from GraphBLAS/Source/GrB_Type_free.c rename to GraphBLAS/Source/type/GrB_Type_free.c diff --git a/GraphBLAS/Source/GrB_Type_new.c b/GraphBLAS/Source/type/GrB_Type_new.c similarity index 100% rename from GraphBLAS/Source/GrB_Type_new.c rename to GraphBLAS/Source/type/GrB_Type_new.c diff --git a/GraphBLAS/Source/GxB_Matrix_type.c b/GraphBLAS/Source/type/GxB_Matrix_type.c similarity index 100% rename from GraphBLAS/Source/GxB_Matrix_type.c rename to GraphBLAS/Source/type/GxB_Matrix_type.c diff --git a/GraphBLAS/Source/GxB_Matrix_type_name.c b/GraphBLAS/Source/type/GxB_Matrix_type_name.c similarity index 100% rename from GraphBLAS/Source/GxB_Matrix_type_name.c rename to GraphBLAS/Source/type/GxB_Matrix_type_name.c diff --git a/GraphBLAS/Source/GxB_Scalar_type.c b/GraphBLAS/Source/type/GxB_Scalar_type.c similarity index 100% rename from GraphBLAS/Source/GxB_Scalar_type.c rename to GraphBLAS/Source/type/GxB_Scalar_type.c diff --git a/GraphBLAS/Source/GxB_Scalar_type_name.c b/GraphBLAS/Source/type/GxB_Scalar_type_name.c similarity index 100% rename from GraphBLAS/Source/GxB_Scalar_type_name.c rename to GraphBLAS/Source/type/GxB_Scalar_type_name.c diff --git a/GraphBLAS/Source/GxB_Type_from_name.c b/GraphBLAS/Source/type/GxB_Type_from_name.c similarity index 100% rename from GraphBLAS/Source/GxB_Type_from_name.c rename to GraphBLAS/Source/type/GxB_Type_from_name.c diff --git a/GraphBLAS/Source/GxB_Type_name.c b/GraphBLAS/Source/type/GxB_Type_name.c similarity index 100% rename from GraphBLAS/Source/GxB_Type_name.c rename to GraphBLAS/Source/type/GxB_Type_name.c diff --git a/GraphBLAS/Source/GxB_Type_new.c b/GraphBLAS/Source/type/GxB_Type_new.c similarity index 99% rename from GraphBLAS/Source/GxB_Type_new.c rename to GraphBLAS/Source/type/GxB_Type_new.c index eeff523ad2..b4bfe342cf 100644 --- a/GraphBLAS/Source/GxB_Type_new.c +++ b/GraphBLAS/Source/type/GxB_Type_new.c @@ -34,7 +34,7 @@ // provided, then an error is returned (GrB_INVALID_VALUE). #include "GB.h" -#include "GB_stringify.h" +#include "jitifyer/GB_stringify.h" GrB_Info GxB_Type_new ( diff --git a/GraphBLAS/Source/GxB_Type_size.c b/GraphBLAS/Source/type/GxB_Type_size.c similarity index 100% rename from GraphBLAS/Source/GxB_Type_size.c rename to GraphBLAS/Source/type/GxB_Type_size.c diff --git a/GraphBLAS/Source/GxB_Vector_type.c b/GraphBLAS/Source/type/GxB_Vector_type.c similarity index 100% rename from GraphBLAS/Source/GxB_Vector_type.c rename to GraphBLAS/Source/type/GxB_Vector_type.c diff --git a/GraphBLAS/Source/GxB_Vector_type_name.c b/GraphBLAS/Source/type/GxB_Vector_type_name.c similarity index 100% rename from GraphBLAS/Source/GxB_Vector_type_name.c rename to GraphBLAS/Source/type/GxB_Vector_type_name.c diff --git a/GraphBLAS/Source/Template/GB_bytes.h b/GraphBLAS/Source/type/include/GB_bytes.h similarity index 100% rename from GraphBLAS/Source/Template/GB_bytes.h rename to GraphBLAS/Source/type/include/GB_bytes.h diff --git a/GraphBLAS/Source/Shared/GB_pun.h b/GraphBLAS/Source/type/include/GB_pun.h similarity index 98% rename from GraphBLAS/Source/Shared/GB_pun.h rename to GraphBLAS/Source/type/include/GB_pun.h index 31d2f59ae8..30c1d0e34c 100644 --- a/GraphBLAS/Source/Shared/GB_pun.h +++ b/GraphBLAS/Source/type/include/GB_pun.h @@ -15,8 +15,6 @@ #ifndef GB_PUN_H #define GB_PUN_H -#undef GB_PUN #define GB_PUN(type,value) (*((type *) (&(value)))) #endif - diff --git a/GraphBLAS/Source/GB_unop.h b/GraphBLAS/Source/unaryop/GB_unop.h similarity index 100% rename from GraphBLAS/Source/GB_unop.h rename to GraphBLAS/Source/unaryop/GB_unop.h diff --git a/GraphBLAS/Source/GB_unop_identity.c b/GraphBLAS/Source/unaryop/GB_unop_identity.c similarity index 97% rename from GraphBLAS/Source/GB_unop_identity.c rename to GraphBLAS/Source/unaryop/GB_unop_identity.c index a3c847c1de..525fc24831 100644 --- a/GraphBLAS/Source/GB_unop_identity.c +++ b/GraphBLAS/Source/unaryop/GB_unop_identity.c @@ -8,8 +8,8 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_unop.h" -#include "GB_unused.h" +#include "unaryop/GB_unop.h" +#include "include/GB_unused.h" GB_Operator GB_unop_identity // return IDENTITY operator, or NULL on error ( diff --git a/GraphBLAS/Source/GB_unop_new.c b/GraphBLAS/Source/unaryop/GB_unop_new.c similarity index 98% rename from GraphBLAS/Source/GB_unop_new.c rename to GraphBLAS/Source/unaryop/GB_unop_new.c index d4486fc9c5..596802f594 100644 --- a/GraphBLAS/Source/GB_unop_new.c +++ b/GraphBLAS/Source/unaryop/GB_unop_new.c @@ -14,7 +14,7 @@ // The unary op header is allocated by the caller, and passed in uninitialized. #include "GB.h" -#include "GB_unop.h" +#include "unaryop/GB_unop.h" GrB_Info GB_unop_new ( diff --git a/GraphBLAS/Source/GB_unop_one.c b/GraphBLAS/Source/unaryop/GB_unop_one.c similarity index 97% rename from GraphBLAS/Source/GB_unop_one.c rename to GraphBLAS/Source/unaryop/GB_unop_one.c index 9e307a6ab8..8c903c56f5 100644 --- a/GraphBLAS/Source/GB_unop_one.c +++ b/GraphBLAS/Source/unaryop/GB_unop_one.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB.h" -#include "GB_unop.h" +#include "unaryop/GB_unop.h" GrB_UnaryOp GB_unop_one (GB_Type_code xcode) { diff --git a/GraphBLAS/Source/GrB_UnaryOp_free.c b/GraphBLAS/Source/unaryop/GrB_UnaryOp_free.c similarity index 100% rename from GraphBLAS/Source/GrB_UnaryOp_free.c rename to GraphBLAS/Source/unaryop/GrB_UnaryOp_free.c diff --git a/GraphBLAS/Source/GrB_UnaryOp_new.c b/GraphBLAS/Source/unaryop/GrB_UnaryOp_new.c similarity index 100% rename from GraphBLAS/Source/GrB_UnaryOp_new.c rename to GraphBLAS/Source/unaryop/GrB_UnaryOp_new.c diff --git a/GraphBLAS/Source/GxB_UnaryOp_new.c b/GraphBLAS/Source/unaryop/GxB_UnaryOp_new.c similarity index 98% rename from GraphBLAS/Source/GxB_UnaryOp_new.c rename to GraphBLAS/Source/unaryop/GxB_UnaryOp_new.c index 8d49696c50..0a0a71d533 100644 --- a/GraphBLAS/Source/GxB_UnaryOp_new.c +++ b/GraphBLAS/Source/unaryop/GxB_UnaryOp_new.c @@ -12,8 +12,8 @@ // output arguments internally as needed. #include "GB.h" -#include "GB_unop.h" -#include "GB_stringify.h" +#include "unaryop/GB_unop.h" +#include "jitifyer/GB_stringify.h" GrB_Info GxB_UnaryOp_new // create a new user-defined unary operator ( diff --git a/GraphBLAS/Source/GxB_UnaryOp_xtype.c b/GraphBLAS/Source/unaryop/GxB_UnaryOp_xtype.c similarity index 100% rename from GraphBLAS/Source/GxB_UnaryOp_xtype.c rename to GraphBLAS/Source/unaryop/GxB_UnaryOp_xtype.c diff --git a/GraphBLAS/Source/GxB_UnaryOp_xtype_name.c b/GraphBLAS/Source/unaryop/GxB_UnaryOp_xtype_name.c similarity index 100% rename from GraphBLAS/Source/GxB_UnaryOp_xtype_name.c rename to GraphBLAS/Source/unaryop/GxB_UnaryOp_xtype_name.c diff --git a/GraphBLAS/Source/GxB_UnaryOp_ztype.c b/GraphBLAS/Source/unaryop/GxB_UnaryOp_ztype.c similarity index 100% rename from GraphBLAS/Source/GxB_UnaryOp_ztype.c rename to GraphBLAS/Source/unaryop/GxB_UnaryOp_ztype.c diff --git a/GraphBLAS/Source/GxB_UnaryOp_ztype_name.c b/GraphBLAS/Source/unaryop/GxB_UnaryOp_ztype_name.c similarity index 100% rename from GraphBLAS/Source/GxB_UnaryOp_ztype_name.c rename to GraphBLAS/Source/unaryop/GxB_UnaryOp_ztype_name.c diff --git a/GraphBLAS/Source/GrB_Vector_free.c b/GraphBLAS/Source/vector/GrB_Vector_free.c similarity index 100% rename from GraphBLAS/Source/GrB_Vector_free.c rename to GraphBLAS/Source/vector/GrB_Vector_free.c diff --git a/GraphBLAS/Source/GrB_Vector_new.c b/GraphBLAS/Source/vector/GrB_Vector_new.c similarity index 100% rename from GraphBLAS/Source/GrB_Vector_new.c rename to GraphBLAS/Source/vector/GrB_Vector_new.c diff --git a/GraphBLAS/Source/GrB_Vector_size.c b/GraphBLAS/Source/vector/GrB_Vector_size.c similarity index 100% rename from GraphBLAS/Source/GrB_Vector_size.c rename to GraphBLAS/Source/vector/GrB_Vector_size.c diff --git a/GraphBLAS/Source/GB_block.c b/GraphBLAS/Source/wait/GB_block.c similarity index 98% rename from GraphBLAS/Source/GB_block.c rename to GraphBLAS/Source/wait/GB_block.c index 53e38c4cb3..0169b18b81 100644 --- a/GraphBLAS/Source/GB_block.c +++ b/GraphBLAS/Source/wait/GB_block.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_Pending.h" +#include "pending/GB_Pending.h" #define GB_FREE_ALL ; diff --git a/GraphBLAS/Source/GB_jappend.h b/GraphBLAS/Source/wait/GB_jappend.h similarity index 100% rename from GraphBLAS/Source/GB_jappend.h rename to GraphBLAS/Source/wait/GB_jappend.h diff --git a/GraphBLAS/Source/GB_unjumble.c b/GraphBLAS/Source/wait/GB_unjumble.c similarity index 90% rename from GraphBLAS/Source/GB_unjumble.c rename to GraphBLAS/Source/wait/GB_unjumble.c index 13b8bd519e..0eb471ddc8 100644 --- a/GraphBLAS/Source/GB_unjumble.c +++ b/GraphBLAS/Source/wait/GB_unjumble.c @@ -7,7 +7,7 @@ //------------------------------------------------------------------------------ -#include "GB_sort.h" +#include "sort/GB_sort.h" GrB_Info GB_unjumble // unjumble a matrix ( @@ -72,7 +72,7 @@ GrB_Info GB_unjumble // unjumble a matrix // out of memory return (GrB_OUT_OF_MEMORY) ; } - GB_pslice (A_slice, Ap, anvec, ntasks, false) ; + GB_p_slice (A_slice, Ap, anvec, ntasks, false) ; //-------------------------------------------------------------------------- // sort the vectors @@ -83,7 +83,7 @@ GrB_Info GB_unjumble // unjumble a matrix case 0 : // iso matrices of any type; only sort the pattern #define GB_QSORT \ GB_qsort_1 (Ai+pA_start, aknz) ; - #include "GB_unjumbled_template.c" + #include "wait/factory/GB_unjumbled_template.c" break ; case GB_1BYTE : // bool, uint8, int8, and user defined types of size 1 @@ -91,7 +91,7 @@ GrB_Info GB_unjumble // unjumble a matrix uint8_t *Ax = (uint8_t *) A->x ; #define GB_QSORT \ GB_qsort_1b_size1 (Ai+pA_start, Ax+pA_start, aknz) ; - #include "GB_unjumbled_template.c" + #include "wait/factory/GB_unjumbled_template.c" } break ; @@ -100,7 +100,7 @@ GrB_Info GB_unjumble // unjumble a matrix uint16_t *Ax = (uint16_t *) A->x ; #define GB_QSORT \ GB_qsort_1b_size2 (Ai+pA_start, Ax+pA_start, aknz) ; - #include "GB_unjumbled_template.c" + #include "wait/factory/GB_unjumbled_template.c" } break ; @@ -109,7 +109,7 @@ GrB_Info GB_unjumble // unjumble a matrix uint32_t *Ax = (uint32_t *) A->x ; #define GB_QSORT \ GB_qsort_1b_size4 (Ai+pA_start, Ax+pA_start, aknz) ; - #include "GB_unjumbled_template.c" + #include "wait/factory/GB_unjumbled_template.c" } break ; @@ -118,7 +118,7 @@ GrB_Info GB_unjumble // unjumble a matrix uint64_t *Ax = (uint64_t *) A->x ; #define GB_QSORT \ GB_qsort_1b_size8 (Ai+pA_start, Ax+pA_start, aknz) ; - #include "GB_unjumbled_template.c" + #include "wait/factory/GB_unjumbled_template.c" } break ; @@ -127,7 +127,7 @@ GrB_Info GB_unjumble // unjumble a matrix GB_blob16 *Ax = (GB_blob16 *) A->x ; #define GB_QSORT \ GB_qsort_1b_size16 (Ai+pA_start, Ax+pA_start, aknz) ; - #include "GB_unjumbled_template.c" + #include "wait/factory/GB_unjumbled_template.c" } break ; @@ -136,7 +136,7 @@ GrB_Info GB_unjumble // unjumble a matrix GB_void *Ax = (GB_void *) A->x ; #define GB_QSORT \ GB_qsort_1b (Ai+pA_start, Ax+pA_start*asize, asize, aknz) ; - #include "GB_unjumbled_template.c" + #include "wait/factory/GB_unjumbled_template.c" } break ; } diff --git a/GraphBLAS/Source/GB_wait.c b/GraphBLAS/Source/wait/GB_wait.c similarity index 98% rename from GraphBLAS/Source/GB_wait.c rename to GraphBLAS/Source/wait/GB_wait.c index 65e831b86b..309153360e 100644 --- a/GraphBLAS/Source/GB_wait.c +++ b/GraphBLAS/Source/wait/GB_wait.c @@ -51,13 +51,13 @@ GB_phybix_free (A) ; \ } -#include "GB_select.h" -#include "GB_add.h" -#include "GB_binop.h" -#include "GB_Pending.h" -#include "GB_build.h" -#include "GB_jappend.h" -#include "GB_scalar_wrap.h" +#include "select/GB_select.h" +#include "ewise/GB_add.h" +#include "binaryop/GB_binop.h" +#include "pending/GB_Pending.h" +#include "builder/GB_build.h" +#include "wait/GB_jappend.h" +#include "scalar/GB_Scalar_wrap.h" GrB_Info GB_wait // finish all pending computations ( @@ -560,6 +560,13 @@ GrB_Info GB_wait // finish all pending computations GB_Matrix_free (&T) ; ASSERT_MATRIX_OK (S, "S after GB_wait:add", GB0) ; + if (A->no_hyper_hash) + { + // A does not want the hyper_hash, so free A->Y and S->Y if present + GB_hyper_hash_free (A) ; + GB_hyper_hash_free (S) ; + } + if (GB_IS_HYPERSPARSE (A) && GB_IS_HYPERSPARSE (S) && A->Y != NULL && !A->Y_shallow && !GB_is_shallow (A->Y)) { diff --git a/GraphBLAS/Source/GB_wait.h b/GraphBLAS/Source/wait/GB_wait.h similarity index 100% rename from GraphBLAS/Source/GB_wait.h rename to GraphBLAS/Source/wait/GB_wait.h diff --git a/GraphBLAS/Source/GrB_BinaryOp_wait.c b/GraphBLAS/Source/wait/GrB_BinaryOp_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_BinaryOp_wait.c rename to GraphBLAS/Source/wait/GrB_BinaryOp_wait.c diff --git a/GraphBLAS/Source/GrB_Descriptor_wait.c b/GraphBLAS/Source/wait/GrB_Descriptor_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_Descriptor_wait.c rename to GraphBLAS/Source/wait/GrB_Descriptor_wait.c diff --git a/GraphBLAS/Source/GrB_IndexUnaryOp_wait.c b/GraphBLAS/Source/wait/GrB_IndexUnaryOp_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_IndexUnaryOp_wait.c rename to GraphBLAS/Source/wait/GrB_IndexUnaryOp_wait.c diff --git a/GraphBLAS/Source/GrB_Matrix_wait.c b/GraphBLAS/Source/wait/GrB_Matrix_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_Matrix_wait.c rename to GraphBLAS/Source/wait/GrB_Matrix_wait.c diff --git a/GraphBLAS/Source/GrB_Monoid_wait.c b/GraphBLAS/Source/wait/GrB_Monoid_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_Monoid_wait.c rename to GraphBLAS/Source/wait/GrB_Monoid_wait.c diff --git a/GraphBLAS/Source/GrB_Scalar_wait.c b/GraphBLAS/Source/wait/GrB_Scalar_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_Scalar_wait.c rename to GraphBLAS/Source/wait/GrB_Scalar_wait.c diff --git a/GraphBLAS/Source/GrB_Semiring_wait.c b/GraphBLAS/Source/wait/GrB_Semiring_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_Semiring_wait.c rename to GraphBLAS/Source/wait/GrB_Semiring_wait.c diff --git a/GraphBLAS/Source/GrB_Type_wait.c b/GraphBLAS/Source/wait/GrB_Type_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_Type_wait.c rename to GraphBLAS/Source/wait/GrB_Type_wait.c diff --git a/GraphBLAS/Source/GrB_UnaryOp_wait.c b/GraphBLAS/Source/wait/GrB_UnaryOp_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_UnaryOp_wait.c rename to GraphBLAS/Source/wait/GrB_UnaryOp_wait.c diff --git a/GraphBLAS/Source/GrB_Vector_wait.c b/GraphBLAS/Source/wait/GrB_Vector_wait.c similarity index 100% rename from GraphBLAS/Source/GrB_Vector_wait.c rename to GraphBLAS/Source/wait/GrB_Vector_wait.c diff --git a/GraphBLAS/Source/GxB_Context_wait.c b/GraphBLAS/Source/wait/GxB_Context_wait.c similarity index 100% rename from GraphBLAS/Source/GxB_Context_wait.c rename to GraphBLAS/Source/wait/GxB_Context_wait.c diff --git a/GraphBLAS/Source/Factories/GB_unjumbled_template.c b/GraphBLAS/Source/wait/factory/GB_unjumbled_template.c similarity index 100% rename from GraphBLAS/Source/Factories/GB_unjumbled_template.c rename to GraphBLAS/Source/wait/factory/GB_unjumbled_template.c diff --git a/GraphBLAS/Source/Template/GB_wait_macros.h b/GraphBLAS/Source/wait/include/GB_wait_macros.h similarity index 100% rename from GraphBLAS/Source/Template/GB_wait_macros.h rename to GraphBLAS/Source/wait/include/GB_wait_macros.h diff --git a/GraphBLAS/Source/GB_status_code.c b/GraphBLAS/Source/werk/GB_status_code.c similarity index 100% rename from GraphBLAS/Source/GB_status_code.c rename to GraphBLAS/Source/werk/GB_status_code.c diff --git a/GraphBLAS/Source/GB_werk_pop.c b/GraphBLAS/Source/werk/GB_werk_pop.c similarity index 100% rename from GraphBLAS/Source/GB_werk_pop.c rename to GraphBLAS/Source/werk/GB_werk_pop.c diff --git a/GraphBLAS/Source/GB_werk_push.c b/GraphBLAS/Source/werk/GB_werk_push.c similarity index 100% rename from GraphBLAS/Source/GB_werk_push.c rename to GraphBLAS/Source/werk/GB_werk_push.c diff --git a/GraphBLAS/Source/GB_where.h b/GraphBLAS/Source/werk/GB_where.h similarity index 100% rename from GraphBLAS/Source/GB_where.h rename to GraphBLAS/Source/werk/GB_where.h diff --git a/GraphBLAS/Source/Template/GB_werk.h b/GraphBLAS/Source/werk/include/GB_werk.h similarity index 100% rename from GraphBLAS/Source/Template/GB_werk.h rename to GraphBLAS/Source/werk/include/GB_werk.h diff --git a/GraphBLAS/Source/GB_zstd.c b/GraphBLAS/Source/zstd_wrapper/GB_zstd.c similarity index 97% rename from GraphBLAS/Source/GB_zstd.c rename to GraphBLAS/Source/zstd_wrapper/GB_zstd.c index 6722ea4fff..50a3d56b7b 100644 --- a/GraphBLAS/Source/GB_zstd.c +++ b/GraphBLAS/Source/zstd_wrapper/GB_zstd.c @@ -13,8 +13,8 @@ // in place of malloc/calloc/free. #include "GB.h" -#include "GB_serialize.h" -#include "GB_zstd.h" +#include "serialize/GB_serialize.h" +#include "zstd_wrapper/GB_zstd.h" void *ZSTD_malloc (size_t s) { diff --git a/GraphBLAS/Source/GB_zstd.h b/GraphBLAS/Source/zstd_wrapper/GB_zstd.h similarity index 100% rename from GraphBLAS/Source/GB_zstd.h rename to GraphBLAS/Source/zstd_wrapper/GB_zstd.h diff --git a/GraphBLAS/Tcov/Makefile b/GraphBLAS/Tcov/Makefile index 30a68a9807..a80836c7e1 100644 --- a/GraphBLAS/Tcov/Makefile +++ b/GraphBLAS/Tcov/Makefile @@ -30,7 +30,7 @@ INC = tmp_include/* SRC2 = $(notdir $(wildcard $(SRC))) OBJ = $(SRC2:.c=.o) LIBS = -I = -Itmp_include -I../Test -I../rmm_wrap -I../zstd -I../zstd/zstd_subset -I../lz4 -I../xxHash -I../Source/JitKernels +I = -Itmp_include -I../Test -I../rmm_wrap -I../zstd -I../zstd/zstd_subset -I../lz4 -I../xxHash CPPFLAGS = $(I) -DGBNCPUFEAT -DGBCOVER $(MATLAB) SO_OPTS = $(LDFLAGS) @@ -41,7 +41,7 @@ ifeq ($(UNAME),Darwin) else # Linux SO_NAME = libgraphblas_tcov.so - SO_OPTS += -shared -Wl,-soname -Wl,$(SO_NAME) -Wl,--no-undefined + SO_OPTS += -shared -Wl,-soname -Wl,$(SO_NAME) -Wl,--no-undefined -Wl,-rpath=. endif default: $(SO_NAME) diff --git a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2.c b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2.c index a166d9ec22..e4dfe1eaea 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2.c +++ b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2.c @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v8.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any // user-defined types and operators defined below. //------------------------------------------------------------------------------ -#include "GB_jit_kernel.h" +#include "include/GB_jit_kernel.h" // semiring: (plus, my_rdiv2, double) @@ -22,6 +22,7 @@ #define GB_IDENTITY_BYTE 0x00 #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) #define GB_Z_IGNORE_OVERFLOW 1 +#define GB_Z_SIZE 8 #define GB_Z_NBITS 64 #define GB_Z_ATOMIC_BITS 64 #define GB_Z_HAS_ATOMIC_UPDATE 1 @@ -31,6 +32,8 @@ #define GB_Z_CUDA_ATOMIC_TYPE double // multiplicative operator: +#define GB_X_TYPE double +#define GB_Y_TYPE float #ifndef GB_GUARD_my_rdiv2_DEFINED #define GB_GUARD_my_rdiv2_DEFINED GB_STATIC_INLINE @@ -113,17 +116,17 @@ void my_rdiv2 (double *z, const double *x, const float *y) #define GB_DECLAREB(b) float b #define GB_GETB(b,Bx,p,iso) b = Bx [p] -#include "GB_mxm_shared_definitions.h" +#include "include/GB_mxm_shared_definitions.h" #ifndef GB_JIT_RUNTIME #define GB_jit_kernel GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2 #define GB_jit_query GB_jit__AxB_dot2__2c1f000bba0bbac7__plus_my_rdiv2_query #endif -#include "GB_jit_kernel_AxB_dot2.c" +#include "template/GB_jit_kernel_AxB_dot2.c" GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { (*hash) = 0xa7db05133c25c170 ; - v [0] = 8 ; v [1] = 0 ; v [2] = 0 ; // intentionally stale version + v [0] = 9 ; v [1] = 2 ; v [2] = 9 ; // intentionally stale version defn [0] = NULL ; defn [1] = GB_my_rdiv2_USER_DEFN ; defn [2] = NULL ; diff --git a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c index 0ccddc9deb..9c9c16c29e 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c +++ b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any // user-defined types and operators defined below. //------------------------------------------------------------------------------ -#include "GB_jit_kernel.h" +#include "include/GB_jit_kernel.h" // semiring: (plus, my_rdiv2, double) @@ -22,6 +22,7 @@ #define GB_IDENTITY_BYTE 0x00 #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) #define GB_Z_IGNORE_OVERFLOW 1 +#define GB_Z_SIZE 8 #define GB_Z_NBITS 64 #define GB_Z_ATOMIC_BITS 64 #define GB_Z_HAS_ATOMIC_UPDATE 1 @@ -31,6 +32,8 @@ #define GB_Z_CUDA_ATOMIC_TYPE double // multiplicative operator: +#define GB_X_TYPE double +#define GB_Y_TYPE float #ifndef GB_GUARD_my_rdiv2_DEFINED #define GB_GUARD_my_rdiv2_DEFINED GB_STATIC_INLINE @@ -113,12 +116,12 @@ void my_rdiv2 (double *z, const double *x, const float *y) #define GB_DECLAREB(b) float b #define GB_GETB(b,Bx,p,iso) b = Bx [p] -#include "GB_mxm_shared_definitions.h" +#include "include/GB_mxm_shared_definitions.h" #ifndef GB_JIT_RUNTIME #define GB_jit_kernel GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2 #define GB_jit_query GB_jit__AxB_dot2__2c1f000bba0bbacf__plus_my_rdiv2_query #endif -#include "GB_jit_kernel_AxB_dot2.c" +#include "template/GB_jit_kernel_AxB_dot2.c" GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { diff --git a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c index 7d30d88d5d..c00db893eb 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c +++ b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any // user-defined types and operators defined below. //------------------------------------------------------------------------------ -#include "GB_jit_kernel.h" +#include "include/GB_jit_kernel.h" // semiring: (plus, my_rdiv, double) @@ -22,6 +22,7 @@ #define GB_IDENTITY_BYTE 0x00 #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) #define GB_Z_IGNORE_OVERFLOW 1 +#define GB_Z_SIZE 8 #define GB_Z_NBITS 64 #define GB_Z_ATOMIC_BITS 64 #define GB_Z_HAS_ATOMIC_UPDATE 1 @@ -31,16 +32,22 @@ #define GB_Z_CUDA_ATOMIC_TYPE double // multiplicative operator: +#define GB_X_TYPE double +#define GB_Y_TYPE double #ifndef GB_GUARD_my_rdiv_DEFINED #define GB_GUARD_my_rdiv_DEFINED GB_STATIC_INLINE void my_rdiv (double *z, const double *x, const double *y) { + // escape this quote: " + /* escape this backslash \ */ (*z) = (*y) / (*x) ; } #define GB_my_rdiv_USER_DEFN \ "void my_rdiv (double *z, const double *x, const double *y)\n" \ "{\n" \ +" // escape this quote: \"\n" \ +" /* escape this backslash \\ */\n" \ " (*z) = (*y) / (*x) ;\n" \ "}" #endif @@ -113,12 +120,12 @@ void my_rdiv (double *z, const double *x, const double *y) #define GB_DECLAREB(b) double b #define GB_GETB(b,Bx,p,iso) b = Bx [p] -#include "GB_mxm_shared_definitions.h" +#include "include/GB_mxm_shared_definitions.h" #ifndef GB_JIT_RUNTIME #define GB_jit_kernel GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv #define GB_jit_query GB_jit__AxB_dot2__2c1f000bbb0bbbcd__plus_my_rdiv_query #endif -#include "GB_jit_kernel_AxB_dot2.c" +#include "template/GB_jit_kernel_AxB_dot2.c" GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { diff --git a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c index 72155b27e9..f03547ff17 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c +++ b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f046bbb0bbbcd.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any // user-defined types and operators defined below. //------------------------------------------------------------------------------ -#include "GB_jit_kernel.h" +#include "include/GB_jit_kernel.h" // semiring: (plus, rdiv, double) @@ -22,6 +22,7 @@ #define GB_IDENTITY_BYTE 0x00 #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) #define GB_Z_IGNORE_OVERFLOW 1 +#define GB_Z_SIZE 8 #define GB_Z_NBITS 64 #define GB_Z_ATOMIC_BITS 64 #define GB_Z_HAS_ATOMIC_UPDATE 1 @@ -31,6 +32,8 @@ #define GB_Z_CUDA_ATOMIC_TYPE double // multiplicative operator: +#define GB_X_TYPE double +#define GB_Y_TYPE double #define GB_MULT(z,x,y,i,k,j) z = (y) / (x) // multiply-add operator: @@ -95,12 +98,12 @@ #define GB_DECLAREB(b) double b #define GB_GETB(b,Bx,p,iso) b = Bx [p] -#include "GB_mxm_shared_definitions.h" +#include "include/GB_mxm_shared_definitions.h" #ifndef GB_JIT_RUNTIME #define GB_jit_kernel GB_jit__AxB_dot2__2c1f046bbb0bbbcd #define GB_jit_query GB_jit__AxB_dot2__2c1f046bbb0bbbcd_query #endif -#include "GB_jit_kernel_AxB_dot2.c" +#include "template/GB_jit_kernel_AxB_dot2.c" GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { diff --git a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c index a93931aef2..becabba60b 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c +++ b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any // user-defined types and operators defined below. //------------------------------------------------------------------------------ -#include "GB_jit_kernel.h" +#include "include/GB_jit_kernel.h" // semiring: (plus, my_rdiv2 (flipped), double) @@ -22,6 +22,7 @@ #define GB_IDENTITY_BYTE 0x00 #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) #define GB_Z_IGNORE_OVERFLOW 1 +#define GB_Z_SIZE 8 #define GB_Z_NBITS 64 #define GB_Z_ATOMIC_BITS 64 #define GB_Z_HAS_ATOMIC_UPDATE 1 @@ -31,6 +32,8 @@ #define GB_Z_CUDA_ATOMIC_TYPE double // multiplicative operator (flipped): +#define GB_X_TYPE double +#define GB_Y_TYPE float #ifndef GB_GUARD_my_rdiv2_DEFINED #define GB_GUARD_my_rdiv2_DEFINED GB_STATIC_INLINE @@ -113,12 +116,12 @@ void my_rdiv2 (double *z, const double *x, const float *y) #define GB_DECLAREB(b) double b #define GB_GETB(b,Bx,p,iso) b = (double) (Bx [p]) -#include "GB_mxm_shared_definitions.h" +#include "include/GB_mxm_shared_definitions.h" #ifndef GB_JIT_RUNTIME #define GB_jit_kernel GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2 #define GB_jit_query GB_jit__AxB_dot2__2c1f100bba0baacf__plus_my_rdiv2_query #endif -#include "GB_jit_kernel_AxB_dot2.c" +#include "template/GB_jit_kernel_AxB_dot2.c" GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { diff --git a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c index 19f7db91ca..6d42a27a85 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c +++ b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any // user-defined types and operators defined below. //------------------------------------------------------------------------------ -#include "GB_jit_kernel.h" +#include "include/GB_jit_kernel.h" // semiring: (plus, my_rdiv2 (flipped), double) @@ -22,6 +22,7 @@ #define GB_IDENTITY_BYTE 0x00 #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) #define GB_Z_IGNORE_OVERFLOW 1 +#define GB_Z_SIZE 8 #define GB_Z_NBITS 64 #define GB_Z_ATOMIC_BITS 64 #define GB_Z_HAS_ATOMIC_UPDATE 1 @@ -31,6 +32,8 @@ #define GB_Z_CUDA_ATOMIC_TYPE double // multiplicative operator (flipped): +#define GB_X_TYPE double +#define GB_Y_TYPE float #ifndef GB_GUARD_my_rdiv2_DEFINED #define GB_GUARD_my_rdiv2_DEFINED GB_STATIC_INLINE @@ -113,12 +116,12 @@ void my_rdiv2 (double *z, const double *x, const float *y) #define GB_DECLAREB(b) double b #define GB_GETB(b,Bx,p,iso) b = Bx [p] -#include "GB_mxm_shared_definitions.h" +#include "include/GB_mxm_shared_definitions.h" #ifndef GB_JIT_RUNTIME #define GB_jit_kernel GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2 #define GB_jit_query GB_jit__AxB_dot2__2c1f100bba0babcd__plus_my_rdiv2_query #endif -#include "GB_jit_kernel_AxB_dot2.c" +#include "template/GB_jit_kernel_AxB_dot2.c" GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { diff --git a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c index 8295437c66..47348a9860 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c +++ b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any // user-defined types and operators defined below. //------------------------------------------------------------------------------ -#include "GB_jit_kernel.h" +#include "include/GB_jit_kernel.h" // semiring: (plus, my_rdiv2 (flipped), double) @@ -22,6 +22,7 @@ #define GB_IDENTITY_BYTE 0x00 #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) #define GB_Z_IGNORE_OVERFLOW 1 +#define GB_Z_SIZE 8 #define GB_Z_NBITS 64 #define GB_Z_ATOMIC_BITS 64 #define GB_Z_HAS_ATOMIC_UPDATE 1 @@ -31,6 +32,8 @@ #define GB_Z_CUDA_ATOMIC_TYPE double // multiplicative operator (flipped): +#define GB_X_TYPE double +#define GB_Y_TYPE float #ifndef GB_GUARD_my_rdiv2_DEFINED #define GB_GUARD_my_rdiv2_DEFINED GB_STATIC_INLINE @@ -113,12 +116,12 @@ void my_rdiv2 (double *z, const double *x, const float *y) #define GB_DECLAREB(b) double b #define GB_GETB(b,Bx,p,iso) b = Bx [p] -#include "GB_mxm_shared_definitions.h" +#include "include/GB_mxm_shared_definitions.h" #ifndef GB_JIT_RUNTIME #define GB_jit_kernel GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2 #define GB_jit_query GB_jit__AxB_dot2__2c1f100bba0babcf__plus_my_rdiv2_query #endif -#include "GB_jit_kernel_AxB_dot2.c" +#include "template/GB_jit_kernel_AxB_dot2.c" GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { diff --git a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c index 8dcbd183b3..dbb1898b2e 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c +++ b/GraphBLAS/Tcov/PreJIT/GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any // user-defined types and operators defined below. //------------------------------------------------------------------------------ -#include "GB_jit_kernel.h" +#include "include/GB_jit_kernel.h" // semiring: (plus, my_rdiv2 (flipped), double) @@ -22,6 +22,7 @@ #define GB_IDENTITY_BYTE 0x00 #define GB_PRAGMA_SIMD_REDUCTION_MONOID(z) GB_PRAGMA_SIMD_REDUCTION (+,z) #define GB_Z_IGNORE_OVERFLOW 1 +#define GB_Z_SIZE 8 #define GB_Z_NBITS 64 #define GB_Z_ATOMIC_BITS 64 #define GB_Z_HAS_ATOMIC_UPDATE 1 @@ -31,6 +32,8 @@ #define GB_Z_CUDA_ATOMIC_TYPE double // multiplicative operator (flipped): +#define GB_X_TYPE double +#define GB_Y_TYPE float #ifndef GB_GUARD_my_rdiv2_DEFINED #define GB_GUARD_my_rdiv2_DEFINED GB_STATIC_INLINE @@ -113,12 +116,12 @@ void my_rdiv2 (double *z, const double *x, const float *y) #define GB_DECLAREB(b) double b #define GB_GETB(b,Bx,p,iso) b = (double) (Bx [p]) -#include "GB_mxm_shared_definitions.h" +#include "include/GB_mxm_shared_definitions.h" #ifndef GB_JIT_RUNTIME #define GB_jit_kernel GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2 #define GB_jit_query GB_jit__AxB_dot2__2c1f100bba0bbac7__plus_my_rdiv2_query #endif -#include "GB_jit_kernel_AxB_dot2.c" +#include "template/GB_jit_kernel_AxB_dot2.c" GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { diff --git a/GraphBLAS/Tcov/PreJIT/GB_jit__user_op__0__my_rdiv.c b/GraphBLAS/Tcov/PreJIT/GB_jit__user_op__0__my_rdiv.c index ababd0a961..62358b2c49 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_jit__user_op__0__my_rdiv.c +++ b/GraphBLAS/Tcov/PreJIT/GB_jit__user_op__0__my_rdiv.c @@ -1,14 +1,14 @@ //------------------------------------------------------------------------------ // GB_jit__user_op__0__my_rdiv.c //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS v9.0.0, Timothy A. Davis, (c) 2017-2023, +// SuiteSparse:GraphBLAS v9.3.0, Timothy A. Davis, (c) 2017-2024, // All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 // The above copyright and license do not apply to any // user-defined types and operators defined below. //------------------------------------------------------------------------------ -#include "GB_jit_kernel.h" +#include "include/GB_jit_kernel.h" #define GB_USER_OP_FUNCTION my_rdiv void my_rdiv (double *z, const double *x, const double *y) @@ -18,6 +18,7 @@ void my_rdiv (double *z, const double *x, const double *y) { // escape this quote: " /* escape this backslash \ */ + /* modified for GrB 9.3.0 */ (*z) = (*y) / (*x) ; } #define GB_my_rdiv_USER_DEFN \ @@ -25,6 +26,7 @@ void my_rdiv (double *z, const double *x, const double *y) "{\n" \ " // escape this quote: \"\n" \ " /* escape this backslash \\ */\n" \ +" /* modified for GrB 9.3.0 */\n" \ " (*z) = (*y) / (*x) ;\n" \ "}" #define GB_USER_OP_DEFN GB_my_rdiv_USER_DEFN @@ -32,7 +34,7 @@ void my_rdiv (double *z, const double *x, const double *y) #define GB_jit_kernel GB_jit__user_op__0__my_rdiv #define GB_jit_query GB_jit__user_op__0__my_rdiv_query #endif -#include "GB_jit_kernel_user_op.c" +#include "template/GB_jit_kernel_user_op.c" GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) ; GB_JIT_GLOBAL GB_JIT_QUERY_PROTO (GB_jit_query) { diff --git a/GraphBLAS/Tcov/PreJIT/GB_prejit.c b/GraphBLAS/Tcov/PreJIT/GB_prejit.c index 0341d74fa2..6fedc28188 100644 --- a/GraphBLAS/Tcov/PreJIT/GB_prejit.c +++ b/GraphBLAS/Tcov/PreJIT/GB_prejit.c @@ -2,7 +2,7 @@ // GraphBLAS/Config/GB_prejit.c: return list of PreJIT kernels //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -11,8 +11,8 @@ // indexed the following 9 kernels in GraphBLAS/PreJIT: #include "GB.h" -#include "GB_jit_kernel_proto.h" -#include "GB_jitifyer.h" +#include "jitifyer/GB_jitifyer.h" +#include "jit_kernels/include/GB_jit_kernel_proto.h" //------------------------------------------------------------------------------ // prototypes for all PreJIT kernels diff --git a/GraphBLAS/Tcov/PreJIT/README.txt b/GraphBLAS/Tcov/PreJIT/README.txt index b4011d4d45..16adf1fadb 100644 --- a/GraphBLAS/Tcov/PreJIT/README.txt +++ b/GraphBLAS/Tcov/PreJIT/README.txt @@ -23,7 +23,12 @@ This file will contain an index of the kernels listed above: GB_prejit.c -If GraphBLAS is modified, test145 should be run again to create these -JIT kernels, and then copy them here. Then modify GB_mex_rdiv.c to -trigger the stale PreJIT kernel case. +If GraphBLAS is modified, test145 should be run again to create these JIT +kernels, using the Test/test145.m script. Next, copy the above files into +GraphBLAS/Tcov/GB_prejit.c. Also copy them into GraphBLAS/PreJIT and rerun +'make' for the main GraphBLAS library, and then copy Config/GB_prejit.c here. + +Finally, modify GB_mex_rdiv.c to trigger the stale PreJIT kernel case, by +changing the string MY_RDIV. After modifying it, rerun test145 and copy the +final GB_jit__user_op__0__my_rdiv.c here. diff --git a/GraphBLAS/Tcov/grbcover.m b/GraphBLAS/Tcov/grbcover.m index 5438273d15..04c5019623 100644 --- a/GraphBLAS/Tcov/grbcover.m +++ b/GraphBLAS/Tcov/grbcover.m @@ -42,7 +42,9 @@ function grbcover (what) % list of include directories inc = '-Itmp_include -I../Test -I../Test/Template -I../lz4 -I../rmm_wrap' ; inc = [inc ' -I../zstd -I../zstd/zstd_subset -I. -I../xxHash'] ; -inc = [inc ' -I../Source/JitKernels '] ; +% inc = [inc ' -I../Source/jit_kernels '] ; +inc = [inc ' -I../Source/builtin '] ; +inc = [inc ' -I../Source '] ; have_octave = (exist ('OCTAVE_VERSION', 'builtin') == 5) ; if (have_octave) @@ -84,16 +86,24 @@ function grbcover (what) libraries = sprintf ('-L%s -lgraphblas_tcov', pwd) ; +rpath = '' ; if (ismac) - % Mac (do 'make install' for GraphBLAS first) -% flags = [ flags ' CFLAGS="$CXXFLAGS -Xpreprocessor -fopenmp" ' ] ; -% flags = [ flags ' CXXFLAGS="$CXXFLAGS -Xpreprocessor -fopenmp" ' ] ; -% flags = [ flags ' LDFLAGS="$LDFLAGS -fopenmp"' ] ; -else + rpath = '-rpath ' ; +elseif (isunix) + rpath = '-rpath=' ; +end + +rpath = sprintf (' -Wl,%s''''%s'''' ', rpath, pwd) ; +if (ismac) + % Mac + flags = [ flags ' CFLAGS="$CXXFLAGS -fPIC -Wno-pragmas" '] ; + flags = [ flags ' CXXFLAGS="$CXXFLAGS -fPIC -Wno-pragmas" '] ; + flags = [ flags ' LDFLAGS=''$LDFLAGS -fPIC ' rpath ' '' '] ; +elseif (isunix) % Linux flags = [ flags ' CFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; flags = [ flags ' CXXFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; - flags = [ flags ' LDFLAGS="$LDFLAGS -fopenmp -fPIC" '] ; + flags = [ flags ' LDFLAGS=''$LDFLAGS -fopenmp -fPIC ' rpath ' '' '] ; end dryrun = false ; @@ -175,6 +185,7 @@ function grbcover (what) flags, inc, mexfunction, objlist, libraries) ; fprintf ('.', mexfunction) ; % fprintf ('%s\n', mexfunction) ; + % fprintf ('%s\n', mexcmd) ; if (dryrun) fprintf ('%s\n', mexcmd) ; else diff --git a/GraphBLAS/Tcov/grbcover_edit.m b/GraphBLAS/Tcov/grbcover_edit.m index 0f146b9cd8..621a89515d 100644 --- a/GraphBLAS/Tcov/grbcover_edit.m +++ b/GraphBLAS/Tcov/grbcover_edit.m @@ -67,6 +67,22 @@ % empty line: as-is fprintf (f_output, '\n') ; + elseif (contains (cline, '#include "')) + + if (contains (cline, '/GB_')) + % convert '#include "mxm/template/GB_AxB_whatever.h' + % to just '#include "GB_AxB_whatever.h' + quote = strfind (cline, '"') ; + quote = quote (1) ; + gb = strfind (cline, '/GB_') ; + gb = gb (1) ; + fprintf (f_output, '%s%s\n', ... + cline (1:quote), cline (gb+1:end)) ; + else + % no change to this line + fprintf (f_output, '%s\n', cline) ; + end + elseif (len > 1 && all (cline (1:len-2) == ' ') ... && (cline (len-1) == '{') && (cline (len) == ' ')) diff --git a/GraphBLAS/Tcov/grbmake.m b/GraphBLAS/Tcov/grbmake.m index f268f52b43..937687c8ce 100644 --- a/GraphBLAS/Tcov/grbmake.m +++ b/GraphBLAS/Tcov/grbmake.m @@ -19,27 +19,32 @@ copyfile ('GB_coverage.c', 'tmp_source/GB_coverage.c') ; % create the include files and place in tmp_include -hfiles = [ dir('../Include/*') ; ... - dir('../Source/*.h') ; ... - dir('../GraphBLAS/Config/*.h') ; ... - dir('../Source/Template') ; ... - dir('../Source/Factories') ; ... - dir('../Source/Shared') ; ... - dir('../JITpackage/*.h') ; ... - dir('../Source/FactoryKernels/*.h') ; ] ; +hfiles = [ ... + dir('../Include/GraphBLAS.h') ; ... + dir('../Source/*.h') ; ... + dir('../GraphBLAS/Config/*.h') ; ... + dir('../Source/include') ; ... + dir('../Source/*/*.h') ; ... + dir('../Source/*/include') ; ... + dir('../Source/*/template') ; ... + dir('../Source/*/factory') ; ... + dir('../JITpackage/*.h') ; ... + dir('../FactoryKernels/*.h') ; ] ; + count = grbcover_edit (hfiles, 0, 'tmp_include') ; fprintf ('hfile count: %d\n', count) ; % create the C files and place in tmp_source -cfiles = [ dir('../Source/*.c') ; ... - dir('../Source/FactoryKernels/*.c') ; ... - % use Tcov/PreJIT kernels ... - dir('PreJIT/*.c') ; ... - % not the PreJIT kernels in the primary source - % dir('../PreJIT/*.c') ; ... - % dir('../Config/GB_prejit.c') ; ... - dir('../JITpackage/*.c') - ] ; +cfiles = [ dir('../Source/*/*.c') ; ... + dir('../FactoryKernels/*.c') ; ... + % use Tcov/PreJIT kernels ... + dir('PreJIT/*.c') ; ... + % not the PreJIT kernels in the primary source: + % dir('../PreJIT/*.c') ; ... + % dir('../Config/GB_prejit.c') ; ... + dir('../JITpackage/*.c') + ] ; + count = grbcover_edit (cfiles, count, 'tmp_source') ; fprintf ('cfile count: %d\n', count) ; @@ -48,7 +53,7 @@ fprintf (fp, '%d\n', count) ; fclose (fp) ; -% revise this to match Source/Template/GB_coverage.h +% revise this to match Source/include/GB_coverage.h GBCOVER_MAX = 31000 ; assert (count < GBCOVER_MAX) ; diff --git a/GraphBLAS/Tcov/grbshow.m b/GraphBLAS/Tcov/grbshow.m index d312cd719e..44e28f1ecf 100644 --- a/GraphBLAS/Tcov/grbshow.m +++ b/GraphBLAS/Tcov/grbshow.m @@ -38,7 +38,9 @@ ~isempty (strfind (cline, '++'))) % got one; get the count k1 = strfind (cline, '[') ; + k1 = k1 (1) ; k2 = strfind (cline, ']') ; + k2 = k2 (1) ; s = cline (k1+1:k2-1) ; i = str2num (s) + 1 ; c = GraphBLAS_grbcov (i) ; diff --git a/GraphBLAS/Tcov/log_Aug2.txt b/GraphBLAS/Tcov/log_Aug2.txt new file mode 100644 index 0000000000..be9dddc6c2 --- /dev/null +++ b/GraphBLAS/Tcov/log_Aug2.txt @@ -0,0 +1,207 @@ + +---------------------------------------------- [malloc] [cover] +02-Aug 05:35:52 test281 0.1 sec 88: 24859 of 25110 1.0% 672.39/s +02-Aug 05:35:52 test201 0.3 sec 113: 24746 of 25110 1.4% 451.33/s +02-Aug 05:36:01 test169 8.7 sec 483: 24261 of 25110 3.4% 55.80/s +02-Aug 05:36:02 test250 1.4 sec 289: 23972 of 25110 4.5% 204.72/s +02-Aug 05:36:05 test250 2.1 sec 56: 23916 of 25110 4.8% 26.91/s +02-Aug 05:36:05 test279 0.1 sec 118: 23798 of 25110 5.2% 1685.06/s +02-Aug 05:36:05 test278 0.1 sec 48: 23750 of 25110 5.4% 834.23/s +02-Aug 05:36:05 test277 0.1 sec 38: 23712 of 25110 5.6% 601.28/s +02-Aug 05:36:05 test276 0.1 sec 1626: 22086 of 25110 12.0% 27547.18/s +02-Aug 05:36:05 test275 0.1 sec 117: 21969 of 25110 12.5% 2108.53/s +02-Aug 05:36:05 test274 0.1 sec 129: 21840 of 25110 13.0% 2355.13/s +02-Aug 05:36:05 test273 0.2 sec 113: 21727 of 25110 13.5% 728.81/s +02-Aug 05:36:05 test272 0.1 sec 8: 21719 of 25110 13.5% 146.19/s +02-Aug 05:36:06 test271 0.1 sec 497: 21222 of 25110 15.5% 8926.81/s +02-Aug 05:36:06 test270 0.1 sec 286: 20936 of 25110 16.6% 5252.04/s +02-Aug 05:36:06 test269 0.1 sec 83: 20853 of 25110 17.0% 1487.08/s +02-Aug 05:36:06 test268 0.0 sec 3: 20850 of 25110 17.0% 108.37/s +02-Aug 05:36:08 test145 2.1 sec 197: 20653 of 25110 17.7% 94.46/s +02-Aug 05:36:08 test145 0.0 sec 1: 20652 of 25110 17.8% 25.51/s +02-Aug 05:36:08 test145 0.0 sec 18: 20634 of 25110 17.8% 963.13/s +02-Aug 05:36:08 test145 0.0 sec 4: 20630 of 25110 17.8% 245.90/s +02-Aug 05:36:10 test145 1.6 sec 34: 20596 of 25110 18.0% 21.91/s +02-Aug 05:36:10 test145 0.0 sec 3: 20593 of 25110 18.0% 168.62/s +02-Aug 05:36:11 test240 1.1 sec 70: 20520 of 25110 18.3% 62.95/s +02-Aug 05:36:12 test240 0.3 sec 1: 20519 of 25110 18.3% 3.54/s +02-Aug 05:36:13 test237 1.0 sec 38: 20481 of 25110 18.4% 38.53/s +02-Aug 05:36:15 test237 2.5 sec 2: 20479 of 25110 18.4% 0.81/s +02-Aug 05:36:15 test237 0.1 sec 17: 20462 of 25110 18.5% 333.12/s +02-Aug 05:36:15 test237 0.0 sec 6: 20456 of 25110 18.5% 173.39/s +02-Aug 05:36:15 test237 0.0 sec 4: 20452 of 25110 18.6% 111.27/s +02-Aug 05:36:16 test267 0.7 sec 8: 20444 of 25110 18.6% 11.97/s +02-Aug 05:36:16 test267 0.0 sec 1: 20443 of 25110 18.6% 2044.99/s +02-Aug 05:36:17 test265 0.5 sec 34: 20409 of 25110 18.7% 68.44/s +02-Aug 05:36:17 test264 0.1 sec 173: 20236 of 25110 19.4% 2994.48/s +02-Aug 05:36:18 test263 0.8 sec 13: 20223 of 25110 19.5% 16.26/s +02-Aug 05:36:18 test262 0.1 sec 22: 20201 of 25110 19.5% 382.61/s +02-Aug 05:36:18 test261 0.1 sec 22: 20179 of 25110 19.6% 405.69/s +02-Aug 05:36:18 test260 0.1 sec 3: 20176 of 25110 19.6% 55.93/s +02-Aug 05:36:21 test259 2.4 sec 4: 20172 of 25110 19.7% 1.67/s +02-Aug 05:36:21 test258 0.3 sec 14: 20158 of 25110 19.7% 43.70/s +02-Aug 05:36:22 test257 0.3 sec 41: 20117 of 25110 19.9% 157.70/s +02-Aug 05:36:22 test255 0.1 sec 8: 20109 of 25110 19.9% 145.90/s +02-Aug 05:36:23 test254 0.8 sec 14: 20095 of 25110 20.0% 17.10/s +02-Aug 05:36:27 test254 4.1 sec 20: 20075 of 25110 20.1% 4.82/s +02-Aug 05:36:27 test254 0.1 sec 1: 20074 of 25110 20.1% 18.37/s +02-Aug 05:36:28 test253 0.1 sec 9: 20065 of 25110 20.1% 62.67/s +02-Aug 05:36:28 test252 0.1 sec 7: 20058 of 25110 20.1% 131.26/s +02-Aug 05:37:37 test280 69.0 sec 139: 19919 of 25110 20.7% 2.01/s +02-Aug 05:39:26 test251 109.4 sec 437: 19482 of 25110 22.4% 3.99/s +02-Aug 05:42:29 test251 182.0 sec 60: 19422 of 25110 22.7% 0.33/s +02-Aug 05:42:30 test249 1.3 sec 24: 19398 of 25110 22.7% 18.96/s +02-Aug 05:42:30 test247 0.0 sec 22: 19376 of 25110 22.8% 1444.90/s +02-Aug 05:42:41 test246 10.7 sec 66: 19310 of 25110 23.1% 6.16/s +02-Aug 05:43:00 test01 19.0 sec 1292: 18018 of 25110 28.2% 67.90/s +02-Aug 05:43:01 test245 1.0 sec 34: 17984 of 25110 28.4% 33.68/s +02-Aug 05:43:02 test245 0.0 sec 8: 17976 of 25110 28.4% 437.59/s +02-Aug 05:43:02 test199 0.0 sec 1: 17975 of 25110 28.4% 238.21/s +02-Aug 05:43:02 test83 0.1 sec 10: 17965 of 25110 28.5% 172.36/s +02-Aug 05:43:02 test210 0.0 sec 7: 17958 of 25110 28.5% 2886.60/s +02-Aug 05:43:02 test165 0.0 sec 1: 17957 of 25110 28.5% 241.14/s +02-Aug 05:43:02 test219 0.0 sec 7: 17950 of 25110 28.5% 2594.51/s +02-Aug 05:43:03 test219 0.3 sec 3: 17947 of 25110 28.5% 10.50/s +02-Aug 05:43:03 test241 0.1 sec 8: 17939 of 25110 28.6% 78.49/s +02-Aug 05:43:03 test220 0.1 sec 10: 17929 of 25110 28.6% 108.18/s +02-Aug 05:43:04 test211 0.0 sec 15: 17914 of 25110 28.7% 492.92/s +02-Aug 05:43:04 test202 0.1 sec 45: 17869 of 25110 28.8% 449.23/s +02-Aug 05:43:04 test202 0.0 sec 1: 17868 of 25110 28.8% 32.13/s +02-Aug 05:43:08 test152 3.4 sec 825: 17043 of 25110 32.1% 241.16/s +02-Aug 05:43:09 test152 1.5 sec 13: 17030 of 25110 32.2% 8.83/s +02-Aug 05:44:26 test152 76.9 sec 245: 16785 of 25110 33.2% 3.19/s +02-Aug 05:44:27 test222 0.1 sec 18: 16767 of 25110 33.2% 146.44/s +02-Aug 05:44:28 test256 0.6 sec 58: 16709 of 25110 33.5% 90.89/s +02-Aug 05:44:31 test186 2.9 sec 43: 16666 of 25110 33.6% 14.80/s +02-Aug 05:44:31 test186 0.5 sec 3: 16663 of 25110 33.6% 6.60/s +02-Aug 05:44:32 test186(0) 0.4 sec 5: 16658 of 25110 33.7% 12.44/s +02-Aug 05:44:32 test150 0.1 sec 35: 16623 of 25110 33.8% 263.78/s +02-Aug 05:44:33 test239 0.1 sec 15: 16608 of 25110 33.9% 162.13/s +02-Aug 05:44:34 test239 0.9 sec 2: 16606 of 25110 33.9% 2.23/s +02-Aug 05:44:34 test235 0.0 sec 4: 16602 of 25110 33.9% 98.91/s +02-Aug 05:44:34 test226 0.0 sec 8: 16594 of 25110 33.9% 640.26/s +02-Aug 05:44:35 test223 0.0 sec 2: 16592 of 25110 33.9% 66.80/s +02-Aug 05:44:35 test204 0.1 sec 14: 16578 of 25110 34.0% 127.61/s +02-Aug 05:44:35 test203 0.1 sec 9: 16569 of 25110 34.0% 162.04/s +02-Aug 05:44:35 test183 0.0 sec 10: 16559 of 25110 34.1% 368.30/s +02-Aug 05:44:36 test179 0.1 sec 15: 16544 of 25110 34.1% 151.87/s +02-Aug 05:44:38 test179 1.9 sec 4: 16540 of 25110 34.1% 2.06/s +02-Aug 05:44:38 test174 0.0 sec 10: 16530 of 25110 34.2% 200.16/s +02-Aug 05:44:39 test155 0.1 sec 41: 16489 of 25110 34.3% 353.31/s +02-Aug 05:44:39 test136 0.2 sec 55: 16434 of 25110 34.6% 346.19/s +02-Aug 05:45:06 test02 26.5 sec 257: 16177 of 25110 35.6% 9.69/s +02-Aug 05:45:07 test109 0.4 sec 8: 16169 of 25110 35.6% 18.09/s +02-Aug 05:45:07 test109 0.0 sec 4: 16165 of 25110 35.6% 1545.60/s +02-Aug 05:45:07 test109 0.4 sec 8: 16157 of 25110 35.7% 22.43/s +02-Aug 05:45:08 test04 0.1 sec 15: 16142 of 25110 35.7% 170.20/s +02-Aug 05:45:08 test207 0.0 sec 2: 16140 of 25110 35.7% 577.03/s +02-Aug 05:45:08 test221 0.0 sec 2: 16138 of 25110 35.7% 289.90/s +02-Aug 05:45:09 test162 0.1 sec 3: 16135 of 25110 35.7% 59.40/s +02-Aug 05:45:10 test159 1.2 sec 72: 16063 of 25110 36.0% 59.93/s +02-Aug 05:45:10 test09 0.0 sec 5: 16058 of 25110 36.0% 652.66/s +02-Aug 05:45:11 test132 0.1 sec 8: 16050 of 25110 36.1% 102.31/s +02-Aug 05:45:16 test141 4.6 sec 549: 15501 of 25110 38.3% 118.23/s +02-Aug 05:45:17 testc2(1,1) 1.3 sec 19: 15482 of 25110 38.3% 15.09/s +02-Aug 05:45:24 testc2(1,1) 6.7 sec 4: 15478 of 25110 38.4% 0.60/s +02-Aug 05:45:25 test214 0.0 sec 3: 15475 of 25110 38.4% 338.64/s +02-Aug 05:45:25 test213 0.0 sec 2: 15473 of 25110 38.4% 197.53/s +02-Aug 05:45:28 test206 3.2 sec 221: 15252 of 25110 39.3% 70.12/s +02-Aug 05:45:45 test206 16.5 sec 20: 15232 of 25110 39.3% 1.21/s +02-Aug 05:45:46 test212 0.0 sec 8: 15224 of 25110 39.4% 410.51/s +02-Aug 05:45:46 test212 0.2 sec 2: 15222 of 25110 39.4% 10.19/s +02-Aug 05:45:47 test128 0.4 sec 36: 15186 of 25110 39.5% 102.43/s +02-Aug 05:45:47 test82 0.1 sec 13: 15173 of 25110 39.6% 145.93/s +02-Aug 05:45:52 test229 4.4 sec 9: 15164 of 25110 39.6% 2.05/s +02-Aug 05:45:53 test229 0.9 sec 1: 15163 of 25110 39.6% 1.15/s +02-Aug 05:45:54 test144 0.6 sec 2: 15161 of 25110 39.6% 3.47/s +02-Aug 05:47:59 test14 124.5 sec 715: 14446 of 25110 42.5% 5.74/s +02-Aug 05:51:43 test14 223.9 sec 62: 14384 of 25110 42.7% 0.28/s +02-Aug 05:51:53 test180 9.0 sec 130: 14254 of 25110 43.2% 14.38/s +02-Aug 05:51:58 test236 4.1 sec 74: 14180 of 25110 43.5% 18.13/s +02-Aug 05:52:01 test232 2.6 sec 22: 14158 of 25110 43.6% 8.56/s +02-Aug 05:52:21 test228 20.3 sec 27: 14131 of 25110 43.7% 1.33/s +02-Aug 05:56:09 test154 227.2 sec 1500: 12631 of 25110 49.7% 6.60/s +02-Aug 05:58:22 test154 132.2 sec 2: 12629 of 25110 49.7% 0.02/s +02-Aug 05:58:37 test238 14.6 sec 54: 12575 of 25110 49.9% 3.71/s +02-Aug 05:59:47 test238 69.9 sec 9: 12566 of 25110 50.0% 0.13/s +02-Aug 06:03:15 test151b 207.9 sec 127: 12439 of 25110 50.5% 0.61/s +02-Aug 06:03:19 test184 3.1 sec 20: 12419 of 25110 50.5% 6.38/s +02-Aug 06:03:33 test191 13.4 sec 21: 12398 of 25110 50.6% 1.56/s +02-Aug 06:03:47 test191 14.1 sec 3: 12395 of 25110 50.6% 0.21/s +02-Aug 06:12:02 test188 494.3 sec 206: 12189 of 25110 51.5% 0.42/s +02-Aug 06:13:06 test188 62.6 sec 3: 12186 of 25110 51.5% 0.05/s +02-Aug 06:13:12 test224 5.2 sec 24: 12162 of 25110 51.6% 4.62/s +02-Aug 06:13:15 test196 2.5 sec 11: 12151 of 25110 51.6% 4.46/s +02-Aug 06:13:21 test209 5.5 sec 20: 12131 of 25110 51.7% 3.62/s +02-Aug 06:13:40 test104 19.0 sec 40: 12091 of 25110 51.8% 2.11/s +02-Aug 06:13:48 test189 7.9 sec 1: 12090 of 25110 51.9% 0.13/s +02-Aug 06:15:01 test194 71.9 sec 5: 12085 of 25110 51.9% 0.07/s +02-Aug 06:15:18 test76 16.3 sec 15: 12070 of 25110 51.9% 0.92/s +02-Aug 06:16:01 test244 42.8 sec 17: 12053 of 25110 52.0% 0.40/s +[malloc debugging turned off] +02-Aug 06:16:01 test225 0.2 sec 1: 12052 of 25110 52.0% 6.59/s +02-Aug 06:16:02 test176 0.1 sec 5: 12047 of 25110 52.0% 64.20/s +02-Aug 06:16:02 test208 0.0 sec 5: 12042 of 25110 52.0% 275.89/s +02-Aug 06:16:03 test216 0.1 sec 3: 12039 of 25110 52.1% 37.68/s +02-Aug 06:16:12 test142 8.3 sec 633: 11406 of 25110 54.6% 76.34/s +02-Aug 06:20:52 test142 279.8 sec 9: 11397 of 25110 54.6% 0.03/s +02-Aug 06:21:01 test142 8.1 sec : 11397 of 25110 54.6% +02-Aug 06:21:02 test137 0.3 sec 3: 11394 of 25110 54.6% 8.84/s +02-Aug 06:21:03 test137 0.0 sec 2: 11392 of 25110 54.6% 296.43/s +02-Aug 06:21:03 test139 0.4 sec 1: 11391 of 25110 54.6% 2.60/s +02-Aug 06:21:04 test172 0.1 sec 3: 11388 of 25110 54.6% 37.30/s +02-Aug 06:21:05 test148 0.7 sec 4: 11384 of 25110 54.7% 5.60/s +02-Aug 06:21:06 test157 0.6 sec 12: 11372 of 25110 54.7% 18.56/s +02-Aug 06:21:08 test182 0.9 sec 5: 11367 of 25110 54.7% 5.30/s +02-Aug 06:21:09 test108 0.6 sec 2: 11365 of 25110 54.7% 3.29/s +02-Aug 06:21:10 test108 0.2 sec 2: 11363 of 25110 54.7% 11.58/s +02-Aug 06:21:11 test130 0.8 sec 22: 11341 of 25110 54.8% 26.03/s +02-Aug 06:21:12 test124 0.2 sec 3: 11338 of 25110 54.8% 14.22/s +02-Aug 06:21:12 test138 0.0 sec 1: 11337 of 25110 54.9% 20.42/s +02-Aug 06:21:18 test227 4.8 sec 27: 11310 of 25110 55.0% 5.64/s +02-Aug 06:22:09 test125 50.5 sec 618: 10692 of 25110 57.4% 12.24/s +02-Aug 06:30:37 test234 507.4 sec 384: 10308 of 25110 58.9% 0.76/s +02-Aug 06:31:50 test234 72.2 sec 3: 10305 of 25110 59.0% 0.04/s +02-Aug 06:32:39 test242 48.1 sec 77: 10228 of 25110 59.3% 1.60/s +02-Aug 06:32:41 test173 1.6 sec 12: 10216 of 25110 59.3% 7.53/s +02-Aug 06:32:45 test200 3.1 sec 10: 10206 of 25110 59.4% 3.22/s +02-Aug 06:32:45 test197 0.2 sec 1: 10205 of 25110 59.4% 6.53/s +02-Aug 06:32:47 test84 1.4 sec 17: 10188 of 25110 59.4% 12.29/s +02-Aug 06:32:54 test19b 5.9 sec 59: 10129 of 25110 59.7% 9.93/s +02-Aug 06:32:55 test133 0.4 sec 2: 10127 of 25110 59.7% 4.73/s +02-Aug 06:33:00 test80 4.1 sec 12: 10115 of 25110 59.7% 2.91/s +02-Aug 06:33:19 test23 19.2 sec 148: 9967 of 25110 60.3% 7.70/s +02-Aug 06:33:22 test135 2.0 sec 3: 9964 of 25110 60.3% 1.52/s +02-Aug 06:34:39 test160 76.7 sec 24: 9940 of 25110 60.4% 0.31/s +02-Aug 06:34:45 test54 5.3 sec 20: 9920 of 25110 60.5% 3.76/s +02-Aug 06:34:47 test129 1.2 sec 4: 9916 of 25110 60.5% 3.29/s +02-Aug 06:34:50 test69 2.0 sec 6: 9910 of 25110 60.5% 2.97/s +02-Aug 06:36:26 test230 95.4 sec 114: 9796 of 25110 61.0% 1.20/s +02-Aug 06:48:56 test74 749.1 sec 6637: 3159 of 25110 87.4% 8.86/s +02-Aug 06:52:51 test127 234.5 sec 1701: 1458 of 25110 94.2% 7.25/s +02-Aug 06:52:55 test19 3.3 sec 12: 1446 of 25110 94.2% 3.59/s +02-Aug 06:52:59 test11 3.9 sec 3: 1443 of 25110 94.3% 0.77/s +02-Aug 06:53:03 test215 3.1 sec 1: 1442 of 25110 94.3% 0.33/s +02-Aug 06:53:21 test193 17.8 sec 5: 1437 of 25110 94.3% 0.28/s +02-Aug 06:56:08 test195 166.1 sec 39: 1398 of 25110 94.4% 0.23/s +02-Aug 06:56:34 test243 25.4 sec 7: 1391 of 25110 94.5% 0.28/s +02-Aug 06:56:42 test29 6.6 sec 3: 1388 of 25110 94.5% 0.45/s +02-Aug 06:56:43 testc2(0,0) 1.0 sec 7: 1381 of 25110 94.5% 7.28/s +02-Aug 06:57:04 testc2(0,0) 19.8 sec 1: 1380 of 25110 94.5% 0.05/s +02-Aug 06:57:05 testc4(0) 0.6 sec 4: 1376 of 25110 94.5% 7.07/s +02-Aug 06:57:20 testc7(0) 14.4 sec 2: 1374 of 25110 94.5% 0.14/s +02-Aug 06:57:26 testcc(1) 5.1 sec 1: 1373 of 25110 94.5% 0.20/s +02-Aug 06:57:36 test187 8.9 sec 4: 1369 of 25110 94.5% 0.45/s +02-Aug 06:57:42 test192 5.9 sec 1: 1368 of 25110 94.6% 0.17/s +02-Aug 06:58:02 test181 18.7 sec 4: 1364 of 25110 94.6% 0.21/s +02-Aug 06:59:57 test185 115.1 sec 6: 1358 of 25110 94.6% 0.05/s +02-Aug 07:00:42 test53 43.8 sec 2: 1356 of 25110 94.6% 0.05/s +02-Aug 07:01:34 test17 51.3 sec 27: 1329 of 25110 94.7% 0.53/s +02-Aug 07:09:10 test231 455.1 sec 162: 1167 of 25110 95.4% 0.36/s +02-Aug 07:58:59 test10 2988.0 sec 968: 199 of 25110 99.2% 0.32/s +02-Aug 08:17:24 test75b 1104.8 sec 155: 44 of 25110 99.8% 0.14/s +02-Aug 08:18:57 test21b 92.1 sec 26: 18 of 25110 99.9% 0.28/s +02-Aug 08:19:50 testca(1) 52.7 sec 5: 13 of 25110 99.9% 0.09/s +02-Aug 08:21:49 test81 117.9 sec 1: 12 of 25110 100.0% 0.01/s +02-Aug 08:28:06 test18 375.8 sec 12: all 25110 full 100% 0.03/s +[malloc debugging turned back on] diff --git a/GraphBLAS/Tcov/log_Mar21.txt b/GraphBLAS/Tcov/log_Mar21.txt deleted file mode 100644 index 2278483a35..0000000000 --- a/GraphBLAS/Tcov/log_Mar21.txt +++ /dev/null @@ -1,205 +0,0 @@ - ----------------------------------------------- [malloc] [cover] -21-Mar 07:50:09 test169 17.1 sec 550: 24397 of 25111 2.8% 32.14/s -21-Mar 07:50:11 test250 1.4 sec 372: 24025 of 25111 4.3% 272.03/s -21-Mar 07:50:13 test250 2.1 sec 57: 23968 of 25111 4.6% 27.46/s -21-Mar 07:50:13 test279 0.1 sec 119: 23849 of 25111 5.0% 1305.15/s -21-Mar 07:50:13 test278 0.1 sec 48: 23801 of 25111 5.2% 538.99/s -21-Mar 07:50:13 test277 0.1 sec 38: 23763 of 25111 5.4% 444.59/s -21-Mar 07:50:13 test276 0.1 sec 1626: 22137 of 25111 11.8% 20321.70/s -21-Mar 07:50:14 test275 0.1 sec 117: 22020 of 25111 12.3% 1536.24/s -21-Mar 07:50:14 test274 0.1 sec 129: 21891 of 25111 12.8% 1739.53/s -21-Mar 07:50:14 test273 0.2 sec 112: 21779 of 25111 13.3% 645.76/s -21-Mar 07:50:14 test272 0.1 sec 11: 21768 of 25111 13.3% 145.87/s -21-Mar 07:50:14 test271 0.1 sec 497: 21271 of 25111 15.3% 6612.74/s -21-Mar 07:50:14 test270 0.1 sec 286: 20985 of 25111 16.4% 3856.58/s -21-Mar 07:50:14 test269 0.1 sec 83: 20902 of 25111 16.8% 1100.91/s -21-Mar 07:50:15 test268 0.1 sec 5: 20897 of 25111 16.8% 46.09/s -21-Mar 07:50:17 test145 2.2 sec 210: 20687 of 25111 17.6% 94.84/s -21-Mar 07:50:17 test145 0.0 sec 1: 20686 of 25111 17.6% 27.58/s -21-Mar 07:50:17 test145 0.0 sec 18: 20668 of 25111 17.7% 794.04/s -21-Mar 07:50:17 test145 0.0 sec 4: 20664 of 25111 17.7% 221.86/s -21-Mar 07:50:19 test145 1.5 sec 34: 20630 of 25111 17.8% 22.54/s -21-Mar 07:50:19 test145 0.0 sec 3: 20627 of 25111 17.9% 182.85/s -21-Mar 07:50:20 test240 1.2 sec 74: 20550 of 25111 18.2% 62.30/s -21-Mar 07:50:20 test240 0.3 sec 1: 20549 of 25111 18.2% 3.54/s -21-Mar 07:50:22 test237 1.4 sec 40: 20509 of 25111 18.3% 27.64/s -21-Mar 07:50:25 test237 2.8 sec 2: 20507 of 25111 18.3% 0.72/s -21-Mar 07:50:25 test237 0.1 sec 18: 20489 of 25111 18.4% 170.21/s -21-Mar 07:50:25 test237 0.0 sec 6: 20483 of 25111 18.4% 227.98/s -21-Mar 07:50:25 test237 0.1 sec 4: 20479 of 25111 18.4% 47.65/s -21-Mar 07:50:26 test267 0.7 sec 8: 20471 of 25111 18.5% 12.09/s -21-Mar 07:50:26 test267 0.0 sec 1: 20470 of 25111 18.5% 1390.82/s -21-Mar 07:50:27 test265 0.5 sec 36: 20434 of 25111 18.6% 71.16/s -21-Mar 07:50:27 test264 0.1 sec 173: 20261 of 25111 19.3% 2187.82/s -21-Mar 07:50:28 test263 0.8 sec 13: 20248 of 25111 19.4% 15.74/s -21-Mar 07:50:28 test262 0.1 sec 22: 20226 of 25111 19.5% 281.16/s -21-Mar 07:50:28 test261 0.1 sec 22: 20204 of 25111 19.5% 283.35/s -21-Mar 07:50:28 test260 0.1 sec 3: 20201 of 25111 19.6% 40.57/s -21-Mar 07:50:31 test259 2.3 sec 4: 20197 of 25111 19.6% 1.71/s -21-Mar 07:50:31 test258 0.4 sec 20: 20177 of 25111 19.6% 56.34/s -21-Mar 07:50:32 test257 0.3 sec 41: 20136 of 25111 19.8% 143.05/s -21-Mar 07:50:32 test255 0.1 sec 8: 20128 of 25111 19.8% 91.47/s -21-Mar 07:50:32 test254 0.1 sec 14: 20114 of 25111 19.9% 207.79/s -21-Mar 07:50:37 test254 4.9 sec 20: 20094 of 25111 20.0% 4.09/s -21-Mar 07:50:37 test254 0.1 sec 1: 20093 of 25111 20.0% 9.10/s -21-Mar 07:50:38 test253 0.2 sec 9: 20084 of 25111 20.0% 56.44/s -21-Mar 07:50:38 test252 0.1 sec 7: 20077 of 25111 20.0% 92.50/s -21-Mar 07:52:03 test251 85.0 sec 434: 19643 of 25111 21.8% 5.11/s -21-Mar 07:55:34 test251 211.5 sec 76: 19567 of 25111 22.1% 0.36/s -21-Mar 07:55:36 test249 1.3 sec 24: 19543 of 25111 22.2% 18.88/s -21-Mar 07:55:36 test247 0.0 sec 23: 19520 of 25111 22.3% 811.86/s -21-Mar 07:55:47 test246 11.1 sec 70: 19450 of 25111 22.5% 6.32/s -21-Mar 07:56:06 test01 18.6 sec 1340: 18110 of 25111 27.9% 71.92/s -21-Mar 07:56:07 test245 1.0 sec 34: 18076 of 25111 28.0% 34.71/s -21-Mar 07:56:07 test245 0.0 sec 8: 18068 of 25111 28.0% 216.93/s -21-Mar 07:56:08 test199 0.0 sec 1: 18067 of 25111 28.1% 149.90/s -21-Mar 07:56:08 test83 0.1 sec 10: 18057 of 25111 28.1% 129.77/s -21-Mar 07:56:08 test210 0.0 sec 7: 18050 of 25111 28.1% 2143.29/s -21-Mar 07:56:08 test165 0.0 sec 1: 18049 of 25111 28.1% 206.83/s -21-Mar 07:56:08 test219 0.1 sec 9: 18040 of 25111 28.2% 114.72/s -21-Mar 07:56:09 test219 0.3 sec 3: 18037 of 25111 28.2% 10.46/s -21-Mar 07:56:09 test241 0.1 sec 10: 18027 of 25111 28.2% 88.80/s -21-Mar 07:56:09 test220 0.1 sec 10: 18017 of 25111 28.3% 88.20/s -21-Mar 07:56:10 test211 0.0 sec 15: 18002 of 25111 28.3% 450.46/s -21-Mar 07:56:10 test202 0.1 sec 67: 17935 of 25111 28.6% 552.40/s -21-Mar 07:56:10 test202 0.0 sec 1: 17934 of 25111 28.6% 23.10/s -21-Mar 07:56:13 test152 3.1 sec 827: 17107 of 25111 31.9% 270.41/s -21-Mar 07:56:18 test152 4.2 sec 13: 17094 of 25111 31.9% 3.11/s -21-Mar 07:57:35 test152 76.9 sec 245: 16849 of 25111 32.9% 3.19/s -21-Mar 07:57:35 test222 0.2 sec 18: 16831 of 25111 33.0% 112.61/s -21-Mar 07:57:36 test256 0.6 sec 58: 16773 of 25111 33.2% 90.36/s -21-Mar 07:57:39 test186 2.9 sec 44: 16729 of 25111 33.4% 15.37/s -21-Mar 07:57:40 test186 0.4 sec 3: 16726 of 25111 33.4% 6.70/s -21-Mar 07:57:40 test186(0) 0.4 sec 5: 16721 of 25111 33.4% 12.60/s -21-Mar 07:57:41 test150 0.2 sec 36: 16685 of 25111 33.6% 173.63/s -21-Mar 07:57:41 test239 0.1 sec 15: 16670 of 25111 33.6% 135.61/s -21-Mar 07:57:42 test239 0.9 sec 2: 16668 of 25111 33.6% 2.18/s -21-Mar 07:57:42 test235 0.0 sec 4: 16664 of 25111 33.6% 102.84/s -21-Mar 07:57:43 test226 0.0 sec 8: 16656 of 25111 33.7% 531.21/s -21-Mar 07:57:43 test223 0.0 sec 2: 16654 of 25111 33.7% 66.81/s -21-Mar 07:57:43 test204 0.1 sec 14: 16640 of 25111 33.7% 95.85/s -21-Mar 07:57:43 test203 0.1 sec 9: 16631 of 25111 33.8% 116.95/s -21-Mar 07:57:44 test183 0.0 sec 12: 16619 of 25111 33.8% 449.15/s -21-Mar 07:57:44 test179 0.1 sec 15: 16604 of 25111 33.9% 120.94/s -21-Mar 07:57:46 test179 1.9 sec 4: 16600 of 25111 33.9% 2.10/s -21-Mar 07:57:47 test174 0.1 sec 10: 16590 of 25111 33.9% 193.64/s -21-Mar 07:57:47 test155 0.1 sec 41: 16549 of 25111 34.1% 293.90/s -21-Mar 07:57:47 test136 0.2 sec 55: 16494 of 25111 34.3% 283.29/s -21-Mar 07:57:48 test02 0.7 sec 247: 16247 of 25111 35.3% 348.25/s -21-Mar 07:57:49 test109 0.5 sec 10: 16237 of 25111 35.3% 21.79/s -21-Mar 07:57:49 test109 0.0 sec 4: 16233 of 25111 35.4% 1164.82/s -21-Mar 07:57:50 test109 0.4 sec 8: 16225 of 25111 35.4% 21.68/s -21-Mar 07:57:50 test04 0.1 sec 15: 16210 of 25111 35.4% 135.88/s -21-Mar 07:57:50 test207 0.0 sec 2: 16208 of 25111 35.5% 470.37/s -21-Mar 07:57:51 test221 0.0 sec 2: 16206 of 25111 35.5% 281.25/s -21-Mar 07:57:51 test162 0.1 sec 3: 16203 of 25111 35.5% 48.76/s -21-Mar 07:57:54 test159 2.5 sec 72: 16131 of 25111 35.8% 29.25/s -21-Mar 07:57:54 test09 0.0 sec 5: 16126 of 25111 35.8% 414.52/s -21-Mar 07:57:54 test132 0.1 sec 8: 16118 of 25111 35.8% 82.14/s -21-Mar 07:58:07 test141 12.7 sec 549: 15569 of 25111 38.0% 43.27/s -21-Mar 07:58:09 testc2(1,1) 1.4 sec 20: 15549 of 25111 38.1% 14.56/s -21-Mar 07:58:16 testc2(1,1) 6.6 sec 4: 15545 of 25111 38.1% 0.60/s -21-Mar 07:58:16 test214 0.0 sec 3: 15542 of 25111 38.1% 308.10/s -21-Mar 07:58:17 test213 0.0 sec 2: 15540 of 25111 38.1% 176.41/s -21-Mar 07:58:20 test206 2.6 sec 221: 15319 of 25111 39.0% 83.80/s -21-Mar 07:58:37 test206 17.1 sec 24: 15295 of 25111 39.1% 1.40/s -21-Mar 07:58:37 test212 0.0 sec 8: 15287 of 25111 39.1% 394.19/s -21-Mar 07:58:38 test212 0.2 sec 2: 15285 of 25111 39.1% 10.49/s -21-Mar 07:58:39 test128 0.3 sec 41: 15244 of 25111 39.3% 118.86/s -21-Mar 07:58:39 test82 0.1 sec 16: 15228 of 25111 39.4% 176.26/s -21-Mar 07:58:42 test229 3.1 sec 9: 15219 of 25111 39.4% 2.92/s -21-Mar 07:58:44 test229 1.1 sec 1: 15218 of 25111 39.4% 0.95/s -21-Mar 07:58:45 test144 0.6 sec 2: 15216 of 25111 39.4% 3.41/s -21-Mar 08:00:07 test14 82.4 sec 662: 14554 of 25111 42.0% 8.03/s -21-Mar 08:04:35 test14 267.4 sec 118: 14436 of 25111 42.5% 0.44/s -21-Mar 08:04:45 test180 9.0 sec 128: 14308 of 25111 43.0% 14.21/s -21-Mar 08:04:49 test236 3.7 sec 74: 14234 of 25111 43.3% 20.20/s -21-Mar 08:04:52 test232 2.6 sec 22: 14212 of 25111 43.4% 8.38/s -21-Mar 08:05:12 test228 19.7 sec 27: 14185 of 25111 43.5% 1.37/s -21-Mar 08:07:15 test154 122.3 sec 1502: 12683 of 25111 49.5% 12.28/s -21-Mar 08:13:36 test154 381.2 sec 2: 12681 of 25111 49.5% 0.01/s -21-Mar 08:13:51 test238 14.8 sec 54: 12627 of 25111 49.7% 3.65/s -21-Mar 08:15:02 test238 69.8 sec 9: 12618 of 25111 49.8% 0.13/s -21-Mar 08:16:43 test151b 101.3 sec 126: 12492 of 25111 50.3% 1.24/s -21-Mar 08:16:47 test184 3.1 sec 38: 12454 of 25111 50.4% 12.26/s -21-Mar 08:17:00 test191 12.9 sec 21: 12433 of 25111 50.5% 1.63/s -21-Mar 08:17:29 test191 28.6 sec 3: 12430 of 25111 50.5% 0.10/s -21-Mar 08:25:00 test188 450.3 sec 212: 12218 of 25111 51.3% 0.47/s -21-Mar 08:27:30 test188 148.9 sec 3: 12215 of 25111 51.4% 0.02/s -21-Mar 08:27:36 test224 5.2 sec 24: 12191 of 25111 51.5% 4.58/s -21-Mar 08:27:38 test196 2.4 sec 11: 12180 of 25111 51.5% 4.56/s -21-Mar 08:27:44 test209 5.4 sec 20: 12160 of 25111 51.6% 3.68/s -21-Mar 08:28:04 test104 19.0 sec 40: 12120 of 25111 51.7% 2.11/s -21-Mar 08:28:12 test189 8.0 sec 1: 12119 of 25111 51.7% 0.12/s -21-Mar 08:29:23 test194 70.1 sec 5: 12114 of 25111 51.8% 0.07/s -21-Mar 08:29:39 test76 16.0 sec 15: 12099 of 25111 51.8% 0.94/s -21-Mar 08:30:21 test244 41.0 sec 17: 12082 of 25111 51.9% 0.41/s -[malloc debugging turned off] -21-Mar 08:30:21 test201 0.0 sec 3: 12079 of 25111 51.9% 377.74/s -21-Mar 08:30:22 test225 0.1 sec 1: 12078 of 25111 51.9% 6.95/s -21-Mar 08:30:22 test176 0.1 sec 5: 12073 of 25111 51.9% 66.48/s -21-Mar 08:30:23 test208 0.0 sec 5: 12068 of 25111 51.9% 302.72/s -21-Mar 08:30:23 test216 0.1 sec 3: 12065 of 25111 52.0% 33.92/s -21-Mar 08:30:48 test142 24.0 sec 631: 11434 of 25111 54.5% 26.33/s -21-Mar 08:35:28 test142 279.9 sec 10: 11424 of 25111 54.5% 0.04/s -21-Mar 08:35:53 test142 23.6 sec 2: 11422 of 25111 54.5% 0.08/s -21-Mar 08:35:53 test137 0.4 sec 3: 11419 of 25111 54.5% 7.70/s -21-Mar 08:35:54 test137 0.0 sec 2: 11417 of 25111 54.5% 281.53/s -21-Mar 08:35:55 test139 0.4 sec 2: 11415 of 25111 54.5% 5.41/s -21-Mar 08:35:55 test172 0.1 sec 3: 11412 of 25111 54.6% 39.19/s -21-Mar 08:35:57 test148 0.8 sec 4: 11408 of 25111 54.6% 4.94/s -21-Mar 08:35:58 test157 0.7 sec 12: 11396 of 25111 54.6% 17.23/s -21-Mar 08:35:59 test182 1.0 sec 5: 11391 of 25111 54.6% 5.25/s -21-Mar 08:36:00 test108 0.6 sec 2: 11389 of 25111 54.6% 3.23/s -21-Mar 08:36:01 test108 0.4 sec 2: 11387 of 25111 54.7% 5.41/s -21-Mar 08:36:03 test130 0.8 sec 22: 11365 of 25111 54.7% 26.46/s -21-Mar 08:36:03 test124 0.2 sec 3: 11362 of 25111 54.8% 17.33/s -21-Mar 08:36:04 test138 0.0 sec 1: 11361 of 25111 54.8% 20.29/s -21-Mar 08:36:09 test227 4.8 sec 27: 11334 of 25111 54.9% 5.58/s -21-Mar 08:36:39 test125 29.4 sec 630: 10704 of 25111 57.4% 21.46/s -21-Mar 08:39:05 test234 144.9 sec 385: 10319 of 25111 58.9% 2.66/s -21-Mar 08:42:51 test234 225.6 sec 3: 10316 of 25111 58.9% 0.01/s -21-Mar 08:43:40 test242 48.2 sec 77: 10239 of 25111 59.2% 1.60/s -21-Mar 08:43:42 test173 1.6 sec 11: 10228 of 25111 59.3% 7.06/s -21-Mar 08:43:46 test200 3.2 sec 10: 10218 of 25111 59.3% 3.09/s -21-Mar 08:43:46 test197 0.1 sec 1: 10217 of 25111 59.3% 7.52/s -21-Mar 08:43:48 test84 1.3 sec 18: 10199 of 25111 59.4% 13.38/s -21-Mar 08:43:55 test19b 6.0 sec 59: 10140 of 25111 59.6% 9.83/s -21-Mar 08:43:56 test133 0.4 sec 2: 10138 of 25111 59.6% 5.21/s -21-Mar 08:44:00 test80 4.0 sec 12: 10126 of 25111 59.7% 3.03/s -21-Mar 08:45:05 test23 63.9 sec 148: 9978 of 25111 60.3% 2.31/s -21-Mar 08:45:07 test135 1.9 sec 7: 9971 of 25111 60.3% 3.69/s -21-Mar 08:46:23 test160 74.6 sec 24: 9947 of 25111 60.4% 0.32/s -21-Mar 08:46:28 test54 5.2 sec 20: 9927 of 25111 60.5% 3.85/s -21-Mar 08:46:30 test129 1.2 sec 4: 9923 of 25111 60.5% 3.45/s -21-Mar 08:46:33 test69 2.1 sec 6: 9917 of 25111 60.5% 2.91/s -21-Mar 08:48:07 test230 93.5 sec 114: 9803 of 25111 61.0% 1.22/s -21-Mar 09:21:15 test74 1987.5 sec 6637: 3166 of 25111 87.4% 3.34/s -21-Mar 09:33:25 test127 729.1 sec 1703: 1463 of 25111 94.2% 2.34/s -21-Mar 09:33:29 test19 3.3 sec 12: 1451 of 25111 94.2% 3.65/s -21-Mar 09:33:33 test11 3.8 sec 3: 1448 of 25111 94.2% 0.78/s -21-Mar 09:33:37 test215 2.9 sec 1: 1447 of 25111 94.2% 0.34/s -21-Mar 09:33:55 test193 17.1 sec 5: 1442 of 25111 94.3% 0.29/s -21-Mar 09:36:35 test195 159.4 sec 39: 1403 of 25111 94.4% 0.24/s -21-Mar 09:37:00 test243 24.9 sec 7: 1396 of 25111 94.4% 0.28/s -21-Mar 09:37:12 test29 10.8 sec 3: 1393 of 25111 94.5% 0.28/s -21-Mar 09:37:14 testc2(0,0) 1.3 sec 7: 1386 of 25111 94.5% 5.30/s -21-Mar 09:37:34 testc2(0,0) 19.6 sec 1: 1385 of 25111 94.5% 0.05/s -21-Mar 09:37:35 testc4(0) 0.6 sec 4: 1381 of 25111 94.5% 6.53/s -21-Mar 09:37:51 testc7(0) 14.7 sec 3: 1378 of 25111 94.5% 0.20/s -21-Mar 09:37:57 testcc(1) 5.1 sec 1: 1377 of 25111 94.5% 0.20/s -21-Mar 09:38:06 test187 8.6 sec 3: 1374 of 25111 94.5% 0.35/s -21-Mar 09:38:12 test192 5.8 sec 1: 1373 of 25111 94.5% 0.17/s -21-Mar 09:38:32 test181 18.5 sec 4: 1369 of 25111 94.5% 0.22/s -21-Mar 09:40:22 test185 109.6 sec 6: 1363 of 25111 94.6% 0.05/s -21-Mar 09:41:06 test53 43.6 sec 4: 1359 of 25111 94.6% 0.09/s -21-Mar 09:41:57 test17 49.7 sec 27: 1332 of 25111 94.7% 0.54/s -21-Mar 09:49:21 test231 443.1 sec 162: 1170 of 25111 95.3% 0.37/s -21-Mar 10:44:39 test10 3317.2 sec 970: 200 of 25111 99.2% 0.29/s -21-Mar 11:03:35 test75b 1112.2 sec 155: 45 of 25111 99.8% 0.14/s -21-Mar 11:05:08 test21b 90.6 sec 26: 19 of 25111 99.9% 0.29/s -21-Mar 11:06:01 testca(1) 52.1 sec 5: 14 of 25111 99.9% 0.10/s -21-Mar 11:08:01 test81 119.4 sec 1: 13 of 25111 99.9% 0.01/s -21-Mar 11:14:12 test18 369.8 sec 13: all 25111 full 100% 0.04/s -[malloc debugging turned back on] diff --git a/GraphBLAS/Test/Contents.m b/GraphBLAS/Test/Contents.m index 087c3ca696..fd1ce3e19c 100644 --- a/GraphBLAS/Test/Contents.m +++ b/GraphBLAS/Test/Contents.m @@ -3,7 +3,7 @@ % Primary functiuns -% make - compiles the test interface to GraphBLAS +% testmake - compiles the test interface to GraphBLAS % testall - run all GraphBLAS tests % mimics of GraphBLAS operations: diff --git a/GraphBLAS/Test/GB_mex.h b/GraphBLAS/Test/GB_mex.h index 4f19ee3147..ed6265b8de 100644 --- a/GraphBLAS/Test/GB_mex.h +++ b/GraphBLAS/Test/GB_mex.h @@ -10,19 +10,19 @@ #ifndef GB_MEXH #define GB_MEXH -#include "GB_mxm.h" -#include "GB_Pending.h" -#include "GB_add.h" -#include "GB_subref.h" -#include "GB_transpose.h" -#include "GB_sort.h" -#include "GB_apply.h" +#include "../Source/mxm/GB_mxm.h" +#include "../Source/pending/GB_Pending.h" +#include "../Source/ewise/GB_add.h" +#include "../Source/extract/GB_subref.h" +#include "../Source/transpose/GB_transpose.h" +#include "../Source/sort/GB_sort.h" +#include "../Source/apply/GB_apply.h" #include "GB_mex_generic.h" #undef OK #include "GB_mx_usercomplex.h" #include "mex.h" #include "matrix.h" -#include "GB_dev.h" +#include "../Source/include/GB_dev.h" #define SIMPLE_RAND_MAX 32767 uint64_t simple_rand (void) ; diff --git a/GraphBLAS/Test/GB_mex_apply_idxunop_user.c b/GraphBLAS/Test/GB_mex_apply_idxunop_user.c new file mode 100644 index 0000000000..8bf5bcac69 --- /dev/null +++ b/GraphBLAS/Test/GB_mex_apply_idxunop_user.c @@ -0,0 +1,82 @@ +//------------------------------------------------------------------------------ +// GB_mex_apply_idxunop_user: C = idxunop (A) +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// Apply a user-defined index unary operator to a matrix. + +#include "GB_mex.h" + +#define USAGE "C = GB_mex_apply_idxunop_user (A)" + +#define FREE_ALL \ +{ \ + GrB_Matrix_free_(&C) ; \ + GrB_Matrix_free_(&A) ; \ + GrB_IndexUnaryOp_free_(&op) ; \ + GB_mx_put_global (true) ; \ +} + +GrB_Matrix C = NULL ; +GrB_Matrix A = NULL ; +GrB_IndexUnaryOp op = NULL ; + +void idx2 (int64_t *z, const void *x, GrB_Index i, GrB_Index j, const void *y); +void idx2 (int64_t *z, const void *x, GrB_Index i, GrB_Index j, const void *y) +{ + uint64_t thunk = *((uint64_t *) y) ; + (*z) = i + j + thunk ; +} + +//------------------------------------------------------------------------------ + +void mexFunction +( + int nargout, + mxArray *pargout [ ], + int nargin, + const mxArray *pargin [ ] +) +{ + + bool malloc_debug = GB_mx_get_global (true) ; + + // check inputs + if (nargout > 1 || nargin != 1) + { + mexErrMsgTxt ("Usage: " USAGE) ; + } + + // get A (shallow copy) + A = GB_mx_mxArray_to_Matrix (pargin [0], "A input", false, true) ; + if (A == NULL || A->magic != GB_MAGIC) + { + FREE_ALL ; + mexErrMsgTxt ("A failed") ; + } + + // create the op + GrB_IndexUnaryOp_new (&op, (GxB_index_unary_function) idx2, + GrB_UINT64, GrB_UINT64, GrB_UINT64) ; + if (op == NULL) + { + FREE_ALL ; + mexErrMsgTxt ("IndexUnaryOp failed") ; + } + + // C = op (A), where thunk = 1 + GrB_Index nrows, ncols ; + GrB_Matrix_nrows (&nrows, A) ; + GrB_Matrix_ncols (&ncols, A) ; + GrB_Matrix_new (&C, GrB_FP64, nrows, ncols) ; + GrB_Matrix_apply_IndexOp_UINT64 (C, NULL, NULL, op, A, 1, NULL) ; + + // return C as a struct and free the GraphBLAS C + pargout [0] = GB_mx_Matrix_to_mxArray (&C, "C output", false) ; + FREE_ALL ; +} + diff --git a/GraphBLAS/Test/GB_mex_grow.c b/GraphBLAS/Test/GB_mex_grow.c new file mode 100644 index 0000000000..2c71e57266 --- /dev/null +++ b/GraphBLAS/Test/GB_mex_grow.c @@ -0,0 +1,297 @@ +//------------------------------------------------------------------------------ +// GB_mex_grow: MATLAB version of GraphBLAS/Demo/Programgrow_demo.c +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +#include "GB_mex.h" +#include "GB_mex_errors.h" + +#define USAGE "GB_mex_grow (A)" + +#define WALLCLOCK GB_omp_get_wtime ( ) + +// macro used by OK(...) to free workspace if an error occurs +#undef FREE_ALL +#define FREE_ALL \ + GrB_Matrix_free (&A) ; \ + GrB_Matrix_free (&C) ; \ + GrB_Matrix_free (&T) ; \ + GrB_Matrix_free (&W) ; \ + GrB_Vector_free (&w) ; \ + GB_mx_put_global (true) ; \ + +GrB_Info check_result (GrB_Matrix A1, GrB_Matrix C1, GrB_BinaryOp eq) ; +GrB_Info check_result (GrB_Matrix A1, GrB_Matrix C1, GrB_BinaryOp eq) +{ + double t = WALLCLOCK ; + GrB_Info info ; + GrB_Matrix A = NULL, C = NULL, T = NULL, W = NULL ; + GrB_Vector w = NULL ; + GrB_Index anvals, cnvals, tnvals, anrows, ancols ; + OK (GrB_Matrix_nrows (&anrows, A1)) ; + OK (GrB_Matrix_ncols (&ancols, A1)) ; + OK (GrB_Matrix_nvals (&anvals, A1)) ; + OK (GrB_Matrix_nvals (&cnvals, C1)) ; + CHECK (anvals == cnvals) ; + OK (GrB_Matrix_new (&T, GrB_BOOL, anrows, ancols)) ; + OK (GrB_set (T, GrB_ROWMAJOR, GrB_STORAGE_ORIENTATION_HINT)) ; + OK (GrB_eWiseMult (T, NULL, NULL, eq, A1, C1, NULL)) ; + // OK (GxB_print (T, 2)) ; + OK (GrB_Matrix_nvals (&tnvals, T)) ; + CHECK (anvals == tnvals) ; + bool ok = true ; + OK (GrB_reduce (&ok, NULL, GrB_LAND_MONOID_BOOL, T, NULL)) ; + CHECK (ok) ; + t = (WALLCLOCK - t) ; + GrB_Matrix_free (&T) ; + printf ("A and C match, time %g\n", t) ; +} + + +void mexFunction +( + int nargout, + mxArray *pargout [ ], + int nargin, + const mxArray *pargin [ ] +) +{ + + bool malloc_debug = GB_mx_get_global (true) ; + GrB_Matrix A = NULL, C = NULL, T = NULL, W = NULL ; + GrB_Vector w = NULL ; + GrB_Info info ; + + // check inputs + if (nargout > 0 || nargin != 1) + { + FREE_ALL ; + mexErrMsgTxt ("Usage: " USAGE) ; + } + + #define GET_DEEP_COPY ; + #define FREE_DEEP_COPY ; + + // get A + A = GB_mx_mxArray_to_Matrix (pargin [0], "A", false, true) ; + if (A == NULL) + { + mexErrMsgTxt ("A failed") ; + } + + int nthreads ; + OK (GrB_get (GrB_GLOBAL, &nthreads, GxB_NTHREADS)) ; + fprintf (stderr, "grow demo: nthreads %d\n", nthreads) ; + + //-------------------------------------------------------------------------- + // get A matrix + //-------------------------------------------------------------------------- + + GrB_Index anrows, ancols ; + OK (GrB_Matrix_nrows (&anrows, A)) ; + OK (GrB_Matrix_ncols (&ancols, A)) ; + + int type_code ; + OK (GrB_Matrix_get_INT32 (A, &type_code, GrB_EL_TYPE_CODE)) ; + GrB_Type atype = NULL ; + // OK (GxB_print (A, 5)) ; + // printf ("type_code: %d\n", type_code) ; + GrB_BinaryOp eq = NULL ; + + switch (type_code) + { + case GrB_BOOL_CODE : atype = GrB_BOOL ; eq = GrB_EQ_BOOL ; break ; + case GrB_INT8_CODE : atype = GrB_INT8 ; eq = GrB_EQ_INT8 ; break ; + case GrB_UINT8_CODE : atype = GrB_UINT8 ; eq = GrB_EQ_UINT8 ; break ; + case GrB_INT16_CODE : atype = GrB_INT16 ; eq = GrB_EQ_INT16 ; break ; + case GrB_UINT16_CODE : atype = GrB_UINT16 ; eq = GrB_EQ_UINT16 ; break ; + case GrB_INT32_CODE : atype = GrB_INT32 ; eq = GrB_EQ_INT32 ; break ; + case GrB_UINT32_CODE : atype = GrB_UINT32 ; eq = GrB_EQ_UINT32 ; break ; + case GrB_INT64_CODE : atype = GrB_INT64 ; eq = GrB_EQ_INT64 ; break ; + case GrB_UINT64_CODE : atype = GrB_UINT64 ; eq = GrB_EQ_UINT64 ; break ; + case GrB_FP32_CODE : atype = GrB_FP32 ; eq = GrB_EQ_FP32 ; break ; + case GrB_FP64_CODE : atype = GrB_FP64 ; eq = GrB_EQ_FP64 ; break ; + case GxB_FC32_CODE : atype = GxB_FC32 ; eq = GxB_EQ_FC32 ; break ; + case GxB_FC64_CODE : atype = GxB_FC64 ; eq = GxB_EQ_FC64 ; break ; + default : ; + } + + // OK (GxB_print (atype, 5)) ; + CHECK (atype != NULL) ; + OK (GxB_print (A, 1)) ; + + //-------------------------------------------------------------------------- + // C = A, one row at a time + //-------------------------------------------------------------------------- + + OK (GrB_Matrix_new (&C, atype, anrows, ancols)) ; + OK (GrB_Vector_new (&w, atype, ancols)) ; + // OK (GrB_set (GrB_GLOBAL, true, GxB_BURBLE)) ; + int32_t hyper_hash ; + OK (GrB_get (C, &hyper_hash, GxB_HYPER_HASH)) ; + CHECK (hyper_hash) ; + OK (GrB_set (C, false, GxB_HYPER_HASH)) ; + OK (GrB_get (C, &hyper_hash, GxB_HYPER_HASH)) ; + CHECK (!hyper_hash) ; + OK (GrB_set (C, GxB_HYPERSPARSE, GxB_SPARSITY_CONTROL)) ; + OK (GrB_set (w, GxB_SPARSE, GxB_SPARSITY_CONTROL)) ; + // printf ("\n\nC empty:\n") ; + // OK (GxB_print (C, 1)) ; + + // convert A and C to CSR format + OK (GrB_set (A, GrB_ROWMAJOR, GrB_STORAGE_ORIENTATION_HINT)) ; + OK (GrB_set (C, GrB_ROWMAJOR, GrB_STORAGE_ORIENTATION_HINT)) ; + + double t, tt [4] = {0, 0, 0, 0}, t2 [4] = {0, 0, 0, 0} ; + tt [0] = WALLCLOCK ; + + for (int64_t i = 0 ; i < anrows ; i++) + { + if (i % 100000 == 0) + { + printf (".") ; + fflush (stdout) ; + } + + // w = A (i,:), using A' via the descriptor + t = WALLCLOCK ; + OK (GrB_Col_extract (w, NULL, NULL, A, GrB_ALL, ancols, i, + GrB_DESC_T0)) ; + tt [1] += (WALLCLOCK - t) ; + // OK (GxB_print (w, 3)) ; + + // C (i,:) = w + t = WALLCLOCK ; + OK (GrB_Row_assign (C, NULL, NULL, w, i, GrB_ALL, ancols, NULL)) ; + tt [2] += (WALLCLOCK - t) ; + + // ensure C is finished + t = WALLCLOCK ; + OK (GrB_wait (C, GrB_MATERIALIZE)) ; + tt [3] += (WALLCLOCK - t) ; + // OK (GxB_print (C, 1)) ; + } + + OK (GrB_set (GrB_GLOBAL, false, GxB_BURBLE)) ; + // OK (GxB_print (C, 1)) ; + + tt [0] = WALLCLOCK - tt [0] ; + printf ("one row at a time:\n") ; + printf ("total time: %g\n", tt [0]) ; + printf ("extract: %g\n", tt [1]) ; + printf ("assign: %g\n", tt [2]) ; + printf ("wait: %g\n", tt [3]) ; + + // check to see if A and C are equal + OK (check_result (A, C, eq)) ; + GrB_Matrix_free (&C) ; + GrB_Matrix_free (&w) ; + + //-------------------------------------------------------------------------- + // C = A, multiple rows at a time + //-------------------------------------------------------------------------- + + // OK (GrB_set (GrB_GLOBAL, true, GxB_BURBLE)) ; + OK (GrB_Matrix_new (&C, atype, anrows, ancols)) ; + OK (GrB_set (C, false, GxB_HYPER_HASH)) ; + OK (GrB_set (C, GxB_HYPERSPARSE, GxB_SPARSITY_CONTROL)) ; + OK (GrB_set (C, GrB_ROWMAJOR, GrB_STORAGE_ORIENTATION_HINT)) ; + + t2 [0] = WALLCLOCK ; + int64_t i1 = 0 ; + int64_t ilast = anrows - 1 ; + while (i1 <= ilast) + { + // determine the rows i1:i2 of A to append + int64_t irows = (ilast - i1) / 2 ; + if (irows == 0) irows = 1 ; + int64_t i2 = i1 + irows - 1 ; + if (i2 > ilast) i2 = ilast ; + irows = i2 - i1 + 1 ; + // printf ("i1: %ld i2: %ld irows %ld ilast: %ld\n", + // i1, i2, irows, ilast) ; + + // W = A (i1:i2,:) + t = WALLCLOCK ; + OK (GrB_Matrix_new (&W, atype, irows, ancols)) ; + OK (GrB_set (W, false, GxB_HYPER_HASH)) ; + OK (GrB_set (W, GxB_SPARSE, GxB_SPARSITY_CONTROL)) ; + OK (GrB_set (W, GrB_ROWMAJOR, GrB_STORAGE_ORIENTATION_HINT)) ; + GrB_Index Icolon [3] ; + Icolon [GxB_BEGIN] = i1 ; + Icolon [GxB_INC ] = 1 ; + Icolon [GxB_END ] = i2 ; + // OK (GxB_print (W, 3)) ; + info = GrB_extract (W, NULL, NULL, A, Icolon, GxB_RANGE, + GrB_ALL, ancols, NULL) ; + // printf ("got here: %d\n", info) ; + OK (info) ; + t2 [1] += (WALLCLOCK - t) ; + // OK (GxB_print (W, 3)) ; + + // C (i1:i2,:) = W + t = WALLCLOCK ; + OK (GrB_assign (C, NULL, NULL, W, Icolon, GxB_RANGE, GrB_ALL, ancols, + NULL)) ; + t2 [2] += (WALLCLOCK - t) ; + + // ensure C is finished + t = WALLCLOCK ; + OK (GrB_wait (C, GrB_MATERIALIZE)) ; + t2 [3] += (WALLCLOCK - t) ; + // OK (GxB_print (C, 1)) ; + + GrB_Matrix_free (&W) ; + + i1 += irows ; + } + OK (GrB_set (GrB_GLOBAL, false, GxB_BURBLE)) ; + + t2 [0] = WALLCLOCK - t2 [0] ; + printf ("\nmany rows at a time:\n") ; + printf ("total time: %g\n", t2 [0]) ; + printf ("extract: %g\n", t2 [1]) ; + printf ("assign: %g\n", t2 [2]) ; + printf ("wait: %g\n", t2 [3]) ; + + // check to see if A and C are equal + OK (check_result (A, C, eq)) ; + GrB_Matrix_free (&C) ; + + //-------------------------------------------------------------------------- + // C = A, using dup + //-------------------------------------------------------------------------- + + printf ("\nsingle call to dup:\n") ; + { + GrB_free (&T) ; + t = WALLCLOCK ; + OK (GrB_Matrix_dup (&T, A)) ; + t = (WALLCLOCK - t) ; + GrB_free (&T) ; + printf ("dup: %g (%d threads)\n", t, nthreads) ; + } + + //-------------------------------------------------------------------------- + // C = A + //-------------------------------------------------------------------------- + + OK (GrB_Matrix_new (&C, atype, anrows, ancols)) ; + OK (GrB_set (C, false, GxB_HYPER_HASH)) ; + OK (GrB_set (C, GxB_HYPERSPARSE, GxB_SPARSITY_CONTROL)) ; + OK (GrB_set (A, GxB_HYPERSPARSE, GxB_SPARSITY_CONTROL)) ; + OK (GrB_wait (A, GrB_MATERIALIZE)) ; + OK (GrB_wait (C, GrB_MATERIALIZE)) ; + OK (GrB_Matrix_apply_BinaryOp2nd_FP64 (C, NULL, NULL, + GrB_PLUS_FP64, A, (double) 0, NULL)) ; + OK (check_result (A, C, eq)) ; + GrB_Matrix_free (&C) ; + + printf ("GB_mex_grow: all tests passed\n") ; + FREE_ALL ; +} + diff --git a/GraphBLAS/Test/GB_mex_mxm.c b/GraphBLAS/Test/GB_mex_mxm.c index 151c185f54..2a802a1b20 100644 --- a/GraphBLAS/Test/GB_mex_mxm.c +++ b/GraphBLAS/Test/GB_mex_mxm.c @@ -8,7 +8,6 @@ //------------------------------------------------------------------------------ #include "GB_mex.h" -#include "GB_stringify.h" #define USAGE "C = GB_mex_mxm (C, M, accum, semiring, A, B, desc, macrofy)" diff --git a/GraphBLAS/Test/GB_mex_plusplus.c b/GraphBLAS/Test/GB_mex_plusplus.c index 2af4f189ed..63b145c7da 100644 --- a/GraphBLAS/Test/GB_mex_plusplus.c +++ b/GraphBLAS/Test/GB_mex_plusplus.c @@ -8,7 +8,6 @@ //------------------------------------------------------------------------------ #include "GB_mex.h" -#include "GB_stringify.h" #define USAGE "C = GB_mex_plusplus (C, M, accum, [ ], A, B, desc, macrofy)" diff --git a/GraphBLAS/Test/GB_mex_rdiv.c b/GraphBLAS/Test/GB_mex_rdiv.c index bd02c670b8..5a1bdba3c0 100644 --- a/GraphBLAS/Test/GB_mex_rdiv.c +++ b/GraphBLAS/Test/GB_mex_rdiv.c @@ -2,7 +2,7 @@ // GB_mex_rdiv: compute C=A*B with the rdiv operator //------------------------------------------------------------------------------ -// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 //------------------------------------------------------------------------------ @@ -56,6 +56,7 @@ GrB_BinaryOp My_rdiv = NULL ; "{\n" \ " // escape this quote: \"\n" \ " /* escape this backslash \\ */\n" \ +" /* modified for GrB 9.3.0 */\n" \ " (*z) = (*y) / (*x) ;\n" \ "}" diff --git a/GraphBLAS/Test/GB_mex_select.c b/GraphBLAS/Test/GB_mex_select.c index c19b5176da..9dff0c6c50 100644 --- a/GraphBLAS/Test/GB_mex_select.c +++ b/GraphBLAS/Test/GB_mex_select.c @@ -66,7 +66,8 @@ void mexFunction // get C (make a deep copy) #define GET_DEEP_COPY \ C = GB_mx_mxArray_to_Matrix (pargin [0], "C input", true, true) ; \ - if (nargin > 7 && C != NULL) C->nvec_nonempty = -1 ; + if (nargin > 7 && C != NULL) C->nvec_nonempty = -1 ; \ + GrB_set (C, false, GxB_HYPER_HASH) ; #define FREE_DEEP_COPY GrB_Matrix_free_(&C) ; GET_DEEP_COPY ; if (C == NULL) diff --git a/GraphBLAS/Test/GB_mex_test1.c b/GraphBLAS/Test/GB_mex_test1.c index 44d943e043..1deaef1692 100644 --- a/GraphBLAS/Test/GB_mex_test1.c +++ b/GraphBLAS/Test/GB_mex_test1.c @@ -11,7 +11,6 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_AxB_saxpy.h" #define USAGE "GB_mex_test1" @@ -750,11 +749,11 @@ void mexFunction GB_Global_hack_set (1, save1) ; CHECK (GB_Global_hack_get (1) == save1) ; //-------------------------------------------------------------------------- - // GB_pslice + // GB_p_slice //-------------------------------------------------------------------------- int64_t Slice [30] ; - GB_pslice (Slice, NULL, 0, 4, true) ; + GB_p_slice (Slice, NULL, 0, 4, true) ; for (int t = 0 ; t < 4 ; t++) CHECK (Slice [t] == 0) ; //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Test/GB_mex_test11.c b/GraphBLAS/Test/GB_mex_test11.c index cd33b115c3..9b5cb7d9e3 100644 --- a/GraphBLAS/Test/GB_mex_test11.c +++ b/GraphBLAS/Test/GB_mex_test11.c @@ -9,8 +9,8 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_file.h" -#include "GB_jitifyer.h" +#include "../Source/jitifyer/GB_file.h" +#include "../Source/jitifyer/GB_jitifyer.h" #define USAGE "GB_mex_test11" @@ -308,7 +308,11 @@ if (jit_enabled) OK (GxB_get (GxB_JIT_CACHE_PATH, &s)) ; printf ("new cache path: [%s]\n", s) ; CHECK (MATCH (s, "/tmp/grb_cache")) ; - printf ("\nat %d cache path: [%s]\n", __LINE__, save_cache) ; + + OK (GxB_set (GxB_JIT_CACHE_PATH, "/tmp/::tmp/grb_@cache \\gunk??")) ; + OK (GxB_get (GxB_JIT_CACHE_PATH, &s)) ; + printf ("\nfixed cache path: [%s]\n", s) ; + CHECK (MATCH (s, "/tmp/__tmp/grb__cache /gunk__")) ; expected = GrB_INVALID_VALUE ; ERR (GxB_Global_Option_set_CHAR (999, "gunk")) ; diff --git a/GraphBLAS/Test/GB_mex_test12.c b/GraphBLAS/Test/GB_mex_test12.c index 7e68a3a4d7..85519ae8ce 100644 --- a/GraphBLAS/Test/GB_mex_test12.c +++ b/GraphBLAS/Test/GB_mex_test12.c @@ -82,18 +82,6 @@ void mexFunction CHECK (!GB_as_if_full (NULL)) ; -#if 0 - //-------------------------------------------------------------------------- - // GRAPHBLAS_CACHE_PATH - //-------------------------------------------------------------------------- - - if (getenv ("GRAPHBLAS_CACHE_PATH") != NULL) - { - setenv ("GRAPHBLAS_CACHE_PATH", "/tmp/grbcache3", 0) ; - unsetenv ("GRAPHBLAS_CACHE_PATH") ; - } -#endif - //-------------------------------------------------------------------------- // finalize GraphBLAS //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Test/GB_mex_test16.c b/GraphBLAS/Test/GB_mex_test16.c index 998f111825..59a12474dd 100644 --- a/GraphBLAS/Test/GB_mex_test16.c +++ b/GraphBLAS/Test/GB_mex_test16.c @@ -9,7 +9,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_stringify.h" +#include "../Source/jitifyer/GB_stringify.h" #define USAGE "GB_mex_test16" diff --git a/GraphBLAS/Test/GB_mex_test18.c b/GraphBLAS/Test/GB_mex_test18.c index f586831b7f..09ef7e1918 100644 --- a/GraphBLAS/Test/GB_mex_test18.c +++ b/GraphBLAS/Test/GB_mex_test18.c @@ -9,7 +9,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_stringify.h" +#include "../Source/jitifyer/GB_stringify.h" #define USAGE "GB_mex_test18" diff --git a/GraphBLAS/Test/GB_mex_test2.c b/GraphBLAS/Test/GB_mex_test2.c index 9620949990..3ce314aa4b 100644 --- a/GraphBLAS/Test/GB_mex_test2.c +++ b/GraphBLAS/Test/GB_mex_test2.c @@ -11,7 +11,6 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_ij.h" #define USAGE "GB_mex_test2" @@ -128,15 +127,15 @@ void mexFunction GrB_Scalar_free_(&scalar) ; //-------------------------------------------------------------------------- - // GB_pslice + // GB_p_slice //-------------------------------------------------------------------------- int64_t Slice [30] ; - GB_pslice (Slice, A->p, n, 2, true) ; + GB_p_slice (Slice, A->p, n, 2, true) ; CHECK (Slice [0] == 0) ; int64_t Ap [11] = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 } ; - GB_pslice (Slice, Ap, 10, 10, false) ; + GB_p_slice (Slice, Ap, 10, 10, false) ; printf ("Slice: ") ; for (int k = 0 ; k <= 10 ; k++) printf (" %ld", Slice [k]) ; printf ("\n") ; diff --git a/GraphBLAS/Test/GB_mex_test20.c b/GraphBLAS/Test/GB_mex_test20.c index 5ace4a5299..1c247dd62c 100644 --- a/GraphBLAS/Test/GB_mex_test20.c +++ b/GraphBLAS/Test/GB_mex_test20.c @@ -9,7 +9,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_mask.h" +#include "../Source/mask/GB_mask.h" #define USAGE "GB_mex_test20" diff --git a/GraphBLAS/Test/GB_mex_test21.c b/GraphBLAS/Test/GB_mex_test21.c index ef7f4c58dc..8c42a5e545 100644 --- a/GraphBLAS/Test/GB_mex_test21.c +++ b/GraphBLAS/Test/GB_mex_test21.c @@ -20,7 +20,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_stringify.h" +#include "../Source/jitifyer/GB_stringify.h" #define USAGE "GB_mex_test21" #define HEADER fprintf (fp, "\n\n================================================================================\n") ; diff --git a/GraphBLAS/Test/GB_mex_test24.c b/GraphBLAS/Test/GB_mex_test24.c index 97c8ee834e..8cca6c6b87 100644 --- a/GraphBLAS/Test/GB_mex_test24.c +++ b/GraphBLAS/Test/GB_mex_test24.c @@ -9,7 +9,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_stringify.h" +#include "../Source/jitifyer/GB_stringify.h" #define USAGE "GB_mex_test24" diff --git a/GraphBLAS/Test/GB_mex_test25.c b/GraphBLAS/Test/GB_mex_test25.c index ab9ad206fd..6c2c28379c 100644 --- a/GraphBLAS/Test/GB_mex_test25.c +++ b/GraphBLAS/Test/GB_mex_test25.c @@ -9,7 +9,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_get_set.h" +#include "../Source/get_set/GB_get_set.h" #define USAGE "GB_mex_test25" diff --git a/GraphBLAS/Test/GB_mex_test26.c b/GraphBLAS/Test/GB_mex_test26.c index f85142470d..f53aa4cb12 100644 --- a/GraphBLAS/Test/GB_mex_test26.c +++ b/GraphBLAS/Test/GB_mex_test26.c @@ -346,9 +346,9 @@ void mexFunction CHECK (i == sizeof (mytype)) ; expected = GrB_INVALID_VALUE ; - ERR (GrB_Type_get_Scalar_(type, s_int32, GrB_OUTP)) ; - ERR (GrB_Type_get_String_(type, name, GrB_OUTP)) ; - ERR (GrB_Type_get_SIZE_(type, &size, GrB_OUTP)) ; + ERR (GrB_Type_get_Scalar_(type, s_int32, (GrB_Field) GrB_OUTP)) ; + ERR (GrB_Type_get_String_(type, name, (GrB_Field) GrB_OUTP)) ; + ERR (GrB_Type_get_SIZE_(type, &size, (GrB_Field) GrB_OUTP)) ; ERR (GrB_Type_get_SIZE_(GrB_FP32, &i, GrB_SIZE)) ; @@ -389,16 +389,16 @@ void mexFunction printf ("scalar storage: %d\n", i) ; CHECK (i == GrB_COLMAJOR) ; - OK (GrB_Scalar_get_INT32_(s, &i, GxB_FORMAT)) ; + OK (GrB_Scalar_get_INT32_(s, &i, (GrB_Field) GxB_FORMAT)) ; printf ("scalar storage: %d\n", i) ; CHECK (i == GxB_BY_COL) ; - OK (GrB_Scalar_get_INT32_(s, &i, GxB_SPARSITY_CONTROL)) ; + OK (GrB_Scalar_get_INT32_(s, &i, (GrB_Field) GxB_SPARSITY_CONTROL)) ; printf ("sparsity control: %d\n", i) ; CHECK (i == GxB_AUTO_SPARSITY) ; GxB_print (s_int32, 3) ; - OK (GrB_Scalar_get_INT32_(s_int32, &i, GxB_SPARSITY_STATUS)) ; + OK (GrB_Scalar_get_INT32_(s_int32, &i, (GrB_Field) GxB_SPARSITY_STATUS)) ; printf ("sparsity status: %d\n", i) ; CHECK (i == GxB_FULL) ; @@ -458,7 +458,7 @@ void mexFunction printf ("vector storage: %d\n", i) ; CHECK (i == GrB_COLMAJOR) ; - OK (GrB_Vector_get_INT32_(v, &i, GxB_FORMAT)) ; + OK (GrB_Vector_get_INT32_(v, &i, (GrB_Field) GxB_FORMAT)) ; printf ("vector storage: %d\n", i) ; CHECK (i == GxB_BY_COL) ; @@ -466,14 +466,14 @@ void mexFunction OK (GrB_Vector_get_INT32_(v, &i, GrB_STORAGE_ORIENTATION_HINT)) ; CHECK (i == GrB_COLMAJOR) ; - OK (GrB_Vector_get_INT32_(v, &i, GxB_SPARSITY_CONTROL)) ; + OK (GrB_Vector_get_INT32_(v, &i, (GrB_Field) GxB_SPARSITY_CONTROL)) ; printf ("sparsity control: %d\n", i) ; CHECK (i == GxB_AUTO_SPARSITY) ; OK (GrB_assign (v, NULL, NULL, 1, GrB_ALL, 10, NULL)) ; GxB_print (v, 3) ; - OK (GrB_Vector_get_INT32_(v, &i, GxB_SPARSITY_STATUS)) ; + OK (GrB_Vector_get_INT32_(v, &i, (GrB_Field) GxB_SPARSITY_STATUS)) ; printf ("sparsity status: %d\n", i) ; CHECK (i == GxB_FULL) ; @@ -482,33 +482,33 @@ void mexFunction ERR (GrB_Vector_get_SIZE_(v, &size, 0)) ; fvalue = -1 ; - OK (GrB_Vector_get_Scalar_(v, s_fp32, GxB_BITMAP_SWITCH)) ; + OK (GrB_Vector_get_Scalar_(v, s_fp32, (GrB_Field) GxB_BITMAP_SWITCH)) ; OK (GrB_Scalar_extractElement_FP32_(&fvalue, s_fp32)) ; printf ("bitmap switch: %g\n", fvalue) ; - CHECK (abs (fvalue - 0.04) < 1e-6) ; + CHECK (fabs (fvalue - 0.04) < 1e-6) ; OK (GrB_Scalar_setElement_FP32_(s_fp32, 0.5)) ; - OK (GrB_Vector_set_Scalar_(v, s_fp32, GxB_BITMAP_SWITCH)) ; - OK (GrB_Vector_get_Scalar_(v, s_fp64, GxB_BITMAP_SWITCH)) ; + OK (GrB_Vector_set_Scalar_(v, s_fp32, (GrB_Field) GxB_BITMAP_SWITCH)) ; + OK (GrB_Vector_get_Scalar_(v, s_fp64, (GrB_Field) GxB_BITMAP_SWITCH)) ; OK (GrB_Scalar_extractElement_FP64_(&dvalue, s_fp64)) ; printf ("bitmap switch: %g\n", dvalue) ; - CHECK (abs (dvalue - 0.5) < 1e-6) ; + CHECK (fabs (dvalue - 0.5) < 1e-6) ; OK (GrB_Scalar_setElement_INT32_(s_int32, GxB_BITMAP)) ; - OK (GrB_Vector_set_Scalar_(v, s_int32, GxB_SPARSITY_CONTROL)) ; + OK (GrB_Vector_set_Scalar_(v, s_int32, (GrB_Field) GxB_SPARSITY_CONTROL)) ; GxB_print (v, 3) ; - OK (GrB_Vector_get_INT32_(v, &i, GxB_SPARSITY_STATUS)) ; + OK (GrB_Vector_get_INT32_(v, &i, (GrB_Field) GxB_SPARSITY_STATUS)) ; printf ("sparsity status: %d\n", i) ; CHECK (i == GxB_BITMAP) ; - OK (GrB_Vector_set_INT32_(v, GxB_SPARSE, GxB_SPARSITY_CONTROL)) ; - OK (GrB_Vector_get_INT32_(v, &i, GxB_SPARSITY_STATUS)) ; + OK (GrB_Vector_set_INT32_(v, GxB_SPARSE, (GrB_Field) GxB_SPARSITY_CONTROL)) ; + OK (GrB_Vector_get_INT32_(v, &i, (GrB_Field) GxB_SPARSITY_STATUS)) ; printf ("sparsity status: %d\n", i) ; CHECK (i == GxB_SPARSE) ; - ERR (GrB_Vector_set_Scalar_(v, s_int32, GxB_HYPER_SWITCH)) ; - ERR (GrB_Vector_get_Scalar_(v, s_int32, GxB_HYPER_SWITCH)) ; + ERR (GrB_Vector_set_Scalar_(v, s_int32, (GrB_Field) GxB_HYPER_SWITCH)) ; + ERR (GrB_Vector_get_Scalar_(v, s_int32, (GrB_Field) GxB_HYPER_SWITCH)) ; OK (GrB_Vector_set_String_(v, "vector name", GrB_NAME)) ; OK (GrB_Vector_get_String_(v, name, GrB_NAME)) ; @@ -527,7 +527,7 @@ void mexFunction expected = GrB_EMPTY_OBJECT ; OK (GrB_Scalar_clear (s_int32)) ; - ERR (GrB_Vector_set_Scalar_(v, s_int32, GxB_FORMAT)) ; + ERR (GrB_Vector_set_Scalar_(v, s_int32, (GrB_Field) GxB_FORMAT)) ; //-------------------------------------------------------------------------- // GrB_Matrix get/set @@ -560,18 +560,18 @@ void mexFunction printf ("matrix storage: %d\n", i) ; CHECK (i == GrB_COLMAJOR) ; - OK (GrB_Matrix_get_INT32_(A, &i, GxB_FORMAT)) ; + OK (GrB_Matrix_get_INT32_(A, &i, (GrB_Field) GxB_FORMAT)) ; printf ("matrix storage: %d\n", i) ; CHECK (i == GxB_BY_COL) ; - OK (GrB_Matrix_get_INT32_(A, &i, GxB_SPARSITY_CONTROL)) ; + OK (GrB_Matrix_get_INT32_(A, &i, (GrB_Field) GxB_SPARSITY_CONTROL)) ; printf ("sparsity control: %d\n", i) ; CHECK (i == GxB_AUTO_SPARSITY) ; OK (GrB_assign (A, NULL, NULL, 1, GrB_ALL, 5, GrB_ALL, 5, NULL)) ; GxB_print (A, 3) ; - OK (GrB_Matrix_get_INT32_(A, &i, GxB_SPARSITY_STATUS)) ; + OK (GrB_Matrix_get_INT32_(A, &i, (GrB_Field) GxB_SPARSITY_STATUS)) ; printf ("sparsity status: %d\n", i) ; CHECK (i == GxB_FULL) ; @@ -580,32 +580,32 @@ void mexFunction ERR (GrB_Matrix_get_SIZE_(A, &size, 0)) ; fvalue = -1 ; - OK (GrB_Matrix_get_Scalar_(A, s_fp32, GxB_BITMAP_SWITCH)) ; + OK (GrB_Matrix_get_Scalar_(A, s_fp32, (GrB_Field) GxB_BITMAP_SWITCH)) ; OK (GrB_Scalar_extractElement_FP32_(&fvalue, s_fp32)) ; printf ("bitmap switch: %g\n", fvalue) ; - CHECK (abs (fvalue - 0.04) < 1e-6) ; + CHECK (fabs (fvalue - 0.08) < 1e-6) ; OK (GrB_Scalar_setElement_FP32_(s_fp32, 0.5)) ; - OK (GrB_Matrix_set_Scalar_(A, s_fp32, GxB_BITMAP_SWITCH)) ; - OK (GrB_Matrix_get_Scalar_(A, s_fp64, GxB_BITMAP_SWITCH)) ; + OK (GrB_Matrix_set_Scalar_(A, s_fp32, (GrB_Field) GxB_BITMAP_SWITCH)) ; + OK (GrB_Matrix_get_Scalar_(A, s_fp64, (GrB_Field) GxB_BITMAP_SWITCH)) ; OK (GrB_Scalar_extractElement_FP64_(&dvalue, s_fp64)) ; printf ("bitmap switch: %g\n", dvalue) ; - CHECK (abs (dvalue - 0.5) < 1e-6) ; + CHECK (fabs (dvalue - 0.5) < 1e-6) ; OK (GrB_Scalar_setElement_INT32_(s_int32, GxB_BITMAP)) ; - OK (GrB_Matrix_set_Scalar_(A, s_int32, GxB_SPARSITY_CONTROL)) ; + OK (GrB_Matrix_set_Scalar_(A, s_int32, (GrB_Field) GxB_SPARSITY_CONTROL)) ; GxB_print (A, 3) ; - OK (GrB_Matrix_get_INT32_(A, &i, GxB_SPARSITY_STATUS)) ; + OK (GrB_Matrix_get_INT32_(A, &i, (GrB_Field) GxB_SPARSITY_STATUS)) ; printf ("sparsity status: %d\n", i) ; CHECK (i == GxB_BITMAP) ; OK (GrB_Scalar_setElement_FP32_(s_fp32, 0.25)) ; - OK (GrB_Matrix_set_Scalar_(A, s_fp32, GxB_HYPER_SWITCH)) ; - OK (GrB_Matrix_get_Scalar_(A, s_fp64, GxB_HYPER_SWITCH)) ; + OK (GrB_Matrix_set_Scalar_(A, s_fp32, (GrB_Field) GxB_HYPER_SWITCH)) ; + OK (GrB_Matrix_get_Scalar_(A, s_fp64, (GrB_Field) GxB_HYPER_SWITCH)) ; OK (GrB_Scalar_extractElement_FP64_(&dvalue, s_fp64)) ; printf ("hyper switch: %g\n", dvalue) ; - CHECK (abs (dvalue - 0.25) < 1e-6) ; + CHECK (fabs (dvalue - 0.25) < 1e-6) ; OK (GrB_Matrix_get_SIZE_(A, &size, GrB_NAME)) ; CHECK (size == 1) ; @@ -635,26 +635,26 @@ void mexFunction OK (GrB_Matrix_set_INT32_(A, GrB_ROWMAJOR, GrB_STORAGE_ORIENTATION_HINT)) ; OK (GrB_Matrix_get_INT32_(A, &i, GrB_STORAGE_ORIENTATION_HINT)) ; CHECK (i == GrB_ROWMAJOR) ; - OK (GrB_Matrix_get_INT32_(A, &i, GxB_FORMAT)) ; + OK (GrB_Matrix_get_INT32_(A, &i, (GrB_Field) GxB_FORMAT)) ; CHECK (i == GxB_BY_ROW) ; GxB_print (A, 3) ; OK (GrB_Matrix_set_INT32_(A, GrB_COLMAJOR, GrB_STORAGE_ORIENTATION_HINT)) ; OK (GrB_Matrix_get_INT32_(A, &i, GrB_STORAGE_ORIENTATION_HINT)) ; CHECK (i == GrB_COLMAJOR) ; - OK (GrB_Matrix_get_INT32_(A, &i, GxB_FORMAT)) ; + OK (GrB_Matrix_get_INT32_(A, &i, (GrB_Field) GxB_FORMAT)) ; CHECK (i == GxB_BY_COL) ; GxB_print (A, 3) ; expected = GrB_INVALID_VALUE ; - ERR (GrB_Matrix_set_INT32_(A, 99, GxB_FORMAT)) ; + ERR (GrB_Matrix_set_INT32_(A, 99, (GrB_Field) GxB_FORMAT)) ; ERR (GrB_Matrix_set_INT32_(A, 99, 999)) ; ERR (GrB_Matrix_get_String_(A, defn, 999)) ; ERR (GrB_Matrix_get_Scalar(A, s_int32, 999)) ; expected = GrB_EMPTY_OBJECT ; OK (GrB_Scalar_clear (s_int32)) ; - ERR (GrB_Matrix_set_Scalar_(A, s_int32, GxB_FORMAT)) ; + ERR (GrB_Matrix_set_Scalar_(A, s_int32, (GrB_Field) GxB_FORMAT)) ; //-------------------------------------------------------------------------- // finalize GraphBLAS diff --git a/GraphBLAS/Test/GB_mex_test27.c b/GraphBLAS/Test/GB_mex_test27.c index 8a57ea678f..7df6838a33 100644 --- a/GraphBLAS/Test/GB_mex_test27.c +++ b/GraphBLAS/Test/GB_mex_test27.c @@ -21,22 +21,22 @@ OK (GrB_UnaryOp_get_String (op, name, GrB_NAME)) ; \ CHECK (MATCH (name, opname)) ; \ OK (GrB_UnaryOp_get_String (op, cname, GxB_JIT_C_NAME)) ; \ - printf ("%s: %s\n", name, cname) ; \ + printf ("%s: %s\n", name, cname) ; \ OK (GrB_UnaryOp_get_SIZE (op, &size, GrB_NAME)) ; \ CHECK (size == strlen (name) + 1) ; \ GrB_Info info2, info3 ; \ - info2 = GrB_UnaryOp_get_SIZE (op, &size, GrB_INP0_TYPE_STRING) ; \ - info3 = GrB_UnaryOp_get_String (op, name, GrB_INP0_TYPE_STRING) ; \ + info2 = GrB_UnaryOp_get_SIZE (op, &size, GrB_INP0_TYPE_STRING) ; \ + info3 = GrB_UnaryOp_get_String (op, name, GrB_INP0_TYPE_STRING) ; \ CHECK (info2 == info3) ; \ CHECK (size == strlen (name) + 1) ; \ if (info2 == GrB_NO_VALUE) { CHECK (size == 1) ; } \ - info2 = GrB_UnaryOp_get_SIZE (op, &size, GrB_INP1_TYPE_STRING) ; \ - info3 = GrB_UnaryOp_get_String (op, name, GrB_INP1_TYPE_STRING) ; \ + info2 = GrB_UnaryOp_get_SIZE (op, &size, GrB_INP1_TYPE_STRING) ; \ + info3 = GrB_UnaryOp_get_String (op, name, GrB_INP1_TYPE_STRING) ; \ CHECK (info2 == info3) ; \ CHECK (size == 1) ; \ CHECK (info2 == GrB_NO_VALUE) ; \ - info2 = GrB_UnaryOp_get_SIZE (op, &size, GrB_OUTP_TYPE_STRING) ; \ - info3 = GrB_UnaryOp_get_String (op, name, GrB_OUTP_TYPE_STRING) ; \ + info2 = GrB_UnaryOp_get_SIZE (op, &size, GrB_OUTP_TYPE_STRING) ; \ + info3 = GrB_UnaryOp_get_String (op, name, GrB_OUTP_TYPE_STRING) ; \ CHECK (info2 == info3) ; \ CHECK (size == strlen (name) + 1) ; \ if (info2 == GrB_NO_VALUE) { CHECK (size == 1) ; } \ @@ -417,7 +417,7 @@ void mexFunction expected = GrB_INVALID_VALUE ; ERR (GrB_UnaryOp_get_VOID_(GrB_LNOT, nothing, 0)) ; - OK (GrB_UnaryOp_new (&unop, myfunc, GrB_FP32, GrB_FP32)) ; + OK (GrB_UnaryOp_new (&unop, (GxB_unary_function) myfunc, GrB_FP32, GrB_FP32)) ; OK (GrB_UnaryOp_get_SIZE_(unop, &size, GrB_NAME)) ; CHECK (size == 1) ; OK (GrB_UnaryOp_get_SIZE_(unop, &size, GxB_JIT_C_NAME)) ; diff --git a/GraphBLAS/Test/GB_mex_test28.c b/GraphBLAS/Test/GB_mex_test28.c index cd7899b959..99de723d4f 100644 --- a/GraphBLAS/Test/GB_mex_test28.c +++ b/GraphBLAS/Test/GB_mex_test28.c @@ -21,23 +21,23 @@ size_t siz1, siz2, siz3 ; \ OK (GrB_BinaryOp_get_String (op, name, GrB_NAME)) ; \ CHECK (MATCH (name, opname)) ; \ - OK (GrB_BinaryOp_get_String (op, cname, GxB_JIT_C_NAME)) ; \ - printf ("%s: %s\n", name, cname) ; \ + OK (GrB_BinaryOp_get_String (op, cname, GxB_JIT_C_NAME)) ; \ + printf ("%s: %s\n", name, cname) ; \ OK (GrB_BinaryOp_get_SIZE (op, &size, GrB_NAME)) ; \ CHECK (size == strlen (name) + 1) ; \ GrB_Info info2, info3 ; \ - info2 = GrB_BinaryOp_get_SIZE (op, &siz1, GrB_INP0_TYPE_STRING) ; \ - info3 = GrB_BinaryOp_get_String (op, name, GrB_INP0_TYPE_STRING) ; \ + info2 = GrB_BinaryOp_get_SIZE (op, &siz1, GrB_INP0_TYPE_STRING) ; \ + info3 = GrB_BinaryOp_get_String (op, name, GrB_INP0_TYPE_STRING) ; \ CHECK (info2 == info3) ; \ CHECK (siz1 == strlen (name) + 1) ; \ if (info2 == GrB_NO_VALUE) { CHECK (siz1 == 1) ; } \ - info2 = GrB_BinaryOp_get_SIZE (op, &siz2, GrB_INP1_TYPE_STRING) ; \ - info3 = GrB_BinaryOp_get_String (op, name, GrB_INP1_TYPE_STRING) ; \ + info2 = GrB_BinaryOp_get_SIZE (op, &siz2, GrB_INP1_TYPE_STRING) ; \ + info3 = GrB_BinaryOp_get_String (op, name, GrB_INP1_TYPE_STRING) ; \ CHECK (info2 == info3) ; \ CHECK (siz2 == strlen (name) + 1) ; \ if (info2 == GrB_NO_VALUE) { CHECK (siz2 == 1) ; } \ - info2 = GrB_BinaryOp_get_SIZE (op, &siz3, GrB_OUTP_TYPE_STRING) ; \ - info3 = GrB_BinaryOp_get_String (op, name, GrB_OUTP_TYPE_STRING) ; \ + info2 = GrB_BinaryOp_get_SIZE (op, &siz3, GrB_OUTP_TYPE_STRING) ; \ + info3 = GrB_BinaryOp_get_String (op, name, GrB_OUTP_TYPE_STRING) ; \ CHECK (info2 == info3) ; \ CHECK (siz3 == strlen (name) + 1) ; \ if (info2 == GrB_NO_VALUE) { CHECK (siz3 == 1) ; } \ @@ -634,7 +634,8 @@ void mexFunction expected = GrB_INVALID_VALUE ; ERR (GrB_BinaryOp_get_VOID_(GrB_LAND, nothing, 0)) ; - OK (GrB_BinaryOp_new (&binop, myfunc, GrB_FP32, GrB_FP32, GrB_FP32)) ; + OK (GrB_BinaryOp_new (&binop, (GxB_binary_function) myfunc, + GrB_FP32, GrB_FP32, GrB_FP32)) ; OK (GrB_BinaryOp_get_SIZE_(binop, &size, GrB_NAME)) ; CHECK (size == 1) ; OK (GrB_BinaryOp_get_SIZE_(binop, &size, GxB_JIT_C_NAME)) ; diff --git a/GraphBLAS/Test/GB_mex_test29.c b/GraphBLAS/Test/GB_mex_test29.c index 14a5b748e5..2dd2742697 100644 --- a/GraphBLAS/Test/GB_mex_test29.c +++ b/GraphBLAS/Test/GB_mex_test29.c @@ -94,7 +94,7 @@ void mexFunction CHECK (i == GrB_NONBLOCKING) ; i = -1 ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_MODE)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, (GrB_Field) GxB_MODE)) ; CHECK (i == GrB_NONBLOCKING) ; OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GrB_STORAGE_ORIENTATION_HINT)) ; @@ -140,66 +140,66 @@ void mexFunction ERR (GrB_Global_set_INT32_ (GrB_GLOBAL, 999, GrB_STORAGE_ORIENTATION_HINT)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_FORMAT)) ; - ERR (GrB_Global_set_INT32_ (GrB_GLOBAL, 999, GxB_FORMAT)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, (GrB_Field) GxB_FORMAT)) ; + ERR (GrB_Global_set_INT32_ (GrB_GLOBAL, 999, (GrB_Field) GxB_FORMAT)) ; CHECK (i == GxB_BY_COL) ; int32_t nth ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &nth, GxB_GLOBAL_NTHREADS)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &nth, (GrB_Field) GxB_GLOBAL_NTHREADS)) ; printf ("nthreads: %d\n", nth) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 2, GxB_GLOBAL_NTHREADS)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_GLOBAL_NTHREADS)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 2, (GrB_Field) GxB_GLOBAL_NTHREADS)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, (GrB_Field) GxB_GLOBAL_NTHREADS)) ; CHECK (i == 2) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, nth, GxB_GLOBAL_NTHREADS)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, nth, (GrB_Field) GxB_GLOBAL_NTHREADS)) ; int32_t gpu ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &gpu, GxB_GLOBAL_GPU_ID)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &gpu, (GrB_Field) GxB_GLOBAL_GPU_ID)) ; printf ("gpu id: %d\n", gpu) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 2, GxB_GLOBAL_GPU_ID)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_GLOBAL_GPU_ID)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 2, (GrB_Field) GxB_GLOBAL_GPU_ID)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, (GrB_Field) GxB_GLOBAL_GPU_ID)) ; CHECK (i == -1) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, gpu, GxB_GLOBAL_GPU_ID)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, gpu, (GrB_Field) GxB_GLOBAL_GPU_ID)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_BURBLE)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, (GrB_Field) GxB_BURBLE)) ; printf ("burble: %d\n", i) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, GxB_BURBLE)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, (GrB_Field) GxB_BURBLE)) ; OK (GrB_Matrix_new (&A, GrB_FP32, 3, 3)) ; OK (GrB_assign (A, NULL, NULL, 3, GrB_ALL, 3, GrB_ALL, 3, NULL)) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 0, GxB_BURBLE)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 0, (GrB_Field) GxB_BURBLE)) ; OK (GrB_assign (A, NULL, NULL, 4, GrB_ALL, 3, GrB_ALL, 3, NULL)) ; OK (GxB_print (A, 2)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_LIBRARY_OPENMP)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, (GrB_Field) GxB_LIBRARY_OPENMP)) ; CHECK (i == 1) ; int32_t onebase ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &onebase, GxB_PRINT_1BASED)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &onebase, (GrB_Field) GxB_PRINT_1BASED)) ; printf ("1based: %d\n", i) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, GxB_PRINT_1BASED)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, (GrB_Field) GxB_PRINT_1BASED)) ; OK (GxB_print (A, 2)) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, onebase, GxB_PRINT_1BASED)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_PRINT_1BASED)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, onebase, (GrB_Field) GxB_PRINT_1BASED)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, (GrB_Field) GxB_PRINT_1BASED)) ; CHECK (i == onebase) ; int32_t control ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &control, GxB_JIT_C_CONTROL)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &control, (GrB_Field) GxB_JIT_C_CONTROL)) ; printf ("jit ctrl: %d\n", control) ; for (int c = 0 ; c <= GxB_JIT_ON ; c++) { int32_t b ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, c, GxB_JIT_C_CONTROL)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &b, GxB_JIT_C_CONTROL)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, c, (GrB_Field) GxB_JIT_C_CONTROL)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &b, (GrB_Field) GxB_JIT_C_CONTROL)) ; CHECK (c == b) ; } - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, control, GxB_JIT_C_CONTROL)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, control, (GrB_Field) GxB_JIT_C_CONTROL)) ; int32_t use_cmake ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &use_cmake, GxB_JIT_USE_CMAKE)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &use_cmake, (GrB_Field) GxB_JIT_USE_CMAKE)) ; printf ("jit cmake %d\n", use_cmake) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, GxB_JIT_USE_CMAKE)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_JIT_USE_CMAKE)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, (GrB_Field) GxB_JIT_USE_CMAKE)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i,(GrB_Field) GxB_JIT_USE_CMAKE)) ; CHECK (i == 1) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, use_cmake, GxB_JIT_USE_CMAKE)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, use_cmake, (GrB_Field) GxB_JIT_USE_CMAKE)) ; expected = GrB_INVALID_VALUE ; ERR (GrB_Global_set_INT32_ (GrB_GLOBAL, 1, GrB_BLOCKING_MODE)) ; @@ -210,36 +210,36 @@ void mexFunction OK (GrB_Scalar_setElement_INT32 (s_int32, 1)) ; ERR (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_int32, GrB_BLOCKING_MODE)) ; - OK (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_int32, GxB_JIT_C_CONTROL)) ; + OK (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_int32, (GrB_Field) GxB_JIT_C_CONTROL)) ; OK (GrB_Scalar_setElement_INT32 (s_int32, 2)) ; - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_int32, GxB_JIT_C_CONTROL)) ; + OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_int32, (GrB_Field) GxB_JIT_C_CONTROL)) ; OK (GrB_Scalar_extractElement (&i, s_int32)) ; CHECK (i == 1) ; - OK (GrB_Global_set_INT32_ (GrB_GLOBAL, control, GxB_JIT_C_CONTROL)) ; - OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, GxB_JIT_C_CONTROL)) ; + OK (GrB_Global_set_INT32_ (GrB_GLOBAL, control, (GrB_Field) GxB_JIT_C_CONTROL)) ; + OK (GrB_Global_get_INT32_ (GrB_GLOBAL, &i, (GrB_Field) GxB_JIT_C_CONTROL)) ; CHECK (i == control) ; - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, GxB_HYPER_SWITCH)) ; + OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, (GrB_Field) GxB_HYPER_SWITCH)) ; OK (GrB_Scalar_extractElement (&dvalue, s_fp64)) ; printf ("hyper switch: %g\n", dvalue) ; OK (GrB_Scalar_setElement (s_fp64, 0.75)) ; - OK (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_fp64, GxB_HYPER_SWITCH)) ; + OK (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_fp64, (GrB_Field) GxB_HYPER_SWITCH)) ; OK (GrB_Scalar_clear (s_fp64)) ; - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, GxB_HYPER_SWITCH)) ; + OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, (GrB_Field) GxB_HYPER_SWITCH)) ; OK (GrB_Scalar_extractElement (&dvalue, s_fp64)) ; CHECK (dvalue == 0.75) ; OK (GrB_Scalar_setElement_FP64 (s_fp64, 0.75)) ; - OK (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_fp64, GxB_HYPER_SWITCH)) ; + OK (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_fp64, (GrB_Field) GxB_HYPER_SWITCH)) ; OK (GrB_Scalar_clear (s_fp64)) ; - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, GxB_CHUNK)) ; + OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, (GrB_Field) GxB_CHUNK)) ; OK (GrB_Scalar_extractElement (&dvalue, s_fp64)) ; printf ("chunk: %g\n", dvalue) ; OK (GrB_Scalar_setElement (s_fp64, 8901)) ; - OK (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_fp64, GxB_CHUNK)) ; + OK (GrB_Global_set_Scalar_ (GrB_GLOBAL, s_fp64, (GrB_Field) GxB_CHUNK)) ; OK (GrB_Scalar_clear (s_fp64)) ; - OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, GxB_CHUNK)) ; + OK (GrB_Global_get_Scalar_ (GrB_GLOBAL, s_fp64, (GrB_Field) GxB_CHUNK)) ; OK (GrB_Scalar_extractElement (&dvalue, s_fp64)) ; CHECK (dvalue == 8901) ; @@ -256,182 +256,182 @@ void mexFunction CHECK (MATCH (name, GxB_IMPLEMENTATION_NAME)) ; name [0] = 0 ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_LIBRARY_NAME)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, name, (GrB_Field) GxB_LIBRARY_NAME)) ; printf ("library name: [%s]\n", name) ; CHECK (MATCH (name, GxB_IMPLEMENTATION_NAME)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_LIBRARY_DATE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, name, (GrB_Field) GxB_LIBRARY_DATE)) ; printf ("library date: [%s]\n", name) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_LIBRARY_ABOUT)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_LIBRARY_ABOUT)) ; printf ("library about: [%s]\n", defn) ; CHECK (MATCH (defn, GxB_IMPLEMENTATION_ABOUT)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_LIBRARY_LICENSE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_LIBRARY_LICENSE)) ; printf ("library license: [%s]\n", defn) ; CHECK (MATCH (defn, GxB_IMPLEMENTATION_LICENSE)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_LIBRARY_COMPILE_DATE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, name, (GrB_Field) GxB_LIBRARY_COMPILE_DATE)) ; printf ("library compile date: [%s]\n", name) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_LIBRARY_COMPILE_TIME)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, name, (GrB_Field) GxB_LIBRARY_COMPILE_TIME)) ; printf ("library compile time: [%s]\n", name) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_LIBRARY_URL)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, name, (GrB_Field) GxB_LIBRARY_URL)) ; printf ("library url: [%s]\n", name) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_API_DATE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, name, (GrB_Field) GxB_API_DATE)) ; printf ("api date: [%s]\n", name) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_API_ABOUT)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_API_ABOUT)) ; printf ("api about: [%s]\n", defn) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, name, GxB_API_URL)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, name, (GrB_Field) GxB_API_URL)) ; printf ("api url: [%s]\n", name) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_COMPILER_NAME)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_COMPILER_NAME)) ; printf ("compiler: [%s]\n", defn) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_JIT_C_COMPILER_NAME)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_COMPILER_NAME)) ; printf ("JIT C compiler: [%s]\n", defn) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, "cc", GxB_JIT_C_COMPILER_NAME)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_COMPILER_NAME)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, "cc", (GrB_Field) GxB_JIT_C_COMPILER_NAME)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_COMPILER_NAME)) ; CHECK (MATCH (defn2, "cc")) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, GxB_JIT_C_COMPILER_NAME)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_COMPILER_NAME)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_COMPILER_NAME)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_COMPILER_NAME)) ; CHECK (MATCH (defn2, defn)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_JIT_C_COMPILER_FLAGS)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_COMPILER_FLAGS)) ; printf ("JIT C compiler flags: [%s]\n", defn) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, "-O", GxB_JIT_C_COMPILER_FLAGS)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_COMPILER_FLAGS)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, "-O", (GrB_Field) GxB_JIT_C_COMPILER_FLAGS)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_COMPILER_FLAGS)) ; CHECK (MATCH (defn2, "-O")) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, GxB_JIT_C_COMPILER_FLAGS)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_COMPILER_FLAGS)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_COMPILER_FLAGS)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_COMPILER_FLAGS)) ; CHECK (MATCH (defn2, defn)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_JIT_C_LINKER_FLAGS)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_LINKER_FLAGS)) ; printf ("JIT C link flags: [%s]\n", defn) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, "-stuff", GxB_JIT_C_LINKER_FLAGS)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_LINKER_FLAGS)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, "-stuff", (GrB_Field) GxB_JIT_C_LINKER_FLAGS)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_LINKER_FLAGS)) ; CHECK (MATCH (defn2, "-stuff")) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, GxB_JIT_C_LINKER_FLAGS)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_LINKER_FLAGS)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_LINKER_FLAGS)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_LINKER_FLAGS)) ; CHECK (MATCH (defn2, defn)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_JIT_C_LIBRARIES)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_LIBRARIES)) ; printf ("JIT C libraries: [%s]\n", defn) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, "-lm", GxB_JIT_C_LIBRARIES)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_LIBRARIES)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, "-lm", (GrB_Field) GxB_JIT_C_LIBRARIES)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_LIBRARIES)) ; CHECK (MATCH (defn2, "-lm")) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, GxB_JIT_C_LIBRARIES)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_LIBRARIES)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_LIBRARIES)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_LIBRARIES)) ; CHECK (MATCH (defn2, defn)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_JIT_C_CMAKE_LIBS)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_CMAKE_LIBS)) ; printf ("JIT C cmake libs: [%s]\n", defn) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, "m;dl", GxB_JIT_C_CMAKE_LIBS)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_CMAKE_LIBS)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, "m;dl", (GrB_Field) GxB_JIT_C_CMAKE_LIBS)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_CMAKE_LIBS)) ; CHECK (MATCH (defn2, "m;dl")) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, GxB_JIT_C_CMAKE_LIBS)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_CMAKE_LIBS)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_CMAKE_LIBS)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_CMAKE_LIBS)) ; CHECK (MATCH (defn2, defn)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_JIT_C_PREFACE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_PREFACE)) ; printf ("JIT C preface: [%s]\n", defn) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, "// stuff", GxB_JIT_C_PREFACE)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_PREFACE)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, "// stuff", (GrB_Field) GxB_JIT_C_PREFACE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_PREFACE)) ; CHECK (MATCH (defn2, "// stuff")) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, GxB_JIT_C_PREFACE)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_C_PREFACE)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_C_PREFACE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_C_PREFACE)) ; CHECK (MATCH (defn2, defn)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_JIT_CUDA_PREFACE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_CUDA_PREFACE)) ; printf ("JIT CUDA preface: [%s]\n", defn) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, "// cu", GxB_JIT_CUDA_PREFACE)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_CUDA_PREFACE)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, "// cu", (GrB_Field) GxB_JIT_CUDA_PREFACE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_CUDA_PREFACE)) ; CHECK (MATCH (defn2, "// cu")) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, GxB_JIT_CUDA_PREFACE)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_CUDA_PREFACE)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_CUDA_PREFACE)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_CUDA_PREFACE)) ; CHECK (MATCH (defn2, defn)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_JIT_ERROR_LOG)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_ERROR_LOG)) ; printf ("JIT error log: [%s]\n", defn) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, "errlog.txt", GxB_JIT_ERROR_LOG)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_ERROR_LOG)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, "errlog.txt", (GrB_Field) GxB_JIT_ERROR_LOG)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_ERROR_LOG)) ; CHECK (MATCH (defn2, "errlog.txt")) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, GxB_JIT_ERROR_LOG)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_ERROR_LOG)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_ERROR_LOG)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_ERROR_LOG)) ; CHECK (MATCH (defn2, defn)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, GxB_JIT_CACHE_PATH)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_CACHE_PATH)) ; printf ("JIT cache: [%s]\n", defn) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, "/tmp/stuff", GxB_JIT_CACHE_PATH)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_CACHE_PATH)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, "/tmp/stuff", (GrB_Field) GxB_JIT_CACHE_PATH)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_CACHE_PATH)) ; CHECK (MATCH (defn2, "/tmp/stuff")) ; - OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, GxB_JIT_CACHE_PATH)) ; - OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, GxB_JIT_CACHE_PATH)) ; + OK (GrB_Global_set_String_ (GrB_GLOBAL, defn, (GrB_Field) GxB_JIT_CACHE_PATH)) ; + OK (GrB_Global_get_String_ (GrB_GLOBAL, defn2, (GrB_Field) GxB_JIT_CACHE_PATH)) ; CHECK (MATCH (defn2, defn)) ; system ("ls /tmp/stuff ; rm -rf /tmp/stuff") ; ERR (GrB_Global_set_String_ (GrB_GLOBAL, defn, GrB_NAME)) ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_JIT_CACHE_PATH)) ; + OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, (GrB_Field) GxB_JIT_CACHE_PATH)) ; CHECK (size == strlen (defn) + 1) ; double sw [GxB_NBITMAP_SWITCH] ; double s2 [GxB_NBITMAP_SWITCH] ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_BITMAP_SWITCH)) ; + OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, (GrB_Field) GxB_BITMAP_SWITCH)) ; CHECK (size == sizeof (double) * GxB_NBITMAP_SWITCH) ; - OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) sw, GxB_BITMAP_SWITCH)) ; - OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) s2, GxB_BITMAP_SWITCH)) ; + OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) sw, (GrB_Field) GxB_BITMAP_SWITCH)) ; + OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) s2, (GrB_Field) GxB_BITMAP_SWITCH)) ; for (int k = 0 ; k < GxB_NBITMAP_SWITCH ; k++) { printf ("bitmap switch [%d] = %g\n", k, sw [k]) ; sw [k] = ((double) k) / 8. ; } - OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) sw, GxB_BITMAP_SWITCH, + OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) sw, (GrB_Field) GxB_BITMAP_SWITCH, size)) ; memset (sw, 0, size) ; - OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) sw, GxB_BITMAP_SWITCH)) ; + OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) sw, (GrB_Field) GxB_BITMAP_SWITCH)) ; for (int k = 0 ; k < GxB_NBITMAP_SWITCH ; k++) { CHECK (sw [k] == ((double) k) / 8.) ; } - OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, GxB_BITMAP_SWITCH, + OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, (GrB_Field) GxB_BITMAP_SWITCH, 0)) ; - OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) sw, GxB_BITMAP_SWITCH)) ; + OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) sw, (GrB_Field) GxB_BITMAP_SWITCH)) ; for (int k = 0 ; k < GxB_NBITMAP_SWITCH ; k++) { CHECK (sw [k] == s2 [k]) ; } - ERR (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) s2, GxB_BITMAP_SWITCH, + ERR (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) s2, (GrB_Field) GxB_BITMAP_SWITCH, 1)) ; ERR (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, 0, 0)) ; - ERR (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, GxB_PRINTF, 0)) ; - ERR (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, GxB_FLUSH, 0)) ; - OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) myprintf, GxB_PRINTF, + ERR (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, (GrB_Field) GxB_PRINTF, 0)) ; + ERR (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, (GrB_Field) GxB_FLUSH, 0)) ; + OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) myprintf, (GrB_Field) GxB_PRINTF, sizeof (GB_printf_function_t))) ; - OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) myflush, GxB_FLUSH, + OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) myflush, (GrB_Field) GxB_FLUSH, sizeof (GB_flush_function_t))) ; OK (GxB_print (s_int32, 3)) ; - OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) mexPrintf, GxB_PRINTF, + OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) mexPrintf, (GrB_Field) GxB_PRINTF, sizeof (GB_printf_function_t))) ; - OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, GxB_FLUSH, + OK (GrB_Global_set_VOID_ (GrB_GLOBAL, (void *) NULL, (GrB_Field) GxB_FLUSH, sizeof (GB_flush_function_t))) ; OK (GxB_print (s_int32, 3)) ; int32_t cv [3] ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_COMPILER_VERSION)) ; + OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, (GrB_Field) GxB_COMPILER_VERSION)) ; CHECK (size == sizeof (int32_t) * 3) ; OK (GrB_Global_get_VOID_ (GrB_GLOBAL, (void *) cv, - GxB_COMPILER_VERSION)) ; + (GrB_Field) GxB_COMPILER_VERSION)) ; for (int k = 0 ; k < 3 ; k++) { @@ -439,22 +439,22 @@ void mexFunction } void *f = NULL ; - OK (GrB_Global_get_VOID_(GrB_GLOBAL, (void *) &f, GxB_MALLOC_FUNCTION)) ; + OK (GrB_Global_get_VOID_(GrB_GLOBAL, (void *) &f, (GrB_Field) GxB_MALLOC_FUNCTION)) ; CHECK (f == mxMalloc) ; - OK (GrB_Global_get_VOID_(GrB_GLOBAL, (void *) &f, GxB_REALLOC_FUNCTION)) ; + OK (GrB_Global_get_VOID_(GrB_GLOBAL, (void *) &f, (GrB_Field) GxB_REALLOC_FUNCTION)) ; CHECK (f == mxRealloc) ; - OK (GrB_Global_get_VOID (GrB_GLOBAL, (void *) &f, GxB_CALLOC_FUNCTION)) ; + OK (GrB_Global_get_VOID (GrB_GLOBAL, (void *) &f, (GrB_Field) GxB_CALLOC_FUNCTION)) ; CHECK (f == mxCalloc) ; - OK (GrB_Global_get_VOID (GrB_GLOBAL, (void *) &f, GxB_FREE_FUNCTION)) ; + OK (GrB_Global_get_VOID (GrB_GLOBAL, (void *) &f, (GrB_Field) GxB_FREE_FUNCTION)) ; CHECK (f == mxFree) ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_MALLOC_FUNCTION)) ; + OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, (GrB_Field) GxB_MALLOC_FUNCTION)) ; CHECK (size == sizeof (void *)) ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_REALLOC_FUNCTION)) ; + OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, (GrB_Field) GxB_REALLOC_FUNCTION)) ; CHECK (size == sizeof (void *)) ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_CALLOC_FUNCTION)) ; + OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, (GrB_Field) GxB_CALLOC_FUNCTION)) ; CHECK (size == sizeof (void *)) ; - OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, GxB_FREE_FUNCTION)) ; + OK (GrB_Global_get_SIZE_ (GrB_GLOBAL, &size, (GrB_Field) GxB_FREE_FUNCTION)) ; CHECK (size == sizeof (void *)) ; //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Test/GB_mex_test3.c b/GraphBLAS/Test/GB_mex_test3.c index e860714c9e..dd26bda547 100644 --- a/GraphBLAS/Test/GB_mex_test3.c +++ b/GraphBLAS/Test/GB_mex_test3.c @@ -11,7 +11,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_bitmap_assign_methods.h" +#include "../Source/assign/GB_bitmap_assign_methods.h" #define USAGE "GB_mex_test3" @@ -669,16 +669,16 @@ void mexFunction CHECK (GB_unop_one (GB_UDT_code) == NULL) ; //-------------------------------------------------------------------------- - // GB_check_if_iso + // GB_all_entries_are_iso //-------------------------------------------------------------------------- - CHECK (!GB_check_if_iso (NULL)) ; + CHECK (!GB_all_entries_are_iso (NULL)) ; OK (GrB_Matrix_new (&C, GrB_FP32, 10, 10)) ; OK (GrB_Matrix_assign_FP32 (C, NULL, NULL, 1, GrB_ALL, 4, GrB_ALL, 4, NULL)) ; OK (GxB_Matrix_Option_set (C, GxB_SPARSITY_CONTROL, GxB_SPARSE)) ; OK (GrB_Matrix_wait_(C, GrB_MATERIALIZE)) ; - CHECK (GB_check_if_iso (C)) ; + CHECK (GB_all_entries_are_iso (C)) ; GrB_Matrix_free_(&C) ; OK (GrB_Matrix_new (&C, My4x64, 10, 10)) ; @@ -689,15 +689,15 @@ void mexFunction my4x64_scalar.stuff [3] = 4 ; OK (GrB_Matrix_setElement_UDT (C, &my4x64_scalar, 3, 2)) ; OK (GrB_Matrix_setElement_UDT (C, &my4x64_scalar, 0, 0)) ; - CHECK (!GB_check_if_iso (C)) ; + CHECK (!GB_all_entries_are_iso (C)) ; OK (GrB_Matrix_wait_(C, GrB_MATERIALIZE)) ; - CHECK (GB_check_if_iso (C)) ; + CHECK (GB_all_entries_are_iso (C)) ; my4x64_scalar.stuff [0] = 4 ; OK (GrB_Matrix_setElement_UDT (C, &my4x64_scalar, 4, 4)) ; - CHECK (!GB_check_if_iso (C)) ; + CHECK (!GB_all_entries_are_iso (C)) ; OK (GrB_Matrix_wait_(C, GrB_MATERIALIZE)) ; - CHECK (!GB_check_if_iso (C)) ; + CHECK (!GB_all_entries_are_iso (C)) ; GrB_Matrix_free_(&C) ; //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Test/GB_mex_test30.c b/GraphBLAS/Test/GB_mex_test30.c index 2ca9209a69..6e60f60a39 100644 --- a/GraphBLAS/Test/GB_mex_test30.c +++ b/GraphBLAS/Test/GB_mex_test30.c @@ -16,31 +16,32 @@ #define GET_DEEP_COPY ; #define FREE_DEEP_COPY ; -#define GETOP(op,opname) \ -{ \ - size_t siz1, siz2, siz3 ; \ - OK (GrB_IndexUnaryOp_get_String (op, name, GrB_NAME)) ; \ - CHECK (MATCH (name, opname)) ; \ - OK (GrB_IndexUnaryOp_get_String (op, cname, GxB_JIT_C_NAME)) ; \ - printf ("%s: %s\n", name, cname) ; \ - OK (GrB_IndexUnaryOp_get_SIZE (op, &size, GrB_NAME)) ; \ - CHECK (size == strlen (name) + 1) ; \ - GrB_Info info2, info3 ; \ - info2 = GrB_IndexUnaryOp_get_SIZE (op, &siz1, GrB_INP0_TYPE_STRING) ; \ - info3 = GrB_IndexUnaryOp_get_String (op, name, GrB_INP0_TYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz1 == strlen (name) + 1) ; \ - if (info2 == GrB_NO_VALUE) { CHECK (siz1 == 1) ; } \ - info2 = GrB_IndexUnaryOp_get_SIZE (op, &siz2, GrB_INP1_TYPE_STRING) ; \ - info3 = GrB_IndexUnaryOp_get_String (op, name, GrB_INP1_TYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz2 == strlen (name) + 1) ; \ - if (info2 == GrB_NO_VALUE) { CHECK (siz2 == 1) ; } \ - info2 = GrB_IndexUnaryOp_get_SIZE (op, &siz3, GrB_OUTP_TYPE_STRING) ; \ - info3 = GrB_IndexUnaryOp_get_String (op, name, GrB_OUTP_TYPE_STRING) ; \ - CHECK (info2 == info3) ; \ - CHECK (siz3 == strlen (name) + 1) ; \ - if (info2 == GrB_NO_VALUE) { CHECK (siz3 == 1) ; } \ +#define GETOP(op,opname) \ +{ \ + size_t siz1, siz2, siz3 ; \ + OK (GrB_IndexUnaryOp_get_String (op, name, GrB_NAME)) ; \ + CHECK (MATCH (name, opname)) ; \ + OK (GrB_IndexUnaryOp_get_String (op, cname, \ + (GrB_Field) GxB_JIT_C_NAME)); \ + printf ("%s: %s\n", name, cname) ; \ + OK (GrB_IndexUnaryOp_get_SIZE (op, &size, GrB_NAME)) ; \ + CHECK (size == strlen (name) + 1) ; \ + GrB_Info info2, info3 ; \ + info2 = GrB_IndexUnaryOp_get_SIZE (op, &siz1, GrB_INP0_TYPE_STRING) ; \ + info3 = GrB_IndexUnaryOp_get_String (op, name, GrB_INP0_TYPE_STRING) ; \ + CHECK (info2 == info3) ; \ + CHECK (siz1 == strlen (name) + 1) ; \ + if (info2 == GrB_NO_VALUE) { CHECK (siz1 == 1) ; } \ + info2 = GrB_IndexUnaryOp_get_SIZE (op, &siz2, GrB_INP1_TYPE_STRING) ; \ + info3 = GrB_IndexUnaryOp_get_String (op, name, GrB_INP1_TYPE_STRING) ; \ + CHECK (info2 == info3) ; \ + CHECK (siz2 == strlen (name) + 1) ; \ + if (info2 == GrB_NO_VALUE) { CHECK (siz2 == 1) ; } \ + info2 = GrB_IndexUnaryOp_get_SIZE (op, &siz3, GrB_OUTP_TYPE_STRING) ; \ + info3 = GrB_IndexUnaryOp_get_String (op, name, GrB_OUTP_TYPE_STRING) ; \ + CHECK (info2 == info3) ; \ + CHECK (siz3 == strlen (name) + 1) ; \ + if (info2 == GrB_NO_VALUE) { CHECK (siz3 == 1) ; } \ } #define GETNAME(op) \ @@ -231,7 +232,8 @@ void mexFunction expected = GrB_INVALID_VALUE ; ERR (GrB_IndexUnaryOp_get_VOID_(GrB_TRIL, nothing, 0)) ; - OK (GrB_IndexUnaryOp_new (&op, myfunc, GrB_BOOL, GrB_FP32, GrB_FP32)) ; + OK (GrB_IndexUnaryOp_new (&op, (GxB_index_unary_function) myfunc, + GrB_BOOL, GrB_FP32, GrB_FP32)) ; OK (GrB_IndexUnaryOp_get_SIZE_(op, &size, GrB_NAME)) ; CHECK (size == 1) ; OK (GrB_IndexUnaryOp_get_SIZE_(op, &size, GxB_JIT_C_NAME)) ; diff --git a/GraphBLAS/Test/GB_mex_test31.c b/GraphBLAS/Test/GB_mex_test31.c index 53754b679c..bdb37871f2 100644 --- a/GraphBLAS/Test/GB_mex_test31.c +++ b/GraphBLAS/Test/GB_mex_test31.c @@ -277,7 +277,8 @@ void mexFunction ERR (GrB_Monoid_get_String_(GrB_MAX_MONOID_INT32, name, 999)) ; ERR (GrB_Monoid_get_VOID_(GrB_LAND_MONOID_BOOL, nothing, 0)) ; - OK (GrB_BinaryOp_new (&binop, myfunc, GrB_FP32, GrB_FP32, GrB_FP32)) ; + OK (GrB_BinaryOp_new (&binop, (GxB_binary_function) myfunc, + GrB_FP32, GrB_FP32, GrB_FP32)) ; OK (GrB_BinaryOp_set_String_(binop, "myfunc", GrB_NAME)) ; METHOD (GrB_BinaryOp_set_String (binop, MYFUNC_DEFN, GxB_JIT_C_DEFINITION)) ; diff --git a/GraphBLAS/Test/GB_mex_test32.c b/GraphBLAS/Test/GB_mex_test32.c index c35963840b..fd6f7075bf 100644 --- a/GraphBLAS/Test/GB_mex_test32.c +++ b/GraphBLAS/Test/GB_mex_test32.c @@ -2167,13 +2167,17 @@ void mexFunction ERR (GrB_Semiring_get_VOID_(GrB_LOR_LAND_SEMIRING_BOOL, nothing, 0)) ; - OK (GrB_BinaryOp_new (×, mytimes, GrB_FP32, GrB_FP32, GrB_FP32)) ; + OK (GrB_BinaryOp_new (×, + (GxB_binary_function) mytimes, GrB_FP32, GrB_FP32, GrB_FP32)) ; OK (GrB_BinaryOp_set_String_(times, "mytimes", GrB_NAME)) ; - METHOD (GrB_BinaryOp_set_String (times, MYTIMES_DEFN, GxB_JIT_C_DEFINITION)) ; + METHOD (GrB_BinaryOp_set_String (times, MYTIMES_DEFN, + (GrB_Field) GxB_JIT_C_DEFINITION)) ; - OK (GrB_BinaryOp_new (&add, myadd, GrB_FP32, GrB_FP32, GrB_FP32)) ; + OK (GrB_BinaryOp_new (&add, + (GxB_binary_function) myadd, GrB_FP32, GrB_FP32, GrB_FP32)) ; OK (GrB_BinaryOp_set_String_(add, "myadd", GrB_NAME)) ; - METHOD (GrB_BinaryOp_set_String (add, MYADD_DEFN, GxB_JIT_C_DEFINITION)) ; + METHOD (GrB_BinaryOp_set_String (add, MYADD_DEFN, + (GrB_Field) GxB_JIT_C_DEFINITION)) ; OK (GrB_Monoid_new_FP32 (&monoid, add, (float) 0.0)) ; OK (GrB_Monoid_get_SIZE_(monoid, &size, GrB_NAME)) ; diff --git a/GraphBLAS/Test/GB_mex_test33.c b/GraphBLAS/Test/GB_mex_test33.c index 74ef826d17..565fe7cc8c 100644 --- a/GraphBLAS/Test/GB_mex_test33.c +++ b/GraphBLAS/Test/GB_mex_test33.c @@ -112,7 +112,7 @@ void mexFunction OK (GxB_Context_get_String_ (GxB_CONTEXT_WORLD, name, GrB_NAME)) ; CHECK (MATCH (name, "GxB_CONTEXT_WORLD")) ; - ERR (GxB_Context_get_SIZE_ (GxB_CONTEXT_WORLD, &size, GxB_FORMAT)) ; + ERR (GxB_Context_get_SIZE_ (GxB_CONTEXT_WORLD, &size, (GrB_Field) GxB_FORMAT)) ; expected = GrB_INVALID_VALUE ; ERR (GxB_Context_get_VOID_ (GxB_CONTEXT_WORLD, nothing, 0)) ; diff --git a/GraphBLAS/Test/GB_mex_test34.c b/GraphBLAS/Test/GB_mex_test34.c index 4ec290378b..88b2bc1d7a 100644 --- a/GraphBLAS/Test/GB_mex_test34.c +++ b/GraphBLAS/Test/GB_mex_test34.c @@ -18,10 +18,10 @@ #define DGET(desc,value,field) \ { \ - OK (GrB_Descriptor_get_INT32 (desc, &i, field)) ; \ + OK (GrB_Descriptor_get_INT32 (desc, &i, (GrB_Field) (field))) ; \ CHECK (i == value) ; \ OK (GrB_Scalar_clear (s_int32)) ; \ - OK (GrB_Descriptor_get_Scalar (desc, s_int32, field)) ; \ + OK (GrB_Descriptor_get_Scalar (desc, s_int32, (GrB_Field) (field))) ; \ int32_t iscalar = -1 ; \ OK (GrB_Scalar_extractElement_INT32 (&iscalar, s_int32)) ; \ CHECK (iscalar == value) ; \ @@ -33,16 +33,16 @@ #define DSET(desc,value,field) \ { \ - OK (GrB_Descriptor_set_INT32 (desc, GrB_DEFAULT, field)) ; \ - OK (GrB_Descriptor_set_INT32 (desc, value, field)) ; \ + OK (GrB_Descriptor_set_INT32 (desc, GrB_DEFAULT, (GrB_Field) (field))) ; \ + OK (GrB_Descriptor_set_INT32 (desc, value, (GrB_Field) (field))) ; \ int32_t i2 ; \ - OK (GrB_Descriptor_get_INT32 (desc, &i2, field)) ; \ + OK (GrB_Descriptor_get_INT32 (desc, &i2, (GrB_Field) (field))) ; \ CHECK (i2 == value) ; \ - OK (GrB_Descriptor_set_INT32 (desc, GrB_DEFAULT, field)) ; \ + OK (GrB_Descriptor_set_INT32 (desc, GrB_DEFAULT, (GrB_Field) (field))) ; \ OK (GrB_Scalar_setElement_INT32 (s_int32, value)) ; \ - OK (GrB_Descriptor_set_Scalar (desc, s_int32, field)) ; \ + OK (GrB_Descriptor_set_Scalar (desc, s_int32, (GrB_Field) (field))) ; \ int32_t i3 ; \ - OK (GrB_Descriptor_get_INT32 (desc, &i2, field)) ; \ + OK (GrB_Descriptor_get_INT32 (desc, &i2, (GrB_Field) (field))) ; \ CHECK (i2 == value) ; \ } @@ -412,38 +412,38 @@ GrB_DESC_RSCT0T1 ; // GrB_REPLACE GrB_STRUCTURE GrB_COMP GrB_TRAN GrB_TRAN expected = GrB_INVALID_VALUE ; ERR (GrB_Descriptor_get_INT32_ (GrB_DESC_T1, &i, GrB_NAME)) ; - ERR (GrB_Descriptor_set_INT32_ (GrB_DESC_T1, GrB_REPLACE, GrB_OUTP)) ; - ERR (GrB_Descriptor_set_INT32 (NULL, GrB_REPLACE, GrB_OUTP)) ; - ERR (GrB_Descriptor_get_SIZE_ (GrB_DESC_T1, &size, GrB_OUTP)) ; - ERR (GrB_Descriptor_set_Scalar_ (GrB_DESC_T1, s_int32, GrB_MASK)) ; - ERR (GrB_Descriptor_set_Scalar (NULL, s_int32, GrB_MASK)) ; + ERR (GrB_Descriptor_set_INT32_ (GrB_DESC_T1, GrB_REPLACE, (GrB_Field) GrB_OUTP)) ; + ERR (GrB_Descriptor_set_INT32 (NULL, GrB_REPLACE, (GrB_Field) GrB_OUTP)) ; + ERR (GrB_Descriptor_get_SIZE_ (GrB_DESC_T1, &size, (GrB_Field) GrB_OUTP)) ; + ERR (GrB_Descriptor_set_Scalar_ (GrB_DESC_T1, s_int32, (GrB_Field) GrB_MASK)) ; + ERR (GrB_Descriptor_set_Scalar (NULL, s_int32, (GrB_Field) GrB_MASK)) ; ERR (GrB_Descriptor_set_INT32_ (desc, GrB_DEFAULT, GrB_NAME)) ; ERR (GrB_Descriptor_set_String_ (GrB_DESC_T1, "newname", GrB_NAME)) ; - char *err ; - ERR (GrB_Descriptor_set_INT32_ (desc, 999, GrB_OUTP)) ; + const char *err ; + ERR (GrB_Descriptor_set_INT32_ (desc, 999, (GrB_Field) GrB_OUTP)) ; OK (GrB_Descriptor_error (&err, desc)) ; printf ("error: %s\n\n", err) ; - ERR (GrB_Descriptor_set_INT32_ (desc, 998, GrB_MASK)) ; + ERR (GrB_Descriptor_set_INT32_ (desc, 998, (GrB_Field) GrB_MASK)) ; OK (GrB_Descriptor_error (&err, desc)) ; printf ("error: %s\n\n", err) ; - ERR (GrB_Descriptor_set_INT32_ (desc, 997, GrB_INP0)) ; + ERR (GrB_Descriptor_set_INT32_ (desc, 997, (GrB_Field) GrB_INP0)) ; OK (GrB_Descriptor_error (&err, desc)) ; printf ("error: %s\n\n", err) ; - ERR (GrB_Descriptor_set_INT32_ (desc, 996, GrB_INP1)) ; + ERR (GrB_Descriptor_set_INT32_ (desc, 996, (GrB_Field) GrB_INP1)) ; OK (GrB_Descriptor_error (&err, desc)) ; printf ("error: %s\n\n", err) ; - ERR (GrB_Descriptor_set_INT32_ (desc, 995, GxB_AxB_METHOD)) ; + ERR (GrB_Descriptor_set_INT32_ (desc, 995, (GrB_Field) GxB_AxB_METHOD)) ; OK (GrB_Descriptor_error (&err, desc)) ; printf ("error: %s\n\n", err) ; expected = GrB_EMPTY_OBJECT ; OK (GrB_Scalar_clear (s_int32)) ; - ERR (GrB_Descriptor_set_Scalar_ (desc, s_int32, GrB_MASK)) ; + ERR (GrB_Descriptor_set_Scalar_ (desc, s_int32, (GrB_Field) GrB_MASK)) ; expected = GrB_INVALID_VALUE ; ERR (GrB_Descriptor_set_VOID_ (desc, nothing, 0, 0)) ; diff --git a/GraphBLAS/Test/GB_mex_test35.c b/GraphBLAS/Test/GB_mex_test35.c index 76ede3b340..0708008f95 100644 --- a/GraphBLAS/Test/GB_mex_test35.c +++ b/GraphBLAS/Test/GB_mex_test35.c @@ -40,7 +40,8 @@ void mexFunction GrB_Type type = NULL ; uint8_t stuff [256] ; void *nothing = stuff ; - size_t size, blob_size = 0 ; + size_t size ; + GrB_Index blob_size = 0 ; char name [256] ; char defn [2048] ; int32_t code, i ; @@ -96,11 +97,11 @@ void mexFunction printf ("blob storage: %d\n", i) ; CHECK (i == GrB_COLMAJOR) ; - OK (GxB_Serialized_get_INT32_(blob, &i, GxB_FORMAT, blob_size)) ; + OK (GxB_Serialized_get_INT32_(blob, &i, (GrB_Field) GxB_FORMAT, blob_size)) ; printf ("blob storage: %d\n", i) ; CHECK (i == GxB_BY_COL) ; - OK (GxB_Serialized_get_INT32_(blob, &i, GxB_SPARSITY_CONTROL, blob_size)) ; + OK (GxB_Serialized_get_INT32_(blob, &i, (GrB_Field) GxB_SPARSITY_CONTROL, blob_size)) ; printf ("blob sparsity control: %d\n", i) ; CHECK (i == GxB_AUTO_SPARSITY) ; @@ -123,7 +124,7 @@ void mexFunction mxFree (blob) ; blob = NULL ; blob_size = 0 ; OK (GxB_Matrix_serialize (&blob, &blob_size, A, NULL)) ; - OK (GxB_Serialized_get_INT32_(blob, &i, GxB_SPARSITY_STATUS, blob_size)) ; + OK (GxB_Serialized_get_INT32_(blob, &i, (GrB_Field) GxB_SPARSITY_STATUS, blob_size)) ; printf ("blob sparsity status: %d\n", i) ; CHECK (i == GxB_FULL) ; @@ -148,13 +149,13 @@ void mexFunction ERR (GxB_Serialized_get_SIZE_(blob, &size, 0, blob_size)) ; fvalue = -1 ; - OK (GxB_Serialized_get_Scalar_(blob, s_fp32, GxB_BITMAP_SWITCH, + OK (GxB_Serialized_get_Scalar_(blob, s_fp32, (GrB_Field) GxB_BITMAP_SWITCH, blob_size)) ; OK (GrB_Scalar_extractElement_FP32_(&fvalue, s_fp32)) ; printf ("blob bitmap switch: %g\n", fvalue) ; - CHECK (abs (fvalue - 0.04) < 1e-6) ; + CHECK (fabs (fvalue - 0.08) < 1e-6) ; - OK (GrB_Matrix_set_INT32_(A, GxB_BITMAP, GxB_SPARSITY_CONTROL)) ; + OK (GrB_Matrix_set_INT32_(A, GxB_BITMAP, (GrB_Field) GxB_SPARSITY_CONTROL)) ; // free the blob and recreate it mxFree (blob) ; blob = NULL ; blob_size = 0 ; @@ -162,26 +163,26 @@ void mexFunction OK (GxB_Serialized_get_String_(A, name, GxB_JIT_C_NAME)) ; - OK (GxB_Serialized_get_INT32_(blob, &i, GxB_SPARSITY_STATUS, blob_size)) ; + OK (GxB_Serialized_get_INT32_(blob, &i, (GrB_Field) GxB_SPARSITY_STATUS, blob_size)) ; printf ("blob sparsity status: %d\n", i) ; CHECK (i == GxB_BITMAP) ; OK (GrB_Scalar_setElement_FP32_(s_fp32, 0.25)) ; - OK (GrB_Matrix_set_Scalar_(A, s_fp32, GxB_HYPER_SWITCH)) ; + OK (GrB_Matrix_set_Scalar_(A, s_fp32, (GrB_Field) GxB_HYPER_SWITCH)) ; // free the blob and recreate it mxFree (blob) ; blob = NULL ; blob_size = 0 ; OK (GxB_Matrix_serialize (&blob, &blob_size, A, NULL)) ; - OK (GxB_Serialized_get_Scalar_(blob, s_fp64, GxB_HYPER_SWITCH, blob_size)) ; + OK (GxB_Serialized_get_Scalar_(blob, s_fp64, (GrB_Field) GxB_HYPER_SWITCH, blob_size)) ; OK (GrB_Scalar_extractElement_FP64_(&dvalue, s_fp64)) ; printf ("blob hyper switch: %g\n", dvalue) ; - CHECK (abs (dvalue - 0.25) < 1e-6) ; + CHECK (fabs (dvalue - 0.25) < 1e-6) ; OK (GrB_Matrix_set_INT32_(A, GrB_ROWMAJOR, GrB_STORAGE_ORIENTATION_HINT)) ; OK (GrB_Matrix_get_INT32_(A, &i, GrB_STORAGE_ORIENTATION_HINT)) ; CHECK (i == GrB_ROWMAJOR) ; - OK (GrB_Matrix_get_INT32_(A, &i, GxB_FORMAT)) ; + OK (GrB_Matrix_get_INT32_(A, &i, (GrB_Field) GxB_FORMAT)) ; CHECK (i == GxB_BY_ROW) ; // GxB_print (A, 3) ; @@ -192,7 +193,7 @@ void mexFunction OK (GxB_Serialized_get_INT32_(blob, &i, GrB_STORAGE_ORIENTATION_HINT, blob_size)) ; CHECK (i == GrB_ROWMAJOR) ; - OK (GxB_Serialized_get_INT32_(blob, &i, GxB_FORMAT, blob_size)) ; + OK (GxB_Serialized_get_INT32_(blob, &i, (GrB_Field) GxB_FORMAT, blob_size)) ; CHECK (i == GxB_BY_ROW) ; // GxB_print (A, 3) ; @@ -205,11 +206,11 @@ void mexFunction expected = GrB_INVALID_OBJECT ; uint8_t *b = (uint8_t *) blob ; - ERR (GxB_Serialized_get_INT32_(blob, &i, GxB_FORMAT, 20)) ; + ERR (GxB_Serialized_get_INT32_(blob, &i, (GrB_Field) GxB_FORMAT, 20)) ; b [0]++ ; - ERR (GxB_Serialized_get_INT32_(blob, &i, GxB_FORMAT, blob_size)) ; + ERR (GxB_Serialized_get_INT32_(blob, &i, (GrB_Field) GxB_FORMAT, blob_size)) ; b [0]-- ; - OK (GxB_Serialized_get_INT32_(blob, &i, GxB_FORMAT, blob_size)) ; + OK (GxB_Serialized_get_INT32_(blob, &i, (GrB_Field) GxB_FORMAT, blob_size)) ; CHECK (i == GxB_BY_ROW) ; OK (GxB_Serialized_get_Scalar_(blob, s_int32, GrB_STORAGE_ORIENTATION_HINT, @@ -217,16 +218,16 @@ void mexFunction OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; CHECK (i == GrB_ROWMAJOR) ; - OK (GxB_Serialized_get_Scalar_(blob, s_int32, GxB_FORMAT, blob_size)) ; + OK (GxB_Serialized_get_Scalar_(blob, s_int32, (GrB_Field) GxB_FORMAT, blob_size)) ; OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; CHECK (i == GxB_BY_ROW) ; - OK (GxB_Serialized_get_Scalar_(blob, s_int32, GxB_SPARSITY_CONTROL, + OK (GxB_Serialized_get_Scalar_(blob, s_int32, (GrB_Field) GxB_SPARSITY_CONTROL, blob_size)) ; OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; CHECK (i == GxB_BITMAP) ; - OK (GxB_Serialized_get_Scalar_(blob, s_int32, GxB_SPARSITY_STATUS, + OK (GxB_Serialized_get_Scalar_(blob, s_int32, (GrB_Field) GxB_SPARSITY_STATUS, blob_size)) ; OK (GrB_Scalar_extractElement_INT32_(&i, s_int32)) ; CHECK (i == GxB_BITMAP) ; @@ -266,7 +267,7 @@ void mexFunction OK (GrB_Matrix_new (&A, type, 50, 50)) ; OK (GrB_Matrix_setElement (A, (void *) &one, 0, 0)) ; OK (GrB_Matrix_wait (A, GrB_MATERIALIZE)) ; - OK (GrB_Matrix_set_INT32_(A, GxB_HYPERSPARSE, GxB_SPARSITY_CONTROL)) ; + OK (GrB_Matrix_set_INT32_(A, GxB_HYPERSPARSE, (GrB_Field) GxB_SPARSITY_CONTROL)) ; OK (GrB_Matrix_set_String_(A, "A hyper", GrB_NAME)) ; OK (GrB_Matrix_get_String_(A, name, GrB_NAME)) ; diff --git a/GraphBLAS/Test/GB_mex_test36.c b/GraphBLAS/Test/GB_mex_test36.c new file mode 100644 index 0000000000..e2d9fa8b2f --- /dev/null +++ b/GraphBLAS/Test/GB_mex_test36.c @@ -0,0 +1,79 @@ +//------------------------------------------------------------------------------ +// GB_mex_test36: reduce a huge iso full matrix to a scalar +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +/* + m = 2^40 ; + n = 2^48 ; + H = pi * GrB.ones (m, n) ; + H + s = sum (H, 'all') ; +*/ + +#include "GB_mex.h" +#include "GB_mex_errors.h" + +#define USAGE "GB_mex_test36" +#define FREE_ALL ; +#define GET_DEEP_COPY ; +#define FREE_DEEP_COPY ; + +void mexFunction +( + int nargout, + mxArray *pargout [ ], + int nargin, + const mxArray *pargin [ ] +) +{ + + GrB_Info info ; + GrB_Matrix H = NULL ; + + //-------------------------------------------------------------------------- + // startup GraphBLAS + //-------------------------------------------------------------------------- + + bool malloc_debug = GB_mx_get_global (true) ; + int expected = GrB_SUCCESS ; + + //-------------------------------------------------------------------------- + // create and reduce a huge iso full matrix + //-------------------------------------------------------------------------- + + GrB_Index nrows = 1UL << 40 ; + GrB_Index ncols = 1UL << 48 ; + double pi = 3.141592653589793 ; + double sum = 0 ; + mexPrintf ( + "\nCreating huge iso-valued full matrix,\n" + "size m=2^40 by n=2^48, with all entries equal to pi:\n") ; + OK (GrB_Matrix_new (&H, GrB_FP64, nrows, ncols)) ; + OK (GrB_Matrix_assign_FP64 (H, NULL, NULL, pi, GrB_ALL, nrows, + GrB_ALL, ncols, NULL)) ; + OK (GrB_Matrix_wait (H, GrB_MATERIALIZE)) ; + OK (GxB_Matrix_fprint (H, "H", GxB_COMPLETE_VERBOSE, NULL)) ; + OK (GrB_Matrix_reduce_FP64 (&sum, NULL, GrB_PLUS_MONOID_FP64, H, NULL)) ; + OK (GrB_Matrix_free (&H)) ; + double truth = pi * ((double) nrows) * ((double) ncols) ; + mexPrintf ("\npi*m*n: %g\n", truth) ; + mexPrintf ("sum of all entries: %g\n", sum) ; + mexPrintf ("absolute error: %g\n", sum - truth) ; + double relerr = fabs (sum - truth) / truth ; + mexPrintf ("relative error: %g\n", relerr) ; + CHECK (relerr < 1e-14) ; + pargout [0] = mxCreateDoubleScalar (sum) ; + + //-------------------------------------------------------------------------- + // wrapup + //-------------------------------------------------------------------------- + + GB_mx_put_global (true) ; + printf ("\nGB_mex_test36: all tests passed\n\n") ; +} + diff --git a/GraphBLAS/Test/GB_mex_test5.c b/GraphBLAS/Test/GB_mex_test5.c index 7d48a17de0..cd6ff0cbd1 100644 --- a/GraphBLAS/Test/GB_mex_test5.c +++ b/GraphBLAS/Test/GB_mex_test5.c @@ -11,7 +11,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_serialize.h" +#include "../Source/serialize/GB_serialize.h" #define USAGE "GB_mex_test5" #define FREE_ALL ; diff --git a/GraphBLAS/Test/GB_mex_test6.c b/GraphBLAS/Test/GB_mex_test6.c index 128f6bc032..865f7a26bc 100644 --- a/GraphBLAS/Test/GB_mex_test6.c +++ b/GraphBLAS/Test/GB_mex_test6.c @@ -11,7 +11,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_serialize.h" +#include "../Source/serialize/GB_serialize.h" #define USAGE "GB_mex_test6" #define FREE_ALL ; diff --git a/GraphBLAS/Test/GB_mex_test7.c b/GraphBLAS/Test/GB_mex_test7.c index cffd16f7aa..fd5c0c78bb 100644 --- a/GraphBLAS/Test/GB_mex_test7.c +++ b/GraphBLAS/Test/GB_mex_test7.c @@ -44,15 +44,15 @@ void mexFunction OK (GrB_Scalar_new (&s, GrB_INT64)) ; OK (GrB_Scalar_setElement_INT64 (s, 0)) ; - OK (GrB_Global_set_Scalar (GrB_GLOBAL, s, GxB_HYPER_HASH)) ; + OK (GrB_Global_set_Scalar (GrB_GLOBAL, s, (GrB_Field) GxB_HYPER_HASH)) ; OK (GrB_Scalar_clear (s)) ; - OK (GrB_Global_get_Scalar (GrB_GLOBAL, s, GxB_HYPER_HASH)) ; + OK (GrB_Global_get_Scalar (GrB_GLOBAL, s, (GrB_Field) GxB_HYPER_HASH)) ; int64_t i = 1 ; OK (GrB_Scalar_extractElement_INT64 (&i, s)) ; CHECK (i == 0) ; OK (GrB_Matrix_new (&A, GrB_FP64, 100, 100)) ; - OK (GxB_Matrix_Option_set (A, GxB_SPARSITY_CONTROL, GxB_HYPERSPARSE)) ; + OK (GxB_Matrix_Option_set (A, GxB_SPARSITY_CONTROL, (GrB_Field) GxB_HYPERSPARSE)) ; OK (GrB_Matrix_setElement_FP64 (A, (double) 1.2, 0, 0)) ; OK (GrB_Matrix_wait (A, 1)) ; OK (GxB_Matrix_fprint (A, "A valid", 3, NULL)) ; @@ -297,9 +297,9 @@ void mexFunction //-------------------------------------------------------------------------- OK (GrB_Scalar_setElement_INT64 (s, 1024)) ; - OK (GrB_Global_set_Scalar (GrB_GLOBAL, s, GxB_HYPER_HASH)) ; + OK (GrB_Global_set_Scalar (GrB_GLOBAL, s, (GrB_Field) GxB_HYPER_HASH)) ; OK (GrB_Scalar_clear (s)) ; - OK (GrB_Global_get_Scalar (GrB_GLOBAL, s, GxB_HYPER_HASH)) ; + OK (GrB_Global_get_Scalar (GrB_GLOBAL, s, (GrB_Field) GxB_HYPER_HASH)) ; OK (GrB_Scalar_extractElement_INT64 (&i, s)) ; CHECK (i == 1024) ; OK (GrB_Scalar_free (&s)) ; diff --git a/GraphBLAS/Test/GB_mex_test9.c b/GraphBLAS/Test/GB_mex_test9.c index 1f5de9ce09..e3aff26c21 100644 --- a/GraphBLAS/Test/GB_mex_test9.c +++ b/GraphBLAS/Test/GB_mex_test9.c @@ -11,7 +11,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_stringify.h" +#include "../Source/jitifyer/GB_stringify.h" #define USAGE "GB_mex_test9" #define FREE_ALL ; diff --git a/GraphBLAS/Test/GB_mx_at_exit.c b/GraphBLAS/Test/GB_mx_at_exit.c index be54cfb2eb..26ab05f9e7 100644 --- a/GraphBLAS/Test/GB_mx_at_exit.c +++ b/GraphBLAS/Test/GB_mx_at_exit.c @@ -17,6 +17,8 @@ void GB_mx_at_exit ( void ) // Finalize GraphBLAS, clearing all JIT kernels and freeing the hash table. // MATLAB can only use GraphBLAS if GrB_init / GxB_init is called again. + GB_Global_persistent_set (mexMakeMemoryPersistent) ; + // The call to GB_Global_GrB_init_called_set allows GrB_init or GxB_init to // be called again. This is an extension to the spec that is possible with // SuiteSparse:GraphBLAS but not available via a documented function. diff --git a/GraphBLAS/Test/GB_mx_get_global.c b/GraphBLAS/Test/GB_mx_get_global.c index 2293698d51..9a11be6fc2 100644 --- a/GraphBLAS/Test/GB_mx_get_global.c +++ b/GraphBLAS/Test/GB_mx_get_global.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB_mex.h" -#include "GB_jitifyer.h" +#include "../Source/jitifyer/GB_jitifyer.h" bool GB_mx_get_global // true if doing malloc_debug ( @@ -169,7 +169,7 @@ bool GB_mx_get_global // true if doing malloc_debug GrB_Scalar s ; GrB_Scalar_new (&s, GrB_INT64) ; GrB_Scalar_setElement_INT64 (s, 8) ; - GrB_Global_set_Scalar (GrB_GLOBAL, s, GxB_HYPER_HASH) ; + GrB_Global_set_Scalar (GrB_GLOBAL, s, (GrB_Field) GxB_HYPER_HASH) ; GrB_Scalar_free (&s) ; //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Test/GB_mx_mxArray_to_Matrix.c b/GraphBLAS/Test/GB_mx_mxArray_to_Matrix.c index e34ea4131e..78a50be9f2 100644 --- a/GraphBLAS/Test/GB_mx_mxArray_to_Matrix.c +++ b/GraphBLAS/Test/GB_mx_mxArray_to_Matrix.c @@ -98,6 +98,7 @@ GrB_Matrix GB_mx_mxArray_to_Matrix // returns GraphBLAS version of A //-------------------------------------------------------------------------- bool A_iso = false ; + bool A_no_hyper_hash = false ; const mxArray *Amatrix = NULL ; GrB_Type atype_in, atype_out ; GB_Type_code atype_in_code, atype_out_code ; @@ -157,6 +158,21 @@ GrB_Matrix GB_mx_mxArray_to_Matrix // returns GraphBLAS version of A } } + // get the no_hyper_hash property (false if not present) + fieldnumber = mxGetFieldNumber (A_builtin, "no_hyper_hash") ; + if (fieldnumber >= 0) + { + mxArray *s = mxGetFieldByNumber (A_builtin, 0, fieldnumber) ; + if (mxIsLogicalScalar (s)) + { + A_no_hyper_hash = mxIsLogicalScalarTrue (s) ; + } + else + { + A_no_hyper_hash = (mxGetScalar (s) != 0) ; + } + } + } else { @@ -385,14 +401,17 @@ GrB_Matrix GB_mx_mxArray_to_Matrix // returns GraphBLAS version of A { // create a shallow cnz-by-1 matrix T to wrap the array MatlabX T = NULL ; - GrB_Type ttype = (atype_in_code == GB_UDT_code) ? GxB_FC64 : atype_in ; + GrB_Type ttype = (atype_in_code == GB_UDT_code) ? + GxB_FC64 : atype_in ; void *Tx = MatlabX ; GrB_Index nrows = anz, ncols = 1, Tx_size = anz * asize ; - GxB_Matrix_import_FullC (&T, ttype, nrows, ncols, &Tx, Tx_size, false, NULL) ; + GxB_Matrix_import_FullC (&T, ttype, nrows, ncols, &Tx, Tx_size, + false, NULL) ; GB_cast_array (A->x, code1, T, 1) ; // GB_cast_array (A->x, code1, MatlabX, code2, NULL, anz, 1) ; bool iso ; - GxB_Matrix_export_FullC (&T, &ttype, &nrows, &ncols, &Tx, &Tx_size, &iso, NULL) ; + GxB_Matrix_export_FullC (&T, &ttype, &nrows, &ncols, &Tx, + &Tx_size, &iso, NULL) ; } } @@ -438,6 +457,15 @@ GrB_Matrix GB_mx_mxArray_to_Matrix // returns GraphBLAS version of A ASSERT_MATRIX_OK (A, "got natural A from built-in", GB0) ; ASSERT (A->h == NULL) ; + //-------------------------------------------------------------------------- + // set A->no_hyper_hash + //-------------------------------------------------------------------------- + + if (A_no_hyper_hash) + { + A->no_hyper_hash = A_no_hyper_hash ; + } + //-------------------------------------------------------------------------- // look for CSR/CSC and hyper/non-hyper format //-------------------------------------------------------------------------- diff --git a/GraphBLAS/Test/GB_mx_semiring.c b/GraphBLAS/Test/GB_mx_semiring.c index dbd204a874..22e1e0be2c 100644 --- a/GraphBLAS/Test/GB_mx_semiring.c +++ b/GraphBLAS/Test/GB_mx_semiring.c @@ -8,7 +8,7 @@ //------------------------------------------------------------------------------ #include "GB_mex.h" -#include "GB_binop.h" +#include "../Source/binaryop/GB_binop.h" // See GraphBLAS/GraphBLAS/@GrB/private/util/gb_semiring.c for a description diff --git a/GraphBLAS/Test/GB_spec_compare.m b/GraphBLAS/Test/GB_spec_compare.m index 3af4f55b05..ec47b9fd3c 100644 --- a/GraphBLAS/Test/GB_spec_compare.m +++ b/GraphBLAS/Test/GB_spec_compare.m @@ -7,9 +7,12 @@ % some GraphBLAS method. C_mex = GB_mex_* (...) is the output of the % corresponding interface to the true GraphBLAS method, in C. -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 +err = 0 ; +anorm = 0 ; + % get the semiring identity if (nargin < 3) identity = 0 ; @@ -43,7 +46,7 @@ try % ok_matrix = isequalwithequalnans (C1.matrix, C2.matrix) ; - ok_matrix = isequal_roundoff (C1.matrix, C2.matrix, tol) ; + [ok_matrix, err, anorm] = isequal_roundoff (C1.matrix, C2.matrix, tol) ; catch ok_matrix = false ; end @@ -84,6 +87,9 @@ fprintf ('matrix: %d pattern: %d class %d\n', ... ok_matrix, ok_pattern, ok_class) ; norm (double (C1.matrix) - double (C2.matrix), 1) + if (~ok_matrix) + fprintf ('err: %g tol %g anorm %g\n', err, tol, anorm) ; + end end % with no output, just assert that ok is true diff --git a/GraphBLAS/Test/README.txt b/GraphBLAS/Test/README.txt index 9fa56d5242..8572966dd3 100644 --- a/GraphBLAS/Test/README.txt +++ b/GraphBLAS/Test/README.txt @@ -19,14 +19,16 @@ Requirements: the mex command must use a C compiler supporting C11. Microft Visual Studio does not support C11 so this test is not available on Windows unless you use another compiler. +First compile and install the libgraphblas or libgraphblas_matlab library. +For Linux or Mac, in the GraphBLAS/GraphBLAS folder, type + + make ; sudo make install + To run the tests, use the following command in this directory, in the -Octave Command Window: +MATLAB/Octave Command Window: make ; testall -If you get a linking problem on linux, add this directory to your -LD_LIBRARY_PATH, so that the libgraphblas.so can be found by the mexFunctions. - Longer tests can be done as well (this can take a whole day): testall (1) @@ -77,8 +79,8 @@ GB_mex.h include file for the mexFunctions Template/*.c a template file for building two mexFunctions: GB_mex_Matrix_build and GB_mex_Vector_build. -make.m compiles the Test interface to GraphBLAS (links with - dynamic -lgraphblas) +testmake.m compiles the Test interface to GraphBLAS (links with + dynamic -lgraphblas_matlab or -lgraphblas) debug_off.m turns off malloc debugging debug_on.m turns on malloc debugging; the interface will be *very* slow, @@ -98,8 +100,6 @@ README.txt this file Contents.m list of m-files in this folder -GB_define.m create #defines for GraphBLAS.h - GB_user_*.m test user-defined complex type and operators Makefile only 'make clean' and 'make distclean' diff --git a/GraphBLAS/Test/grow_demo.c b/GraphBLAS/Test/grow_demo.c new file mode 100644 index 0000000000..be3f9db1be --- /dev/null +++ b/GraphBLAS/Test/grow_demo.c @@ -0,0 +1,258 @@ +//------------------------------------------------------------------------------ +// GraphBLAS/Demo/Program/grow_demo.c: grow a matrix row-by-row +//------------------------------------------------------------------------------ + +// SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +// SPDX-License-Identifier: Apache-2.0 + +//------------------------------------------------------------------------------ + +// Reads in a matrix A, then does C = A one row at a time. + +#include "graphblas_demos.h" +#include "simple_rand.c" +#include "usercomplex.h" +#include "usercomplex.c" +#include "wathen.c" +#include "get_matrix.c" +#include "random_matrix.c" +#include "import_test.c" +#include "read_matrix.c" + +#include "omp.h" +#if defined ( _OPENMP ) +#define WALLCLOCK omp_get_wtime ( ) +#else +#define WALLCLOCK 0 +#endif + +// macro used by OK(...) to free workspace if an error occurs +#undef FREE_ALL +#define FREE_ALL \ + GrB_Matrix_free (&A) ; \ + GrB_Matrix_free (&C) ; \ + GrB_Matrix_free (&T) ; \ + GrB_Matrix_free (&W) ; \ + GrB_Vector_free (&w) ; \ + +GrB_Info check_result (GrB_Matrix A1, GrB_Matrix C1, GrB_BinaryOp eq) ; +GrB_Info check_result (GrB_Matrix A1, GrB_Matrix C1, GrB_BinaryOp eq) +{ + double t = WALLCLOCK ; + GrB_Info info ; + GrB_Matrix A = NULL, C = NULL, T = NULL, W = NULL ; + GrB_Vector w = NULL ; + GrB_Index anvals, cnvals, tnvals, anrows, ancols ; + OK (GrB_Matrix_nrows (&anrows, A1)) ; + OK (GrB_Matrix_ncols (&ancols, A1)) ; + OK (GrB_Matrix_nvals (&anvals, A1)) ; + OK (GrB_Matrix_nvals (&cnvals, C1)) ; + CHECK (anvals == cnvals, GrB_PANIC) ; + OK (GrB_Matrix_new (&T, GrB_BOOL, anrows, ancols)) ; + OK (GrB_eWiseMult (T, NULL, NULL, eq, A1, C1, NULL)) ; + // OK (GxB_print (T, 2)) ; + OK (GrB_Matrix_nvals (&tnvals, T)) ; + CHECK (anvals == tnvals, GrB_PANIC) ; + bool ok = true ; + OK (GrB_reduce (&ok, NULL, GrB_LAND_MONOID_BOOL, T, NULL)) ; + CHECK (ok, GrB_PANIC) ; + t = (WALLCLOCK - t) ; + FREE_ALL ; + printf ("A and C match, time %g\n", t) ; +} + +int main (int argc, char **argv) +{ + //-------------------------------------------------------------------------- + // check inputs + //-------------------------------------------------------------------------- + + GrB_Matrix A = NULL, C = NULL, T = NULL, W = NULL ; + GrB_Vector w = NULL ; + GrB_Info info ; + + OK (GrB_init (GrB_NONBLOCKING)) ; + int nthreads ; + OK (GxB_Global_Option_get (GxB_GLOBAL_NTHREADS, &nthreads)) ; + fprintf (stderr, "grow demo: nthreads %d\n", nthreads) ; + + //-------------------------------------------------------------------------- + // get A matrix + //-------------------------------------------------------------------------- + + OK (get_matrix (&A, argc, argv, false, false, false)) ; + GrB_Index anrows, ancols ; + OK (GrB_Matrix_nrows (&anrows, A)) ; + OK (GrB_Matrix_ncols (&ancols, A)) ; + + int type_code ; + OK (GrB_Matrix_get_INT32 (A, &type_code, GrB_EL_TYPE_CODE)) ; + GrB_Type atype = NULL ; + // OK (GxB_print (A, 5)) ; + // printf ("type_code: %d\n", type_code) ; + GrB_BinaryOp eq = NULL ; + + switch (type_code) + { + case GrB_BOOL_CODE : atype = GrB_BOOL ; eq = GrB_EQ_BOOL ; break ; + case GrB_INT8_CODE : atype = GrB_INT8 ; eq = GrB_EQ_INT8 ; break ; + case GrB_UINT8_CODE : atype = GrB_UINT8 ; eq = GrB_EQ_UINT8 ; break ; + case GrB_INT16_CODE : atype = GrB_INT16 ; eq = GrB_EQ_INT16 ; break ; + case GrB_UINT16_CODE : atype = GrB_UINT16 ; eq = GrB_EQ_UINT16 ; break ; + case GrB_INT32_CODE : atype = GrB_INT32 ; eq = GrB_EQ_INT32 ; break ; + case GrB_UINT32_CODE : atype = GrB_UINT32 ; eq = GrB_EQ_UINT32 ; break ; + case GrB_INT64_CODE : atype = GrB_INT64 ; eq = GrB_EQ_INT64 ; break ; + case GrB_UINT64_CODE : atype = GrB_UINT64 ; eq = GrB_EQ_UINT64 ; break ; + case GrB_FP32_CODE : atype = GrB_FP32 ; eq = GrB_EQ_FP32 ; break ; + case GrB_FP64_CODE : atype = GrB_FP64 ; eq = GrB_EQ_FP64 ; break ; + case GxB_FC32_CODE : atype = GxB_FC32 ; eq = GxB_EQ_FC32 ; break ; + case GxB_FC64_CODE : atype = GxB_FC64 ; eq = GxB_EQ_FC64 ; break ; + default : ; + } + + // OK (GxB_print (atype, 5)) ; + CHECK (atype != NULL, GrB_INVALID_VALUE) ; + OK (GxB_print (A, 1)) ; + + //-------------------------------------------------------------------------- + // C = A, one row at a time + //-------------------------------------------------------------------------- + + OK (GrB_Matrix_new (&C, atype, anrows, ancols)) ; + OK (GrB_Vector_new (&w, atype, ancols)) ; + // OK (GrB_set (GrB_GLOBAL, true, GxB_BURBLE)) ; + OK (GrB_set (C, false, GxB_HYPER_HASH)) ; + OK (GrB_set (C, GxB_HYPERSPARSE, GxB_SPARSITY_CONTROL)) ; + OK (GrB_set (w, GxB_SPARSE, GxB_SPARSITY_CONTROL)) ; + // printf ("\n\nC empty:\n") ; + // OK (GxB_print (C, 1)) ; + + double t, tt [4] = {0, 0, 0, 0}, t2 [4] = {0, 0, 0, 0} ; + tt [0] = WALLCLOCK ; + + for (int64_t i = 0 ; i < anrows ; i++) + { + // printf ("\n\ni = %ld\n", i) ; + + // w = A (i,:), using A' via the descriptor + t = WALLCLOCK ; + OK (GrB_Col_extract (w, NULL, NULL, A, GrB_ALL, ancols, i, + GrB_DESC_T0)) ; + tt [1] += (WALLCLOCK - t) ; + // OK (GxB_print (w, 3)) ; + + // C (i,:) = w + t = WALLCLOCK ; + OK (GrB_Row_assign (C, NULL, NULL, w, i, GrB_ALL, ancols, NULL)) ; + tt [2] += (WALLCLOCK - t) ; + + // ensure C is finished + t = WALLCLOCK ; + OK (GrB_wait (C, GrB_MATERIALIZE)) ; + tt [3] += (WALLCLOCK - t) ; + // OK (GxB_print (C, 1)) ; + } + + OK (GrB_set (GrB_GLOBAL, false, GxB_BURBLE)) ; + // OK (GxB_print (C, 1)) ; + + tt [0] = WALLCLOCK - tt [0] ; + printf ("one row at a time:\n") ; + printf ("total time: %g\n", tt [0]) ; + printf ("extract: %g\n", tt [1]) ; + printf ("assign: %g\n", tt [2]) ; + printf ("wait: %g\n", tt [3]) ; + + // check to see if A and C are equal + OK (check_result (A, C, eq)) ; + + //-------------------------------------------------------------------------- + // C = A, multiple rows at a time + //-------------------------------------------------------------------------- + + // OK (GrB_set (GrB_GLOBAL, true, GxB_BURBLE)) ; + GrB_Matrix_free (&C) ; + OK (GrB_Matrix_new (&C, atype, anrows, ancols)) ; + OK (GrB_set (C, GxB_HYPERSPARSE, GxB_SPARSITY_CONTROL)) ; + + t2 [0] = WALLCLOCK ; + int64_t i1 = 0 ; + int64_t ilast = anrows - 1 ; + while (i1 <= ilast) + { + // determine the rows i1:i2 of A to append + int64_t irows = (ilast - i1) / 2 ; + if (irows == 0) irows = 1 ; + int64_t i2 = i1 + irows - 1 ; + if (i2 > ilast) i2 = ilast ; + irows = i2 - i1 + 1 ; + // printf ("i1: %ld i2: %ld irows %ld ilast: %ld\n", + // i1, i2, irows, ilast) ; + + // W = A (i1:i2,:) + t = WALLCLOCK ; + OK (GrB_Matrix_new (&W, atype, irows, ancols)) ; + OK (GrB_set (W, GxB_SPARSE, GxB_SPARSITY_CONTROL)) ; + GrB_Index Icolon [3] ; + Icolon [GxB_BEGIN] = i1 ; + Icolon [GxB_INC ] = 1 ; + Icolon [GxB_END ] = i2 ; + // OK (GxB_print (W, 3)) ; + info = GrB_extract (W, NULL, NULL, A, Icolon, GxB_RANGE, + GrB_ALL, ancols, NULL) ; + // printf ("got here: %d\n", info) ; + OK (info) ; + t2 [1] += (WALLCLOCK - t) ; + // OK (GxB_print (W, 3)) ; + + // C (i1:i2,:) = W + t = WALLCLOCK ; + OK (GrB_assign (C, NULL, NULL, W, Icolon, GxB_RANGE, GrB_ALL, ancols, + NULL)) ; + t2 [2] += (WALLCLOCK - t) ; + + // ensure C is finished + t = WALLCLOCK ; + OK (GrB_wait (C, GrB_MATERIALIZE)) ; + t2 [3] += (WALLCLOCK - t) ; + // OK (GxB_print (C, 1)) ; + + GrB_Matrix_free (&W) ; + + i1 += irows ; + } + OK (GrB_set (GrB_GLOBAL, false, GxB_BURBLE)) ; + + t2 [0] = WALLCLOCK - t2 [0] ; + printf ("\nmany rows at a time:\n") ; + printf ("total time: %g\n", t2 [0]) ; + printf ("extract: %g\n", t2 [1]) ; + printf ("assign: %g\n", t2 [2]) ; + printf ("wait: %g\n", t2 [3]) ; + + // check to see if A and C are equal + OK (check_result (A, C, eq)) ; + + //-------------------------------------------------------------------------- + // C = A, using dup (1 threads and all threads) + //-------------------------------------------------------------------------- + + printf ("\nsingle call to dup:\n") ; + for (int trial = 1 ; trial <= 2 ; trial++) + { + int threads ; + GrB_get (GrB_GLOBAL, &threads, GxB_GLOBAL_NTHREADS) ; + GrB_free (&T) ; + t = WALLCLOCK ; + OK (GrB_Matrix_dup (&T, A)) ; + t = (WALLCLOCK - t) ; + printf ("dup: %g (%d threads)\n", t, threads) ; + GrB_set (GrB_GLOBAL, (int) 1, GxB_GLOBAL_NTHREADS) ; + } + + printf ("grow_demo: all tests passed\n") ; + FREE_ALL ; + GrB_finalize ( ) ; + return (0) ; +} + diff --git a/GraphBLAS/Test/isequal_roundoff.m b/GraphBLAS/Test/isequal_roundoff.m index 34c2ccb2b4..aa5bfc6fb2 100644 --- a/GraphBLAS/Test/isequal_roundoff.m +++ b/GraphBLAS/Test/isequal_roundoff.m @@ -1,11 +1,11 @@ -function ok = isequal_roundoff (A,B,tol) +function [ok, err, anorm] = isequal_roundoff (A,B,tol) %ISEQUAL_ROUNDOFF compare two matrices, allowing for roundoff errors % % returns true if A == B to within relative tolerance tol. % tol = 64*eps if not present. NaNs and Infs are ignored in the % tol, but the NaN and +/-Inf pattern must be the same. -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 % if (~isequal (GB_spec_type (A), GB_spec_type (B))) @@ -13,6 +13,9 @@ % return ; % end +err = 0 ; +anorm = 0 ; + if (isequalwithequalnans (A, B)) ok = true ; return @@ -49,4 +52,3 @@ end anorm = max (anorm, 1) ; ok = (err == 0) || (err <= tol * anorm) ; - diff --git a/GraphBLAS/Test/make.m b/GraphBLAS/Test/make.m deleted file mode 100644 index 99e1750314..0000000000 --- a/GraphBLAS/Test/make.m +++ /dev/null @@ -1,231 +0,0 @@ -function make (what) -%MAKE compiles the test interface to GraphBLAS -% and dynamically links it with the libraries in ../build/libgraphblas. -% -% This @GrB interface to GraphBLAS is meant for testing and development, -% not for general use. -% -% Usage: -% -% make % just make what has changed (does not check any changes -% % in -lgraphblas, use 'make all' if recompilation is needed -% make all % make everything from scratch -% -% GraphBLAS requires an C11 compliant compiler. On the Mac, clang 8.0 -% suffices. gcc should be version 4.9.3 or later - -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. -% SPDX-License-Identifier: Apache-2.0 - -here = pwd ; -if (ispc) - here = strrep (here, filesep, '/') ; -end -if (isempty (strfind (here, 'GraphBLAS/Test'))) - % this function should only be done in GraphBLAS/Test - error ('make should be used in Test directory only') ; -end - -fprintf ('\nCompiling GraphBLAS tests:\n') ; - -have_octave = (exist ('OCTAVE_VERSION', 'builtin') == 5) ; -if (have_octave) - need_rename = false ; -else - need_rename = true ; % was: ~verLessThan ('matlab', '9.10') ; -end - -try - spok (sparse (1)) ; -catch - here = pwd ; - cd ('spok') ; - spok_install ; - cd (here) ; -end - -if (nargin < 1) - what = '' ; -end - -make_all = (isequal (what, 'all')) ; - -flags = '-g -R2018a -DGBNCPUFEAT' ; - -if (~have_octave) - try - if (strncmp (computer, 'GLNX', 4)) - % remove -ansi from CFLAGS and replace it with -std=c11 - cc = mex.getCompilerConfigurations ('C', 'Selected') ; - env = cc.Details.SetEnv ; - c1 = strfind (env, 'CFLAGS=') ; - q = strfind (env, '"') ; - q = q (q > c1) ; - if (~isempty (c1) && length (q) > 1) - c2 = q (2) ; - cflags = env (c1:c2) ; % the CFLAGS="..." string - ansi = strfind (cflags, '-ansi') ; - if (~isempty (ansi)) - cflags = [cflags(1:ansi-1) '-std=c11' cflags(ansi+5:end)] ; - flags = [flags ' ' cflags] ; - fprintf ('compiling with -std=c11 instead of default -ansi\n') ; - end - end - end - catch - end -end - -mexfunctions = dir ('GB_mex_*.c') ; -cfiles = [ dir('../Demo/Include/usercomplex.c') ; dir('GB_mx_*.c') ] ; - -hfiles = [ dir('*.h') ; dir('Template/*.c') ; dir('../Demo/Include/usercomplex.h') ] ; -inc = '-ITemplate -I../Include -I../Source -I../Source/Template -I../lz4 -I../rmm_wrap' ; -inc = [inc ' -I../zstd -I../zstd/zstd_subset -I.'] ; -inc = [inc ' -I../Source/Shared '] ; -inc = [inc ' -I../Config '] ; -inc = [inc ' -I../Source/Factories '] ; - -if (ismac) - % Mac (do 'make install' for GraphBLAS first) - if (need_rename) - libraries = '-L/usr/local/lib -lgraphblas_matlab' ; % -lomp' ; - else - libraries = '-L/usr/local/lib -lgraphblas' ; % -lomp' ; - end -% flags = [ flags ' CFLAGS="$CXXFLAGS -Xpreprocessor -fopenmp" ' ] ; -% flags = [ flags ' CXXFLAGS="$CXXFLAGS -Xpreprocessor -fopenmp" ' ] ; -% flags = [ flags ' LDFLAGS="$LDFLAGS -fopenmp"' ] ; -elseif (ispc) - % Windows - if (need_rename) - libraries = '-L../GraphBLAS/build/Release -L. -lgraphblas_matlab' ; - else - libraries = '-L../build/Release -L. -lgraphblas' ; - end - flags = [ flags ' CFLAGS="$CXXFLAGS -wd\"4244\" -wd\"4146\" -wd\"4217\" -wd\"4286\" -wd\"4018\" -wd\"4996\" -wd\"4047\" -wd\"4554\"" '] ; -else - % Linux - if (need_rename) - libraries = '-L../GraphBLAS/build -L. -lgraphblas_matlab' ; - else - libraries = '-L../build -L. -lgraphblas' ; - end - flags = [ flags ' CFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; - flags = [ flags ' CXXFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; - flags = [ flags ' LDFLAGS="$LDFLAGS -fopenmp -fPIC" '] ; -end - -if (need_rename) - fprintf ('Linking with -lgraphblas_matlab\n') ; - flags = [flags ' -DGBMATLAB=1 ' ] ; - inc = [inc ' -I../GraphBLAS/rename ' ] ; - libgraphblas = '-lgraphblas_matlab' ; -else - libgraphblas = '-lgraphblas' ; -end - -%------------------------------------------------------------------------------- - -dryrun = false ; - -% Find the last modification time of any hfile. -% These are #include'd into source files. -htime = 0 ; -for k = 1:length (hfiles) - t = datenum (hfiles (k).date) ; - htime = max (htime, t) ; -end - -if (ispc) - obj_extension = '.obj' ; -else - obj_extension = '.o' ; -end - -% compile any source files that need compiling -any_c_compiled = false ; -objlist = '' ; -for k = 1:length (cfiles) - - % get the full cfile filename and modification time - cfile = [(cfiles (k).folder) filesep (cfiles (k).name)] ; - tc = datenum (cfiles(k).date) ; - - % get the object file name - ofile = cfiles(k).name ; - objfile = [ ofile(1:end-2) obj_extension ] ; - - % get the object file modification time - ofiles {k} = objfile ; - objlist = [ objlist ' ' objfile ] ; - dobj = dir (objfile) ; - if (isempty (dobj)) - % there is no object file; the cfile must be compiled - tobj = 0 ; - else - tobj = datenum (dobj.date) ; - end - - % compile the cfile if it is newer than its object file, or any hfile - if (make_all || tc > tobj || htime > tobj) - % compile the cfile - fprintf ('.') ; - % fprintf ('%s\n', cfile) ; - mexcmd = sprintf ('mex -c %s -silent %s %s', flags, inc, cfile) ; - if (dryrun) - fprintf ('%s\n', mexcmd) ; - else - % fprintf ('%s\n', mexcmd) ; - eval (mexcmd) ; - end - any_c_compiled = true ; - end -end - -% compile the mexFunctions -for k = 1:length (mexfunctions) - - % get the mexFunction filename and modification time - mexfunc = mexfunctions (k).name ; - mexfunction = [(mexfunctions (k).folder) filesep mexfunc] ; - tc = datenum (mexfunctions(k).date) ; - - % get the compiled mexFunction modification time - mexfunction_compiled = [ mexfunc(1:end-2) '.' mexext ] ; - dobj = dir (mexfunction_compiled) ; - if (isempty (dobj)) - % there is no compiled mexFunction; it must be compiled - tobj = 0 ; - else - tobj = datenum (dobj.date) ; - end - - % compile if it is newer than its object file, or if any cfile was compiled - if (make_all || tc > tobj || any_c_compiled) - % compile the mexFunction - mexcmd = sprintf ('mex -silent %s %s %s %s %s', ... - flags, inc, mexfunction, objlist, libraries) ; - fprintf (':') ; - % fprintf ('%s\n', mexfunction) ; - if (dryrun) - fprintf ('%s\n', mexcmd) ; - else - % fprintf ('%s\n', mexcmd) ; - eval (mexcmd) ; - end - end -end - -% compile GB_spones_mex -mex -g -R2018a GB_spones_mex.c - -% load the library -if (ispc) - cd ../build/Release - GrB (1) - cd ../../Test - pwd -end - - diff --git a/GraphBLAS/Test/test10.m b/GraphBLAS/Test/test10.m index 0562168e67..8980d636a9 100644 --- a/GraphBLAS/Test/test10.m +++ b/GraphBLAS/Test/test10.m @@ -98,6 +98,7 @@ fprintf ('\n') ; end fprintf (' %s', op.opname) ; + GB_mex_finalize ; for k3 = 1:length(types) op.optype = types {k3} ; diff --git a/GraphBLAS/Test/test169.m b/GraphBLAS/Test/test169.m index 33c5509b92..83181400cf 100644 --- a/GraphBLAS/Test/test169.m +++ b/GraphBLAS/Test/test169.m @@ -19,6 +19,11 @@ A = GB_spec_random (n, n, 0.5, 1, 'double') ; B = GB_spec_random (n, n, 0.5, 1, 'double') ; + % test the no_hyper_hash cases + A.no_hyper_hash = true ; + C.no_hyper_hash = true ; + B.no_hyper_hash = true ; + for C_sparsity = [1 2 4 8] C.sparsity = C_sparsity ; diff --git a/GraphBLAS/Test/test201.m b/GraphBLAS/Test/test201.m index 0fa90a611e..2c4d6b14b2 100644 --- a/GraphBLAS/Test/test201.m +++ b/GraphBLAS/Test/test201.m @@ -1,7 +1,7 @@ function test201 %TEST201 test iso reduce to vector and reduce to scalar -% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 n = 10 ; @@ -21,4 +21,16 @@ c3 = sum (sum (A.matrix)) ; assert (abs (c2-c3) < 1e-12) ; +% reduce a huge iso full matrix to a scalar +m = 2^40 ; +n = 2^48 ; +% s = sum (pi * GrB.ones (m, n), 'all') +s = GB_mex_test36 ; +% expected result: +t = pi * m * n ; +relerr = abs (s - t) / t ; +relerr +assert (relerr < 1e-14) ; +bits = ceil (log2 (t)) + fprintf ('test201: all tests passed\n') ; diff --git a/GraphBLAS/Test/test243.m b/GraphBLAS/Test/test243.m index ae79b3eb41..740093d145 100644 --- a/GraphBLAS/Test/test243.m +++ b/GraphBLAS/Test/test243.m @@ -30,11 +30,11 @@ type = types {k} ; fprintf ('\n%s:\n', type) ; end - + if (test_contains (type, 'single')) - tol = 1e-5 ; + tol = 1e-4 ; elseif (test_contains (type, 'double')) - tol = 1e-11 ; + tol = 1e-9 ; else tol = 0 ; end diff --git a/GraphBLAS/Test/test268.m b/GraphBLAS/Test/test268.m index 5ec3ac5ff9..a8f835f248 100644 --- a/GraphBLAS/Test/test268.m +++ b/GraphBLAS/Test/test268.m @@ -6,7 +6,7 @@ rng ('default') ; -% test Method04e, Factories/GB_sparse_masker_template.c +% test Method04e, GB_sparse_masker_template.c % when M(:,j) is much denser than Z(:,j) n = 1000 ; diff --git a/GraphBLAS/Test/test280.m b/GraphBLAS/Test/test280.m new file mode 100644 index 0000000000..1d911a84bb --- /dev/null +++ b/GraphBLAS/Test/test280.m @@ -0,0 +1,21 @@ +function test280 +%TEST280 subassign method 26 + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +load west0479 +GB_mex_grow (west0479) ; + +n = 10000 ; +nz = 10e6 ; +A = sprand (n, n, nz/n^2) ; +GB_mex_grow (A) ; + +n = 2e6 ; +nz = 10e6 ; +A = sprand (n, n, nz/n^2) ; +GB_mex_grow (A) ; + +fprintf ('test280 all tests passed.\n') ; + diff --git a/GraphBLAS/Test/test281.m b/GraphBLAS/Test/test281.m new file mode 100644 index 0000000000..7610be16f6 --- /dev/null +++ b/GraphBLAS/Test/test281.m @@ -0,0 +1,26 @@ +function test281 +%TEST281 test GrB_apply with user-defined idxunp + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +fprintf ('\n--- testing apply with user-defined idxunop (no JIT)\n') ; +rng ('default') ; + +n = 10 ; +d = 0.5 ; +A.matrix = spones (sprand (n, n, 0.5)) ; +A.iso = true ; + +GB_mex_burble (1) ; +C = GB_mex_apply_idxunop_user (A) ; +GB_mex_burble (0) ; + +[i j x] = find (A.matrix) ; +x = (i-1) + (j-1) + 1 ; +C2 = sparse (i, j, x, n, n) ; + +assert (isequal (C, C2)) ; + +fprintf ('\ntest281: all tests passed\n') ; + diff --git a/GraphBLAS/Test/test75b.m b/GraphBLAS/Test/test75b.m index 1b54b006ad..1d364260f2 100644 --- a/GraphBLAS/Test/test75b.m +++ b/GraphBLAS/Test/test75b.m @@ -4,6 +4,7 @@ % SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 +fprintf ('test75b: test mxm and vxm on all semirings\n') ; [binops, ~, add_ops, types, ~, ~] = GB_spec_opsall ; % mult_ops = binops.positional mult_ops = binops.all ; @@ -91,6 +92,7 @@ for k1 = 1:length(mult_ops) mulop = mult_ops {k1} ; fprintf ('\n%-10s ', mulop) ; + GB_mex_finalize ; for k2 = 1:length(add_ops) addop = add_ops {k2} ; diff --git a/GraphBLAS/Test/testall.m b/GraphBLAS/Test/testall.m index 50cec10f01..609858a875 100644 --- a/GraphBLAS/Test/testall.m +++ b/GraphBLAS/Test/testall.m @@ -14,6 +14,7 @@ function testall (threads,longtests) % SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2023, All Rights Reserved. % SPDX-License-Identifier: Apache-2.0 +GrB.init ; GB_mex_init ; testall_time = tic ; @@ -61,10 +62,11 @@ function testall (threads,longtests) j404 = {4,0,4} ; % JIT on, off, on f110 = {1,1,0} ; % factory on, on , off -% just one run, both JIT and factory on +% run once, both on j4 = {4} ; % JIT on f1 = {1} ; % factory on +% run once, both off j0 = {0} ; % JIT off f0 = {0} ; % factory off @@ -78,11 +80,8 @@ function testall (threads,longtests) j40 = {4,0} ; % JIT on, off f11 = {1,1} ; % factory on, on -j4040 = {4,0,4,0} ; % JIT on, off, on , off -f1100 = {1,1,0,0} ; % factory on, on , off, off - +% 3 runs j040 = {0,4,0} ; % JIT off, on , off - j440 = {4,4,0} ; % JIT on, on , off f100 = {1,0,0} ; % factory on, off, off @@ -99,6 +98,8 @@ function testall (threads,longtests) % tests with high rates (over 100/sec) %---------------------------------------- +logstat ('test281' ,t, j4 , f1 ) ; % test user-defined idx unop, no JIT +logstat ('test201' ,t, j4 , f1 ) ; % test iso reduce to vector and scalar logstat ('test169' ,t, j0 , f1 ) ; % C=A+B with many formats logstat ('test250' ,t, j44 , f10 ) ; % JIT tests, set/get, other tests logstat ('test279' ,t, j0 , f1 ) ; % blob get/set @@ -140,13 +141,12 @@ function testall (threads,longtests) logstat ('test254' ,t, j440, f100) ; %% mask types logstat ('test253' ,t, j4 , f1 ) ; % basic JIT tests logstat ('test252' ,t, j4 , f1 ) ; % basic tests -%ogstat ('test251' ,t, j404, f110) ; % dot4, dot2, with plus_pair +logstat ('test280' ,t, j4 , f1 ) ; % subassign method 26 logstat ('test251' ,t, j44 , f10 ) ; % dot4, dot2, with plus_pair logstat ('test249' ,t, j4 , f1 ) ; % GxB_Context object logstat ('test247' ,t, j4 , f1 ) ; % GrB_mxm: fine Hash method logstat ('test246' ,t, j4 , f1 ) ; % GrB_mxm parallelism (slice_balanced) -%ogstat ('test01' ,t, j44 , f10 ) ; % error handling logstat ('test01' ,t, j4 , f1 ) ; % error handling logstat ('test245' ,t, j40 , f11 ) ; % test complex row/col scale logstat ('test199' ,t, j4 , f1 ) ; % test dot2 with hypersparse @@ -166,7 +166,6 @@ function testall (threads,longtests) logstat ('test256' ,t, j4 , f0 ) ; % JIT error handling logstat ('test186' ,t, j40 , f11 ) ; % saxpy, all formats (slice_balanced) logstat ('test186(0)' ,t, j4 , f1 ) ; % repeat with default slice_balanced -%ogstat ('test150' ,t, j40 , f10 ) ; %% mxm zombies, typecasting (dot3,saxpy) logstat ('test150' ,t, j0 , f0 ) ; %% mxm zombies, typecasting (dot3,saxpy) hack (2) = 0 ; GB_mex_hack (hack) ; % re-enable the Werk stack @@ -181,7 +180,6 @@ function testall (threads,longtests) logstat ('test179' ,t, j44 , f10 ) ; % test bitmap select logstat ('test174' ,t, j4 , f1 ) ; % test GrB_assign C=A logstat ('test155' ,t, j4 , f1 ) ; % test GrB_*_setElement, removeElement -%ogstat ('test156' ,t, j44 , f10 ) ; % test GrB_assign C=A with typecasting logstat ('test136' ,s, j4 , f1 ) ; % subassignment special cases logstat ('test02' ,t, j4 , f1 ) ; % matrix copy and dup tests logstat ('test109' ,t, j404, f110) ; % terminal monoid with user-defined type @@ -189,11 +187,9 @@ function testall (threads,longtests) logstat ('test207' ,t, j4 , f1 ) ; % test iso subref logstat ('test221' ,t, j4 , f1 ) ; % test C += A, C is bitmap and A is full logstat ('test162' ,t, j4 , f1 ) ; % test C=A*B with very sparse M -%ogstat ('test159' ,t, j40 , f10 ) ; %% test A*B logstat ('test159' ,t, j0 , f0 ) ; %% test A*B logstat ('test09' ,t, j4 , f1 ) ; % duplicate I,J test of GB_mex_subassign logstat ('test132' ,t, j4 , f1 ) ; % setElement -%ogstat ('test141' ,t, j404, f110) ; % eWiseAdd with dense matrices logstat ('test141' ,t, j0 , f1 ) ; % eWiseAdd with dense matrices logstat ('testc2(1,1)',t, j44 , f10 ) ; % complex tests (quick case, builtin) logstat ('test214' ,t, j4 , f1 ) ; % test C=A'*B (tricount) @@ -216,10 +212,8 @@ function testall (threads,longtests) hack (2) = 1 ; GB_mex_hack (hack) ; % disable the Werk stack -%ogstat ('test14' ,t, j404, f110) ; % GrB_reduce logstat ('test14' ,t, j44 , f10 ) ; % GrB_reduce logstat ('test180' ,s, j4 , f1 ) ; % test assign and subassign (1 thread) -%ogstat ('test180' ,t, j4 , f1 ) ; % test assign and subassign (4 threads) logstat ('test236' ,t, j4 , f1 ) ; % test GxB_Matrix_sort, GxB_Vector_sort hack (2) = 0 ; GB_mex_hack (hack) ; % re-enable the Werk stack @@ -239,7 +233,6 @@ function testall (threads,longtests) logstat ('test154' ,t, j40 , f11 ) ; % apply with binop and scalar binding logstat ('test238' ,t, j44 , f10 ) ; % test GrB_mxm (dot4 and dot2) -%ogstat ('test151b' ,t, j404, f110) ; % test bshift operator logstat ('test151b' ,t, j4 , f1 ) ; % test bshift operator logstat ('test184' ,t, j4 , f1 ) ; % special cases: mxm, transpose, build logstat ('test191' ,t, j40 , f10 ) ; %% test split @@ -278,12 +271,10 @@ function testall (threads,longtests) % tests with good rates (30 to 100/sec) %---------------------------------------- -logstat ('test201' ,t, j4 , f1 ) ; % test iso reduce to vector logstat ('test225' ,t, j4 , f1 ) ; % test mask operations (GB_masker) logstat ('test176' ,t, j4 , f1 ) ; % test GrB_assign, method 09, 11 logstat ('test208' ,t, j4 , f1 ) ; % test iso apply, bind 1st and 2nd logstat ('test216' ,t, j4 , f1 ) ; % test C=A, iso case -%ogstat ('test142' ,t, j4040, f1100) ; %% test GrB_assign with accum logstat ('test142' ,t, j040, f100) ; %% test GrB_assign with accum logstat ('test137' ,s, j40 , f11 ) ; % GrB_eWiseMult, FIRST and SECOND logstat ('test139' ,s, j4 , f1 ) ; % merge sort, special cases @@ -318,23 +309,17 @@ function testall (threads,longtests) logstat ('test200' ,t, j4 , f1 ) ; % test iso full matrix multiply logstat ('test197' ,t, j4 , f1 ) ; % test large sparse split logstat ('test84' ,t, j4 , f1 ) ; % GrB_assign (row/col with C CSR/CSC) -%ogstat ('test19b' ,t, j4 , f1 ) ; % GrB_assign, many pending operators logstat ('test19b' ,s, j4 , f1 ) ; % GrB_assign, many pending operators logstat ('test133' ,t, j4 , f1 ) ; % test mask operations (GB_masker) logstat ('test80' ,t, j4 , f1 ) ; % test GrB_mxm on all semirings -%ogstat ('test151' ,t, j44 , f10 ) ; % test bitwise operators -%ogstat ('test23' ,t, j40 , f11 ) ; % quick test of GB_*_build logstat ('test23' ,t, j0 , f1 ) ; % quick test of GB_*_build logstat ('test135' ,t, j4 , f1 ) ; % reduce to scalar -%ogstat ('test160' ,s, j40 , f11 ) ; % test A*B, single threaded logstat ('test160' ,s, j0 , f1 ) ; % test A*B, single threaded logstat ('test54' ,t, j4 , f1 ) ; % assign and extract with begin:inc:end logstat ('test129' ,t, j4 , f1 ) ; % test GxB_select (tril, nonz, hyper) logstat ('test69' ,t, j4 , f1 ) ; % assign and subassign with alias logstat ('test230' ,t, j4 , f1 ) ; % test apply with idxunops -%ogstat ('test74' ,t, j40 , f11 ) ; % test GrB_mxm on all semirings logstat ('test74' ,t, j0 , f1 ) ; % test GrB_mxm on all semirings -%ogstat ('test127' ,t, j40 , f11 ) ; % test eWiseAdd, eWiseMult logstat ('test127' ,t, j0 , f1 ) ; % test eWiseAdd, eWiseMult logstat ('test19' ,t, j4 , f1 ) ; % GxB_subassign, many pending operators @@ -345,14 +330,10 @@ function testall (threads,longtests) logstat ('test11' ,t, j4 , f1 ) ; % exhaustive test of GrB_extractTuples logstat ('test215' ,t, j4 , f1 ) ; % test C=A'*B (dot2, ANY_PAIR) logstat ('test193' ,t, j4 , f1 ) ; % test GxB_Matrix_diag -%ogstat ('test195' ,t, j0 , f1 ) ; % all variants of saxpy3 slice_balanced logstat ('test195' ,t, j4 , f1 ) ; % all variants of saxpy3 slice_balanced -%ogstat ('test233' ,t, j4 , f1 ) ; % bitmap saxpy C=A*B, A sparse, B bitmap logstat ('test243' ,t, j4 , f1 ) ; % test GxB_Vector_Iterator -%ogstat ('test29' ,t, j40 , f11 ) ; % reduce with zombies logstat ('test29' ,t, j0 , f1 ) ; % reduce with zombies -%ogstat ('testc2(0,0)',t, j404, f110) ; % A'*B, A+B, A*B, user-defined complex logstat ('testc2(0,0)',t, j04, f10 ) ; % A'*B, A+B, A*B, user-defined complex logstat ('testc4(0)' ,t, j4 , f1 ) ; % extractElement, setElement, user type logstat ('testc7(0)' ,t, j4 , f1 ) ; % assign, builtin complex @@ -369,7 +350,6 @@ function testall (threads,longtests) logstat ('test53' ,t, j4 , f1 ) ; % quick test of GB_mex_Matrix_extract logstat ('test17' ,t, j4 , f1 ) ; % quick test of GrB_*_extractElement -%ogstat ('test231' ,t, j0 , f1 ) ; % test GrB_select with idxunp logstat ('test231' ,t, j4 , f1 ) ; % test GrB_select with idxunp %---------------------------------------- diff --git a/GraphBLAS/Test/testmake.m b/GraphBLAS/Test/testmake.m new file mode 100644 index 0000000000..2268154875 --- /dev/null +++ b/GraphBLAS/Test/testmake.m @@ -0,0 +1,230 @@ +function testmake (what) +%MAKE compiles the test interface to GraphBLAS +% and dynamically links it with the libraries in ../build/libgraphblas. +% +% This @GrB interface to GraphBLAS is meant for testing and development, +% not for general use. +% +% Usage: +% +% testmake % just make what has changed (does not check any changes +% % in -lgraphblas, use 'testmake all' if recompilation is +% needed +% testmake all % make everything from scratch +% +% See also graphblas_install. + +% SuiteSparse:GraphBLAS, Timothy A. Davis, (c) 2017-2024, All Rights Reserved. +% SPDX-License-Identifier: Apache-2.0 + +here = pwd ; +if (ispc) + here = strrep (here, filesep, '/') ; +end +if (isempty (strfind (here, 'GraphBLAS/Test'))) + % this function should only be done in GraphBLAS/Test + error ('testmake should be used in Test directory only') ; +end + +fprintf ('\nCompiling GraphBLAS tests:\n') ; + +have_octave = (exist ('OCTAVE_VERSION', 'builtin') == 5) ; +if (have_octave) + need_rename = false ; +else + need_rename = true ; % was: ~verLessThan ('matlab', '9.10') ; +end + +try + spok (sparse (1)) ; +catch + here = pwd ; + cd ('spok') ; + spok_install ; + cd (here) ; +end + +if (nargin < 1) + what = '' ; +end + +make_all = (isequal (what, 'all')) ; + +flags = '-g -R2018a -DGBNCPUFEAT' ; + +if (~have_octave) + try + if (strncmp (computer, 'GLNX', 4)) + % remove -ansi from CFLAGS and replace it with -std=c11 + cc = mex.getCompilerConfigurations ('C', 'Selected') ; + env = cc.Details.SetEnv ; + c1 = strfind (env, 'CFLAGS=') ; + q = strfind (env, '"') ; + q = q (q > c1) ; + if (~isempty (c1) && length (q) > 1) + c2 = q (2) ; + cflags = env (c1:c2) ; % the CFLAGS="..." string + ansi = strfind (cflags, '-ansi') ; + if (~isempty (ansi)) + cflags = [cflags(1:ansi-1) '-std=c11' cflags(ansi+5:end)] ; + flags = [flags ' ' cflags] ; + fprintf ('compiling with -std=c11 instead of default -ansi\n') ; + end + end + end + catch + end +end + +mexfunctions = dir ('GB_mex_*.c') ; +cfiles = [ dir('../Demo/Include/usercomplex.c') ; dir('GB_mx_*.c') ] ; + +hfiles = [ dir('*.h') ; dir('Template/*.c') ; dir('../Demo/Include/usercomplex.h') ] ; +inc = '-ITemplate -I../Include -I../Source -I../lz4 -I../rmm_wrap' ; +inc = [inc ' -I../zstd -I../zstd/zstd_subset -I.'] ; +inc = [inc ' -I../Config '] ; +inc = [inc ' -I../Source/builtin '] ; + +if (ismac) + % Mac (do 'make install' for GraphBLAS first) + if (need_rename) + libraries = '-L/usr/local/lib -lgraphblas_matlab' ; % -lomp' ; + else + libraries = '-L/usr/local/lib -lgraphblas' ; % -lomp' ; + end +% flags = [ flags ' CFLAGS="$CXXFLAGS -Xpreprocessor -fopenmp" ' ] ; +% flags = [ flags ' CXXFLAGS="$CXXFLAGS -Xpreprocessor -fopenmp" ' ] ; +% flags = [ flags ' LDFLAGS="$LDFLAGS -fopenmp"' ] ; +elseif (ispc) + % Windows + if (need_rename) + libraries = '-L../GraphBLAS/build/Release -L. -lgraphblas_matlab' ; + else + libraries = '-L../build/Release -L. -lgraphblas' ; + end + flags = [ flags ' CFLAGS="$CXXFLAGS -wd\"4244\" -wd\"4146\" -wd\"4217\" -wd\"4286\" -wd\"4018\" -wd\"4996\" -wd\"4047\" -wd\"4554\"" '] ; +else + % Linux + if (need_rename) + libraries = '-L../GraphBLAS/build -L. -lgraphblas_matlab' ; + else + libraries = '-L../build -L. -lgraphblas' ; + end + flags = [ flags ' CFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; + flags = [ flags ' CXXFLAGS="$CXXFLAGS -fopenmp -fPIC -Wno-pragmas" '] ; + flags = [ flags ' LDFLAGS="$LDFLAGS -fopenmp -fPIC" '] ; +end + +if (need_rename) + fprintf ('Linking with -lgraphblas_matlab\n') ; + flags = [flags ' -DGBMATLAB=1 ' ] ; + inc = [inc ' -I../GraphBLAS/rename ' ] ; + libgraphblas = '-lgraphblas_matlab' ; +else + libgraphblas = '-lgraphblas' ; +end + +%------------------------------------------------------------------------------- + +dryrun = false ; + +% Find the last modification time of any hfile. +% These are #include'd into source files. +htime = 0 ; +for k = 1:length (hfiles) + t = datenum (hfiles (k).date) ; + htime = max (htime, t) ; +end + +if (ispc) + obj_extension = '.obj' ; +else + obj_extension = '.o' ; +end + +% compile any source files that need compiling +any_c_compiled = false ; +objlist = '' ; +for k = 1:length (cfiles) + + % get the full cfile filename and modification time + cfile = [(cfiles (k).folder) filesep (cfiles (k).name)] ; + tc = datenum (cfiles(k).date) ; + + % get the object file name + ofile = cfiles(k).name ; + objfile = [ ofile(1:end-2) obj_extension ] ; + + % get the object file modification time + ofiles {k} = objfile ; + objlist = [ objlist ' ' objfile ] ; + dobj = dir (objfile) ; + if (isempty (dobj)) + % there is no object file; the cfile must be compiled + tobj = 0 ; + else + tobj = datenum (dobj.date) ; + end + + % compile the cfile if it is newer than its object file, or any hfile + if (make_all || tc > tobj || htime > tobj) + % compile the cfile + fprintf ('.') ; + % fprintf ('%s\n', cfile) ; + mexcmd = sprintf ('mex -c %s -silent %s %s', flags, inc, cfile) ; + if (dryrun) + fprintf ('%s\n', mexcmd) ; + else + % fprintf ('%s\n', mexcmd) ; + eval (mexcmd) ; + end + any_c_compiled = true ; + end +end + +% compile the mexFunctions +for k = 1:length (mexfunctions) + + % get the mexFunction filename and modification time + mexfunc = mexfunctions (k).name ; + mexfunction = [(mexfunctions (k).folder) filesep mexfunc] ; + tc = datenum (mexfunctions(k).date) ; + + % get the compiled mexFunction modification time + mexfunction_compiled = [ mexfunc(1:end-2) '.' mexext ] ; + dobj = dir (mexfunction_compiled) ; + if (isempty (dobj)) + % there is no compiled mexFunction; it must be compiled + tobj = 0 ; + else + tobj = datenum (dobj.date) ; + end + + % compile if it is newer than its object file, or if any cfile was compiled + if (make_all || tc > tobj || any_c_compiled) + % compile the mexFunction + mexcmd = sprintf ('mex -silent %s %s %s %s %s', ... + flags, inc, mexfunction, objlist, libraries) ; + fprintf (':') ; + % fprintf ('%s\n', mexfunction) ; + if (dryrun) + fprintf ('%s\n', mexcmd) ; + else + % fprintf ('%s\n', mexcmd) ; + eval (mexcmd) ; + end + end +end + +% compile GB_spones_mex +mex -g -R2018a GB_spones_mex.c + +% load the library +if (ispc) + cd ../build/Release + GrB (1) + cd ../../Test + pwd +end + + diff --git a/GraphBLAS/Test/unused/GB_mex_test23.c b/GraphBLAS/Test/unused/GB_mex_test23.c index 68c4970573..c0b2b435c1 100644 --- a/GraphBLAS/Test/unused/GB_mex_test23.c +++ b/GraphBLAS/Test/unused/GB_mex_test23.c @@ -9,7 +9,7 @@ #include "GB_mex.h" #include "GB_mex_errors.h" -#include "GB_stringify.h" +#include "../Source/jitifyer/GB_stringify.h" #define USAGE "GB_mex_test23" diff --git a/GraphBLAS/cmake_modules/GraphBLAS_JIT_paths.cmake b/GraphBLAS/cmake_modules/GraphBLAS_JIT_paths.cmake index a132e22c2e..0e52da17ad 100644 --- a/GraphBLAS/cmake_modules/GraphBLAS_JIT_paths.cmake +++ b/GraphBLAS/cmake_modules/GraphBLAS_JIT_paths.cmake @@ -40,11 +40,23 @@ endif ( ) if ( SUITESPARSE_HAS_CUDA AND GRAPHBLAS_USE_CUDA ) # FOR NOW: do not compile FactoryKernels when developing the CUDA kernels - set ( GRAPHBLAS_COMPACT on ) +# set ( GRAPHBLAS_COMPACT on ) # FIXME endif ( ) +include ( CheckSymbolExists ) +check_symbol_exists ( system "stdlib.h" HAVE_C_SYSTEM ) + option ( GRAPHBLAS_COMPACT "ON: do not compile FactoryKernels. OFF (default): compile FactoryKernels" OFF ) -option ( GRAPHBLAS_USE_JIT "ON (default): use the CPU JIT. OFF: do not use the CPU JIT" ON ) +option ( GRAPHBLAS_USE_JIT "ON (default): use the CPU JIT. OFF: do not use the CPU JIT" ${HAVE_C_SYSTEM} ) + +if ( GRAPHBLAS_USE_JIT AND NOT HAVE_C_SYSTEM ) + if ( SUITESPARSE_USE_STRICT ) + message ( FATAL_ERROR "GRAPHBLAS CPU JIT cannot be built without support for the C standard function 'system'." ) + else ( ) + message ( STATUS "C standard function 'system' cannot be used. GRAPHBLAS CPU JIT will be disabled." ) + set ( GRAPHBLAS_USE_JIT OFF CACHE BOOL "ON (default): use the CPU JIT. OFF: do not use the CPU JIT" FORCE ) + endif ( ) +endif ( ) if ( GRAPHBLAS_USE_JIT ) message ( STATUS "GraphBLAS CPU JIT: enabled") diff --git a/GraphBLAS/cmake_modules/GraphBLAS_version.cmake b/GraphBLAS/cmake_modules/GraphBLAS_version.cmake index a3eba6df7d..580c5221e8 100644 --- a/GraphBLAS/cmake_modules/GraphBLAS_version.cmake +++ b/GraphBLAS/cmake_modules/GraphBLAS_version.cmake @@ -8,9 +8,9 @@ #------------------------------------------------------------------------------- # version of SuiteSparse:GraphBLAS -set ( GraphBLAS_DATE "Mar 22, 2024" ) +set ( GraphBLAS_DATE "Aug 2, 2024" ) set ( GraphBLAS_VERSION_MAJOR 9 CACHE STRING "" FORCE ) -set ( GraphBLAS_VERSION_MINOR 1 CACHE STRING "" FORCE ) +set ( GraphBLAS_VERSION_MINOR 3 CACHE STRING "" FORCE ) set ( GraphBLAS_VERSION_SUB 0 CACHE STRING "" FORCE ) # GraphBLAS C API Specification version, at graphblas.org @@ -27,3 +27,23 @@ message ( STATUS "GraphBLAS C API: v" ${GraphBLAS_API_VERSION_MAJOR}.${GraphBLAS_API_VERSION_MINOR} ", date: ${GraphBLAS_API_DATE}" ) +# Notes from Sebastien Villemot (sebastien@debian.org): +# SOVERSION policy: if a binary compiled against the old version of the shared +# library needs recompiling in order to work with the new version, then a +# SO_VERSION increase # is needed. Otherwise not. Examples of the changes that +# require a SO_VERSION increase: +# +# - a public function or static variable is removed +# - the prototype of a public function changes +# - the integer value attached to a public #define or enum changes +# - the fields of a public structure are modified +# +# Examples of changes that do not require a SO_VERSION increase: +# +# - a new public function or static variable is added +# - a private function or static variable is removed or modified +# - changes in the internals of a structure that is opaque to the calling +# program (i.e. is only a pointer manipulated through public functions of +# the library) +# - a public enum is extended (by adding a new item at the end, but without +# changing the already existing items) diff --git a/GraphBLAS/cmake_modules/SuiteSparseAtomic.cmake b/GraphBLAS/cmake_modules/SuiteSparseAtomic.cmake index 3b93432294..ddee335a93 100644 --- a/GraphBLAS/cmake_modules/SuiteSparseAtomic.cmake +++ b/GraphBLAS/cmake_modules/SuiteSparseAtomic.cmake @@ -50,7 +50,11 @@ if ( NOT TEST_FOR_STDATOMIC ) check_c_source_compiles ( "${atomic_source}" TEST_FOR_STDATOMIC_WITH_LIBATOMIC ) if ( NOT TEST_FOR_STDATOMIC_WITH_LIBATOMIC ) # fails with -latomic - message ( FATAL_ERROR "C11 atomics: failed" ) + string ( CONCAT ERR_MSG + "C11 atomics: failed.\n" + "Cannot build GraphBLAS with the used C compiler " + "(${CMAKE_C_COMPILER_ID}) and/or libraries." ) + message ( FATAL_ERROR "${ERR_MSG}" ) endif ( ) # source compiles but -latomic is required set ( LIBATOMIC_REQUIRED true ) diff --git a/GraphBLAS/cmake_modules/SuiteSparsePolicy.cmake b/GraphBLAS/cmake_modules/SuiteSparsePolicy.cmake index b6b195407c..26f22bb605 100644 --- a/GraphBLAS/cmake_modules/SuiteSparsePolicy.cmake +++ b/GraphBLAS/cmake_modules/SuiteSparsePolicy.cmake @@ -132,6 +132,10 @@ set ( CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} # Use OpenMP option ( SUITESPARSE_USE_OPENMP "ON (default): Use OpenMP in libraries by default if available. OFF: Do not use OpenMP by default." ON ) +# control the use of Python interfaces in SuiteSparse packages (currently only +# for SPEX) +option ( SUITESPARSE_USE_PYTHON "ON (default): build Python interfaces for SuiteSparse packages (SPEX). OFF: do not build Python interfaces for SuiteSparse packages" ON ) + # strict usage option ( SUITESPARSE_USE_STRICT "ON: treat all _USE__ settings as strict if they are ON. OFF (default): consider *_USE_* as preferences, not strict" OFF ) diff --git a/GraphBLAS/cpu_features/README_for_GraphBLAS.txt b/GraphBLAS/cpu_features/README_for_GraphBLAS.txt index 0f90b14e74..83ae22259d 100644 --- a/GraphBLAS/cpu_features/README_for_GraphBLAS.txt +++ b/GraphBLAS/cpu_features/README_for_GraphBLAS.txt @@ -28,9 +28,9 @@ GraphBLAS does not use the cpu_features/CMakeLists.txt to build a separate library for cpu_features. Instead, in #include's all the source files and include files from cpu_features into these files: - ../Source/GB_cpu_features.h - ../Source/GB_cpu_features_impl.c - ../Source/GB_cpu_features_support.c + ../Source/cpu/GB_cpu_features.h + ../Source/cpu/GB_cpu_features_impl.c + ../Source/cpu/GB_cpu_features_support.c the cpu_features code is embedded in libgraphblas.so and libgraphblas.a directly diff --git a/KLU/CMakeLists.txt b/KLU/CMakeLists.txt index 984507b8d8..9e52f2b038 100644 --- a/KLU/CMakeLists.txt +++ b/KLU/CMakeLists.txt @@ -12,10 +12,10 @@ cmake_minimum_required ( VERSION 3.22 ) -set ( KLU_DATE "Mar 22, 2024" ) +set ( KLU_DATE "June 20, 2024" ) set ( KLU_VERSION_MAJOR 2 CACHE STRING "" FORCE ) set ( KLU_VERSION_MINOR 3 CACHE STRING "" FORCE ) -set ( KLU_VERSION_SUB 3 CACHE STRING "" FORCE ) +set ( KLU_VERSION_SUB 4 CACHE STRING "" FORCE ) message ( STATUS "Building KLU version: v" ${KLU_VERSION_MAJOR}. @@ -43,10 +43,10 @@ include ( SuiteSparsePolicy ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.7.0 + find_package ( SuiteSparse_config 7.8.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) endif ( ) find_package ( AMD 3.3.2 diff --git a/KLU/Config/klu.h.in b/KLU/Config/klu.h.in index d606db097b..09c8780ef3 100644 --- a/KLU/Config/klu.h.in +++ b/KLU/Config/klu.h.in @@ -833,18 +833,18 @@ void klu_version (int version [3]) ; #define KLU__VERSION SUITESPARSE__VERCODE(@KLU_VERSION_MAJOR@,@KLU_VERSION_MINOR@,@KLU_VERSION_SUB@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "KLU @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "KLU @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires SuiteSparse_config 7.8.0 or later" #endif #if !defined (AMD__VERSION) || \ - (AMD__VERSION < SUITESPARSE__VERCODE(3,3,2)) -#error "KLU @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires AMD 3.3.2 or later" + (AMD__VERSION < SUITESPARSE__VERCODE(3,3,3)) +#error "KLU @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires AMD 3.3.3 or later" #endif #if !defined (COLAMD__VERSION) || \ - (COLAMD__VERSION < SUITESPARSE__VERCODE(3,3,3)) -#error "KLU @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires COLAMD 3.3.3 or later" + (COLAMD__VERSION < SUITESPARSE__VERCODE(3,3,4)) +#error "KLU @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires COLAMD 3.3.4 or later" #endif #if !defined (BTF__VERSION) || \ diff --git a/KLU/Doc/ChangeLog b/KLU/Doc/ChangeLog index 410555aa72..bb6ebb8332 100644 --- a/KLU/Doc/ChangeLog +++ b/KLU/Doc/ChangeLog @@ -1,3 +1,7 @@ +June 20, 2024: version 2.3.4 + + * minor update for MATLAB on Windows + Mar 22, 2024: version 2.3.3 * minor update to build system diff --git a/KLU/Doc/KLU_UserGuide.pdf b/KLU/Doc/KLU_UserGuide.pdf index 9b760de6dd..8a430bc7a7 100644 Binary files a/KLU/Doc/KLU_UserGuide.pdf and b/KLU/Doc/KLU_UserGuide.pdf differ diff --git a/KLU/Doc/klu_version.tex b/KLU/Doc/klu_version.tex index 17c39e27b4..6f663b4a80 100644 --- a/KLU/Doc/klu_version.tex +++ b/KLU/Doc/klu_version.tex @@ -1,2 +1,2 @@ % version of SuiteSparse/KLU -\date{VERSION 2.3.3, Mar 22, 2024} +\date{VERSION 2.3.4, June 20, 2024} diff --git a/KLU/Include/klu.h b/KLU/Include/klu.h index 461cda90c2..da3ae6f390 100644 --- a/KLU/Include/klu.h +++ b/KLU/Include/klu.h @@ -823,33 +823,33 @@ void klu_version (int version [3]) ; * #endif */ -#define KLU_DATE "Mar 22, 2024" +#define KLU_DATE "June 20, 2024" #define KLU_MAIN_VERSION 2 #define KLU_SUB_VERSION 3 -#define KLU_SUBSUB_VERSION 3 +#define KLU_SUBSUB_VERSION 4 #define KLU_VERSION_CODE(main,sub) SUITESPARSE_VER_CODE(main,sub) #define KLU_VERSION KLU_VERSION_CODE(2,3) -#define KLU__VERSION SUITESPARSE__VERCODE(2,3,3) +#define KLU__VERSION SUITESPARSE__VERCODE(2,3,4) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "KLU 2.3.3 requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "KLU 2.3.4 requires SuiteSparse_config 7.8.0 or later" #endif #if !defined (AMD__VERSION) || \ - (AMD__VERSION < SUITESPARSE__VERCODE(3,3,2)) -#error "KLU 2.3.3 requires AMD 3.3.2 or later" + (AMD__VERSION < SUITESPARSE__VERCODE(3,3,3)) +#error "KLU 2.3.4 requires AMD 3.3.3 or later" #endif #if !defined (COLAMD__VERSION) || \ - (COLAMD__VERSION < SUITESPARSE__VERCODE(3,3,3)) -#error "KLU 2.3.3 requires COLAMD 3.3.3 or later" + (COLAMD__VERSION < SUITESPARSE__VERCODE(3,3,4)) +#error "KLU 2.3.4 requires COLAMD 3.3.4 or later" #endif #if !defined (BTF__VERSION) || \ (BTF__VERSION < SUITESPARSE__VERCODE(2,3,2)) -#error "KLU 2.3.3 requires BTF 2.3.2 or later" +#error "KLU 2.3.4 requires BTF 2.3.2 or later" #endif #endif diff --git a/KLU/MATLAB/klu_make.m b/KLU/MATLAB/klu_make.m index 29fedd61f4..eff0f08064 100644 --- a/KLU/MATLAB/klu_make.m +++ b/KLU/MATLAB/klu_make.m @@ -34,6 +34,8 @@ if (ispc) % MSVC does not define ssize_t d = [d ' -DNO_SSIZE_T'] ; + % disable the SuiteSparse_config timer + d = ['-DNTIMER ' d] ; end fprintf ('Compiling KLU ') ; diff --git a/KLU/Tcov/Makefile b/KLU/Tcov/Makefile index 14474247fb..48d61cc68c 100644 --- a/KLU/Tcov/Makefile +++ b/KLU/Tcov/Makefile @@ -22,7 +22,7 @@ LDLIBS = -L../../lib \ -lm -lrt \ -Wl,-rpath=../../lib -lstdc++ -I = -I../../include/suitesparse -I../Include -I../User -I../../BTF/Include -I../Source +I = -I../../include/suitesparse -I../Include -I../User -I../../BTF/Include -I../Source -I/usr/local/cuda/include all: klutest klultest - ./klultests > klultests.out diff --git a/KLU/User/klu_cholmod.c b/KLU/User/klu_cholmod.c index 887e03bc49..1226f6436c 100644 --- a/KLU/User/klu_cholmod.c +++ b/KLU/User/klu_cholmod.c @@ -22,8 +22,8 @@ #include "klu_cholmod.h" #include "cholmod.h" -#if (CHOLMOD__VERSION < SUITESPARSE__VERCODE(5,2,1)) -#error "KLU:CHOLMOD @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires CHOLMOD 5.2.1 or later" +#if (CHOLMOD__VERSION < SUITESPARSE__VERCODE(5,3,0)) +#error "KLU:CHOLMOD @KLU_VERSION_MAJOR@.@KLU_VERSION_MINOR@.@KLU_VERSION_SUB@ requires CHOLMOD 5.3.0 or later" #endif #define TRUE 1 diff --git a/LDL/Demo/ldlamd.out b/LDL/Demo/ldlamd.out index efb268129c..9d525ccd05 100644 --- a/LDL/Demo/ldlamd.out +++ b/LDL/Demo/ldlamd.out @@ -7,7 +7,7 @@ name: Dense/0 n: 0 entries: 0 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -15,7 +15,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 0 @@ -38,7 +38,7 @@ name: Dense/0 n: 0 entries: 0 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -46,7 +46,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 0 @@ -69,7 +69,7 @@ name: Dense/1 n: 1 entries: 1 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -77,7 +77,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 1 nz, number of nonzeros in A: 1 @@ -120,7 +120,7 @@ name: Dense/1 n: 1 entries: 2 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -128,7 +128,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 1 nz, number of nonzeros in A: 1 @@ -171,7 +171,7 @@ name: Dense/2 n: 2 entries: 4 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -179,7 +179,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 2 nz, number of nonzeros in A: 4 @@ -222,7 +222,7 @@ name: Dense/2 n: 2 entries: 5 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -230,7 +230,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 2 nz, number of nonzeros in A: 4 @@ -273,7 +273,7 @@ name: Dense/3 n: 3 entries: 9 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -281,7 +281,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 3 nz, number of nonzeros in A: 9 @@ -324,7 +324,7 @@ name: Dense/3 n: 3 entries: 11 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -332,7 +332,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 3 nz, number of nonzeros in A: 9 @@ -375,7 +375,7 @@ name: HB/can_24 n: 24 entries: 160 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -383,7 +383,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 @@ -426,7 +426,7 @@ name: HB/can_24 n: 24 entries: 188 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -434,7 +434,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 24 nz, number of nonzeros in A: 160 @@ -477,7 +477,7 @@ name: FIDAP/ex5 n: 27 entries: 279 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -485,7 +485,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 27 nz, number of nonzeros in A: 279 @@ -528,7 +528,7 @@ name: FIDAP/ex5 n: 27 entries: 325 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -536,7 +536,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 27 nz, number of nonzeros in A: 279 @@ -579,7 +579,7 @@ name: HB/bcsstk01 n: 48 entries: 400 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -587,7 +587,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 400 @@ -630,7 +630,7 @@ name: HB/bcsstk01 n: 48 entries: 472 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -638,7 +638,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 400 @@ -681,7 +681,7 @@ name: HB/bcsstm01 n: 48 entries: 24 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -689,7 +689,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 24 @@ -732,7 +732,7 @@ name: HB/bcsstm01 n: 48 entries: 26 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -740,7 +740,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 24 @@ -783,7 +783,7 @@ name: Pothen/mesh1e1 n: 48 entries: 306 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -791,7 +791,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 306 @@ -834,7 +834,7 @@ name: Pothen/mesh1e1 n: 48 entries: 359 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -842,7 +842,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 306 @@ -885,7 +885,7 @@ name: Bai/bfwb62 n: 62 entries: 342 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -893,7 +893,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 62 nz, number of nonzeros in A: 342 @@ -936,7 +936,7 @@ name: Bai/bfwb62 n: 62 entries: 407 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -944,7 +944,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 62 nz, number of nonzeros in A: 342 @@ -987,7 +987,7 @@ name: HB/bcsstk02 n: 66 entries: 4356 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -995,7 +995,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 66 nz, number of nonzeros in A: 4356 @@ -1038,7 +1038,7 @@ name: HB/bcsstk02 n: 66 entries: 5175 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1046,7 +1046,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 66 nz, number of nonzeros in A: 4356 @@ -1089,7 +1089,7 @@ name: HB/bcsstm02 n: 66 entries: 66 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1097,7 +1097,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 66 nz, number of nonzeros in A: 66 @@ -1140,7 +1140,7 @@ name: HB/bcsstm02 n: 66 entries: 72 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1148,7 +1148,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 4 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 66 nz, number of nonzeros in A: 66 diff --git a/LDL/Demo/ldllamd.out b/LDL/Demo/ldllamd.out index 8b11c9b218..b4bf6608da 100644 --- a/LDL/Demo/ldllamd.out +++ b/LDL/Demo/ldllamd.out @@ -7,7 +7,7 @@ name: Dense/0 n: 0 entries: 0 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -15,7 +15,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 0 @@ -38,7 +38,7 @@ name: Dense/0 n: 0 entries: 0 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -46,7 +46,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 0 @@ -69,7 +69,7 @@ name: Dense/1 n: 1 entries: 1 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -77,7 +77,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 1 nz, number of nonzeros in A: 1 @@ -120,7 +120,7 @@ name: Dense/1 n: 1 entries: 2 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -128,7 +128,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 1 nz, number of nonzeros in A: 1 @@ -171,7 +171,7 @@ name: Dense/2 n: 2 entries: 4 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -179,7 +179,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 2 nz, number of nonzeros in A: 4 @@ -222,7 +222,7 @@ name: Dense/2 n: 2 entries: 5 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -230,7 +230,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 2 nz, number of nonzeros in A: 4 @@ -273,7 +273,7 @@ name: Dense/3 n: 3 entries: 9 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -281,7 +281,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 3 nz, number of nonzeros in A: 9 @@ -324,7 +324,7 @@ name: Dense/3 n: 3 entries: 11 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -332,7 +332,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 3 nz, number of nonzeros in A: 9 @@ -375,7 +375,7 @@ name: HB/can_24 n: 24 entries: 160 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -383,7 +383,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 24 nz, number of nonzeros in A: 160 @@ -426,7 +426,7 @@ name: HB/can_24 n: 24 entries: 188 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -434,7 +434,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 24 nz, number of nonzeros in A: 160 @@ -477,7 +477,7 @@ name: FIDAP/ex5 n: 27 entries: 279 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -485,7 +485,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 27 nz, number of nonzeros in A: 279 @@ -528,7 +528,7 @@ name: FIDAP/ex5 n: 27 entries: 325 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -536,7 +536,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 27 nz, number of nonzeros in A: 279 @@ -579,7 +579,7 @@ name: HB/bcsstk01 n: 48 entries: 400 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -587,7 +587,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 400 @@ -630,7 +630,7 @@ name: HB/bcsstk01 n: 48 entries: 472 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -638,7 +638,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 400 @@ -681,7 +681,7 @@ name: HB/bcsstm01 n: 48 entries: 24 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -689,7 +689,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 24 @@ -732,7 +732,7 @@ name: HB/bcsstm01 n: 48 entries: 26 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -740,7 +740,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 24 @@ -783,7 +783,7 @@ name: Pothen/mesh1e1 n: 48 entries: 306 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -791,7 +791,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 48 nz, number of nonzeros in A: 306 @@ -834,7 +834,7 @@ name: Pothen/mesh1e1 n: 48 entries: 359 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -842,7 +842,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 48 nz, number of nonzeros in A: 306 @@ -885,7 +885,7 @@ name: Bai/bfwb62 n: 62 entries: 342 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -893,7 +893,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 62 nz, number of nonzeros in A: 342 @@ -936,7 +936,7 @@ name: Bai/bfwb62 n: 62 entries: 407 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -944,7 +944,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 62 nz, number of nonzeros in A: 342 @@ -987,7 +987,7 @@ name: HB/bcsstk02 n: 66 entries: 4356 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -995,7 +995,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 66 nz, number of nonzeros in A: 4356 @@ -1038,7 +1038,7 @@ name: HB/bcsstk02 n: 66 entries: 5175 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1046,7 +1046,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 66 nz, number of nonzeros in A: 4356 @@ -1089,7 +1089,7 @@ name: HB/bcsstm02 n: 66 entries: 66 -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1097,7 +1097,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK n, dimension of A: 66 nz, number of nonzeros in A: 66 @@ -1140,7 +1140,7 @@ name: HB/bcsstm02 n: 66 entries: 72 (jumbled version) -------------------------------------------------------- -AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering +AMD version 3.3.3, June 20, 2024: approximate minimum degree ordering dense row parameter: 10 (rows with more than max (10 * sqrt (n), 16) entries are considered "dense", and placed last in output permutation) @@ -1148,7 +1148,7 @@ AMD version 3.3.2, Mar 22, 2024: approximate minimum degree ordering size of AMD integer: 8 -AMD version 3.3.2, Mar 22, 2024, results: +AMD version 3.3.3, June 20, 2024, results: status: OK, but jumbled n, dimension of A: 66 nz, number of nonzeros in A: 66 diff --git a/LDL/Demo/ldlsimple.out b/LDL/Demo/ldlsimple.out index ceb3ceb7fd..c72fa99982 100644 --- a/LDL/Demo/ldlsimple.out +++ b/LDL/Demo/ldlsimple.out @@ -1,4 +1,4 @@ -LDL 3.3.2 in SuiteSparse 7.7.0 +LDL 3.3.2 in SuiteSparse 7.8.0 Nonzeros in L, excluding diagonal: 13 x [0] = 0.1 x [1] = 0.2 diff --git a/LICENSE.txt b/LICENSE.txt index a7c00205be..722cb63d0b 100644 --- a/LICENSE.txt +++ b/LICENSE.txt @@ -2,15 +2,14 @@ This file lists all licenses for all packages in SuiteSparse, for your convenience. Each package has its own separate license, which can be found in the lists below. -==> SPEX/License/license.txt <== +==> SPEX/LICENSE <== - SPEX: a Sparse Left-looking Integer-Preserving LU Factorization + SPEX: a SParse EXact Factorization Framework for solving SLEs - Copyright (c) 2019-2024, Christopher Lourenco, JinHao Chen, + Copyright (c) 2019-2024, Christopher Lourenco, Jinhao Chen, Lorena Mejia Domenzain, Erick Moreno-Centeno, and Timothy A. Davis. Available at: - https://github.com/clouren/SPEX http://suitesparse.com diff --git a/Makefile b/Makefile index 8305e68b34..a598f5c2c7 100644 --- a/Makefile +++ b/Makefile @@ -193,7 +193,6 @@ demos: # Create the PDF documentation docs: ( cd GraphBLAS && $(MAKE) docs ) - ( cd Mongoose && $(MAKE) docs ) ( cd AMD && $(MAKE) docs ) ( cd CAMD && $(MAKE) docs ) ( cd KLU && $(MAKE) docs ) @@ -203,6 +202,7 @@ docs: ( cd ParU && $(MAKE) docs ) ( cd SPQR && $(MAKE) docs ) ( cd SPEX && $(MAKE) docs ) + ( cd Mongoose && $(MAKE) docs ) # statement coverage (Linux only); this requires a lot of time. cov: local install diff --git a/Mongoose/CMakeLists.txt b/Mongoose/CMakeLists.txt index a6ba8a3687..018f9880b5 100644 --- a/Mongoose/CMakeLists.txt +++ b/Mongoose/CMakeLists.txt @@ -35,11 +35,11 @@ cmake_minimum_required ( VERSION 3.22 ) -set ( Mongoose_DATE "Mar 22, 2024" ) -set ( Mongoose_NUMERIC_DATE "2024-03-22" ) +set ( Mongoose_DATE "June 20, 2024" ) +set ( Mongoose_NUMERIC_DATE "2024-06-20" ) set ( Mongoose_VERSION_MAJOR 3 CACHE STRING "" FORCE ) set ( Mongoose_VERSION_MINOR 3 CACHE STRING "" FORCE ) -set ( Mongoose_VERSION_PATCH 3 CACHE STRING "" FORCE ) +set ( Mongoose_VERSION_PATCH 4 CACHE STRING "" FORCE ) message ( STATUS "Building Mongoose version: v" ${Mongoose_VERSION_MAJOR}. @@ -69,10 +69,10 @@ include ( SuiteSparsePolicy ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.7.0 + find_package ( SuiteSparse_config 7.8.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) endif ( ) endif ( ) diff --git a/Mongoose/Doc/title-info.tex b/Mongoose/Doc/title-info.tex index 3666b87459..4cd10fdc56 100644 --- a/Mongoose/Doc/title-info.tex +++ b/Mongoose/Doc/title-info.tex @@ -1,3 +1,3 @@ -\title{Mongoose User Guide, Version 3.3.3} +\title{Mongoose User Guide, Version 3.3.4} \author{Scott Kolodziej, Nuri Yeralan, Tim Davis, William W. Hager} -\date{Mar 22, 2024} +\date{June 20, 2024} diff --git a/Mongoose/Include/Mongoose.hpp b/Mongoose/Include/Mongoose.hpp index f4c2ba2686..eb2ac8d84a 100644 --- a/Mongoose/Include/Mongoose.hpp +++ b/Mongoose/Include/Mongoose.hpp @@ -20,13 +20,13 @@ // Configuration information from CMake #define Mongoose_VERSION_MAJOR 3 #define Mongoose_VERSION_MINOR 3 -#define Mongoose_VERSION_PATCH 3 -#define Mongoose_DATE "Mar 22, 2024" +#define Mongoose_VERSION_PATCH 4 +#define Mongoose_DATE "June 20, 2024" -#define Mongoose__VERSION SUITESPARSE__VERCODE(3,3,3) +#define Mongoose__VERSION SUITESPARSE__VERCODE(3,3,4) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "Mongoose 3.3.3 requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "Mongoose 3.3.4 requires SuiteSparse_config 7.8.0 or later" #endif #if defined (_MSC_VER) && ! defined (__INTEL_COMPILER) diff --git a/Mongoose/Include/Mongoose_Internal.hpp b/Mongoose/Include/Mongoose_Internal.hpp index 0012d1449b..cbf7eb4e64 100644 --- a/Mongoose/Include/Mongoose_Internal.hpp +++ b/Mongoose/Include/Mongoose_Internal.hpp @@ -27,6 +27,7 @@ #include #include #include +#include /* Memory Management */ #include "SuiteSparse_config.h" diff --git a/Mongoose/MATLAB/mongoose_make.m b/Mongoose/MATLAB/mongoose_make.m index 8ace8b9cb5..5ec5e6a4ca 100644 --- a/Mongoose/MATLAB/mongoose_make.m +++ b/Mongoose/MATLAB/mongoose_make.m @@ -38,6 +38,9 @@ function mongoose_make (run_test) % Append optimization flags = [flags ' -O -silent COPTIMFLAGS="-O3 -fwrapv"']; +% Append while building objects for shared library +flags = [flags ' -DMONGOOSE_BUILDING']; + cpp_flags = '' ; lib = ''; if (isunix) @@ -47,6 +50,11 @@ function mongoose_make (run_test) end end +if (ispc) + % disable the SuiteSparse_config timer + flags = [' -DNTIMER ' flags] ; +end + % Fix the include & library path. include = strrep (include, '/', filesep) ; lib = strrep (lib, '/', filesep) ; @@ -147,7 +155,12 @@ function mongoose_make (run_test) slash = slash (end) + 1 ; end o = ff (slash:end) ; - obj_files = [obj_files ' ' o '.o'] ; %#ok + if (ispc) + obj = '.obj' ; + else + obj = '.o' ; + end + obj_files = [obj_files ' ' o obj] ; %#ok s = sprintf ('mex %s %s -c %s.%s', flags, include, ff, ext) ; kk = do_cmd (s, kk, details) ; end @@ -167,8 +180,3 @@ function mongoose_make (run_test) end eval (s) ; -%------------------------------------------------------------------------------- -% function v = getversion -% determine the MATLAB version, and return it as a double. -% v = sscanf (version, '%d.%d.%d') ; -% v = 10.^(0:-1:-(length(v)-1)) * v ; diff --git a/Mongoose/Version/Mongoose.hpp.in b/Mongoose/Version/Mongoose.hpp.in index d95a9692c6..b0f604c22d 100644 --- a/Mongoose/Version/Mongoose.hpp.in +++ b/Mongoose/Version/Mongoose.hpp.in @@ -25,8 +25,8 @@ #define Mongoose__VERSION SUITESPARSE__VERCODE(@Mongoose_VERSION_MAJOR@,@Mongoose_VERSION_MINOR@,@Mongoose_VERSION_PATCH@) #if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "Mongoose @Mongoose_VERSION_MAJOR@.@Mongoose_VERSION_MINOR@.@Mongoose_VERSION_PATCH@ requires SuiteSparse_config 7.7.0 or later" + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "Mongoose @Mongoose_VERSION_MAJOR@.@Mongoose_VERSION_MINOR@.@Mongoose_VERSION_PATCH@ requires SuiteSparse_config 7.8.0 or later" #endif #if defined (_MSC_VER) && ! defined (__INTEL_COMPILER) diff --git a/Mongoose/codemeta.json b/Mongoose/codemeta.json index 2b66c49d4c..183ec1dea8 100644 --- a/Mongoose/codemeta.json +++ b/Mongoose/codemeta.json @@ -7,8 +7,8 @@ "codeRepository": "https://github.com/ScottKolo/Mongoose", "issueTracker": "https://github.com/ScottKolo/Mongoose/issues", "license": "https://spdx.org/licenses/GPL-3.0-only.html", - "version": "3.3.3", - "softwareVersion": "3.3.3", + "version": "3.3.4", + "softwareVersion": "3.3.4", "author": [ { "@type": "Person", @@ -47,7 +47,7 @@ }, "contIntegration": "https://travis-ci.com/ScottKolo/Mongoose", "developmentStatus": "active", - "downloadUrl": "https://github.com/ScottKolo/Mongoose/archive/v3.3.3.zip", + "downloadUrl": "https://github.com/ScottKolo/Mongoose/archive/v3.3.4.zip", "funding":"Office of Naval Research grant N00014-11-1-0068", "funding":"Office of Naval Research grant N00014-15-1-2048", "funding":"Office of Naval Research grant N00014-18-1-2100", @@ -66,7 +66,7 @@ ], "dateCreated":"2018-04-09", "datePublished":"2018-05-25", - "dateModified":"2024-03-22", + "dateModified":"2024-06-20", "programmingLanguage": "C++", "programmingLanguage": "MATLAB" } diff --git a/ParU/CMakeLists.txt b/ParU/CMakeLists.txt index 7055750b13..c273196d3b 100644 --- a/ParU/CMakeLists.txt +++ b/ParU/CMakeLists.txt @@ -2,9 +2,9 @@ # SuiteSparse/ParU/CMakeLists.txt: cmake for ParU #------------------------------------------------------------------------------- -# ParU, Copyright (c) 2022-2023, Mohsen Aznaveh and Timothy A. Davis, +# ParU, Copyright (c) 2022-2024, Mohsen Aznaveh and Timothy A. Davis, # All Rights Reserved. -# SPDX-License-Identifier: GNU GPL 3.0 +# SPDX-License-Identifier: GPL-3.0-or-later #------------------------------------------------------------------------------- # get the version @@ -13,10 +13,10 @@ # cmake 3.22 is required to find the BLAS in SuiteSparse_config cmake_minimum_required ( VERSION 3.22 ) -set ( PARU_DATE "Mar 22, 2024" ) +set ( PARU_DATE "Aug 2, 2024" ) set ( PARU_VERSION_MAJOR 0 CACHE STRING "" FORCE ) -set ( PARU_VERSION_MINOR 1 CACHE STRING "" FORCE ) -set ( PARU_VERSION_UPDATE 3 CACHE STRING "" FORCE ) +set ( PARU_VERSION_MINOR 2 CACHE STRING "" FORCE ) +set ( PARU_VERSION_UPDATE 0 CACHE STRING "" FORCE ) message ( STATUS "Building PARU version: v" ${PARU_VERSION_MAJOR}. @@ -97,21 +97,21 @@ endif ( ) #------------------------------------------------------------------------------- if ( NOT SUITESPARSE_ROOT_CMAKELISTS ) - find_package ( SuiteSparse_config 7.7.0 + find_package ( SuiteSparse_config 7.8.0 PATHS ${CMAKE_SOURCE_DIR}/../SuiteSparse_config/build NO_DEFAULT_PATH ) if ( NOT TARGET SuiteSparse::SuiteSparseConfig ) - find_package ( SuiteSparse_config 7.7.0 REQUIRED ) + find_package ( SuiteSparse_config 7.8.0 REQUIRED ) endif ( ) - find_package ( CHOLMOD 5.2.1 + find_package ( CHOLMOD 5.3.0 PATHS ${CMAKE_SOURCE_DIR}/../CHOLMOD/build NO_DEFAULT_PATH ) if ( NOT CHOLMOD_FOUND ) - find_package ( CHOLMOD 5.2.1 REQUIRED ) + find_package ( CHOLMOD 5.3.0 REQUIRED ) endif ( ) find_package ( UMFPACK 6.3.3 PATHS ${CMAKE_SOURCE_DIR}/../UMFPACK/build NO_DEFAULT_PATH ) - if ( NOT CAMD_FOUND ) + if ( NOT UMFPACK_FOUND ) find_package ( UMFPACK 6.3.3 REQUIRED ) endif ( ) endif ( ) @@ -122,23 +122,14 @@ include ( SuiteSparseBLAS ) # requires cmake 3.22 # configure files #------------------------------------------------------------------------------- -configure_file ( "Config/ParU_definitions.h.in" - "${PROJECT_SOURCE_DIR}/Include/ParU_definitions.h" +configure_file ( "Config/ParU.h.in" + "${PROJECT_SOURCE_DIR}/Include/ParU.h" NEWLINE_STYLE LF ) configure_file ( "Config/paru_version.tex.in" "${PROJECT_SOURCE_DIR}/Doc/paru_version.tex" NEWLINE_STYLE LF ) -#------------------------------------------------------------------------------- -# include directories -#------------------------------------------------------------------------------- - -# FIXME: "paru_internal.hpp" includes "umf_internal.h" which is not installed. -# That means the two libraries are interdependent and ParU cannot be -# built as a stand-alone project outside a common build tree. -include_directories ( Source Include - ${PROJECT_SOURCE_DIR}/../UMFPACK/Source - ) +include_directories ( Source Include ) #------------------------------------------------------------------------------- # dynamic paru library properties @@ -155,7 +146,7 @@ if ( BUILD_SHARED_LIBS ) CXX_STANDARD_REQUIRED ON OUTPUT_NAME paru SOVERSION ${PARU_VERSION_MAJOR} - PUBLIC_HEADER "Include/ParU.hpp;Include/ParU_C.h;Include/ParU_definitions.h" + PUBLIC_HEADER "Include/ParU.h" WINDOWS_EXPORT_ALL_SYMBOLS ON ) if ( ${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.25" ) @@ -178,7 +169,7 @@ if ( BUILD_STATIC_LIBS ) CXX_STANDARD 11 CXX_STANDARD_REQUIRED ON OUTPUT_NAME paru - PUBLIC_HEADER "Include/ParU.hpp;Include/ParU_C.h;Include/ParU_definitions.h" + PUBLIC_HEADER "Include/ParU.h" WINDOWS_EXPORT_ALL_SYMBOLS ON ) if ( MSVC OR ("${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC") ) @@ -199,15 +190,19 @@ endif ( ) # additional definitions #------------------------------------------------------------------------------- -if ( (APPLE OR WIN32) AND CMAKE_C_COMPILER_ID STREQUAL "GNU" ) +if (( NOT PARU_HAS_OPENMP ) OR + ((APPLE OR WIN32) AND CMAKE_C_COMPILER_ID STREQUAL "GNU" )) # Some parallelization levels don't work correctly with GCC on Windows or - # Mac (because of emuTLS?). Omit them. + # Mac (because of emuTLS?). Omit them. See the user guide for details. + message ( STATUS "ParU frontal tree tasking: sequential") if ( BUILD_SHARED_LIBS ) target_compile_definitions (ParU PRIVATE PARU_1TASK ) endif ( ) if ( BUILD_STATIC_LIBS ) target_compile_definitions (ParU_static PRIVATE PARU_1TASK ) endif ( ) +else ( ) + message ( STATUS "ParU frontal tree tasking: parallel") endif ( ) #------------------------------------------------------------------------------- @@ -434,7 +429,8 @@ if ( SUITESPARSE_DEMOS ) target_link_libraries ( paru_demo PUBLIC ParU_static ) endif ( ) target_link_libraries ( paru_demo - PUBLIC SuiteSparse::CHOLMOD SuiteSparse::UMFPACK OpenMP::OpenMP_CXX ) + PUBLIC SuiteSparse::CHOLMOD SuiteSparse::UMFPACK + SuiteSparse::SuiteSparseConfig OpenMP::OpenMP_CXX ) add_executable ( paru_democ "Demo/paru_democ.c" ) if ( BUILD_SHARED_LIBS ) @@ -443,7 +439,8 @@ if ( SUITESPARSE_DEMOS ) target_link_libraries ( paru_democ PUBLIC ParU_static ) endif ( ) target_link_libraries ( paru_democ - PUBLIC SuiteSparse::CHOLMOD SuiteSparse::UMFPACK OpenMP::OpenMP_C ) + PUBLIC SuiteSparse::CHOLMOD SuiteSparse::UMFPACK + SuiteSparse::SuiteSparseConfig OpenMP::OpenMP_C ) endif ( ) add_executable ( paru_simple "Demo/paru_simple.cpp" ) diff --git a/ParU/Config/ParU.h.in b/ParU/Config/ParU.h.in new file mode 100644 index 0000000000..d9ef6506a0 --- /dev/null +++ b/ParU/Config/ParU.h.in @@ -0,0 +1,999 @@ +// ============================================================================/ +// ======================= ParU.h =============================================/ +// ============================================================================/ + +// ParU, Copyright (c) 2022-2024, Mohsen Aznaveh and Timothy A. Davis, +// All Rights Reserved. +// SPDX-License-Identifier: GPL-3.0-or-later + +//------------------------------------------------------------------------------ + +// This is the ParU.h file. All user callable routines are in this file and +// all of them start with ParU_*. This file must be included in all user code +// that use ParU. +// +// ParU is a parallel sparse direct solver. This package uses OpenMP tasking +// for parallelism. ParU calls UMFPACK for symbolic analysis phase, after that +// some symbolic analysis is done by ParU itself and then numeric phase +// starts. The numeric computation is a task parallel phase using OpenMP and +// each task calls parallel BLAS; i.e. nested parallism. +// +// The performance of BLAS has a heavy impact on the performance of ParU. +// However, depending on the input problem performance of parallelism in BLAS +// sometimes does not have an effect on the ParU performance. +// +// General Usage for solving Ax = b, where A is a sparse matrix in a CHOLMOD +// sparse matrix data structure with double entries and b is a dense vector of +// double (or a dense matrix B for multiple rhs): +// +// info = ParU_InitControl (&Control) ; +// info = ParU_Analyze (A, &Sym, Control) ; +// info = ParU_Factorize (A, Sym, &Num, Control) ; +// info = ParU_Solve (Sym, Num, b, x, Control) ; +// +// See paru_demo for more examples + +#ifndef PARU_H +#define PARU_H + +// ============================================================================/ +// include files and ParU version +// ============================================================================/ + +#include "SuiteSparse_config.h" +#include "cholmod.h" +#include "umfpack.h" + +typedef enum ParU_Info +{ + PARU_SUCCESS = 0, // everying is fine + PARU_OUT_OF_MEMORY = -1, // ParU ran out of memory + PARU_INVALID = -2, // inputs are invalid (NULL, for example) + PARU_SINGULAR = -3, // matrix is numerically singular + PARU_TOO_LARGE = -4 // problem too large for the BLAS +} ParU_Info ; + +#define PARU_DATE "@PARU_DATE@" +#define PARU_VERSION_MAJOR @PARU_VERSION_MAJOR@ +#define PARU_VERSION_MINOR @PARU_VERSION_MINOR@ +#define PARU_VERSION_UPDATE @PARU_VERSION_UPDATE@ + +#define PARU__VERSION SUITESPARSE__VERCODE(@PARU_VERSION_MAJOR@,@PARU_VERSION_MINOR@,@PARU_VERSION_UPDATE@) +#if !defined (SUITESPARSE__VERSION) || \ + (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,8,0)) +#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires SuiteSparse_config 7.8.0 or later" +#endif + +#if !defined (UMFPACK__VERSION) || \ + (UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,4)) +#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires UMFPACK 6.3.4 or later" +#endif + +#if !defined (CHOLMOD__VERSION) || \ + (CHOLMOD__VERSION < SUITESPARSE__VERCODE(5,3,0)) +#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires CHOLMOD 5.3.0 or later" +#endif + +// the same values as UMFPACK_STRATEGY defined in UMFPACK/Include/umfpack.h +#define PARU_STRATEGY_AUTO 0 // decided to use sym. or unsym. strategy +#define PARU_STRATEGY_UNSYMMETRIC 1 // COLAMD(A), metis, ... +#define PARU_STRATEGY_SYMMETRIC 3 // prefer diagonal + +#if 0 +#define UMFPACK_STRATEGY_AUTO 0 /* use sym. or unsym. strategy */ +#define UMFPACK_STRATEGY_UNSYMMETRIC 1 /* COLAMD(A), coletree postorder, + not prefer diag*/ +#define UMFPACK_STRATEGY_OBSOLETE 2 /* 2-by-2 is no longer available */ +#define UMFPACK_STRATEGY_SYMMETRIC 3 /* AMD(A+A'), no coletree postorder, + prefer diagonal */ +#endif + +// enum for ParU_Get for Symbolic/Numeric objects +typedef enum +{ + // int64_t scalars: + PARU_GET_N = 0, // # of rows/columns of A and its factors + PARU_GET_ANZ = 1, // # of entries in input matrix + PARU_GET_LNZ_BOUND = 2, // # of entries held in L + PARU_GET_UNZ_BOUND = 3, // # of entries held in U + PARU_GET_NROW_SINGLETONS = 4, // # of row singletons + PARU_GET_NCOL_SINGLETONS = 5, // # of column singletons + PARU_GET_STRATEGY = 6, // strategy used by ParU + PARU_GET_UMFPACK_STRATEGY = 7, // strategy used by UMFPACK + PARU_GET_ORDERING = 8, // ordering used by UMFPACK + + // int64_t arrays of size n: + PARU_GET_P = 101, // partial pivoting row ordering + PARU_GET_Q = 102, // fill-reducing column ordering + + // double scalars: + PARU_GET_FLOPS_BOUND = 201, // flop count for factorization (bound) + PARU_GET_RCOND_ESTIMATE = 202, // rcond estimate + PARU_GET_MIN_UDIAG = 203, // min (abs (diag (U))) + PARU_GET_MAX_UDIAG = 204, // max (abs (diag (U))) + + // double array of size n: + PARU_GET_ROW_SCALE_FACTORS = 301, // row scaling factors + +} +ParU_Get_enum ; + +// enum for ParU_Set/ParU_Get for Control object +typedef enum +{ + + // int64_t parameters for ParU_Set and ParU_Get: + PARU_CONTROL_MAX_THREADS = 1001, // max number of threads + PARU_CONTROL_STRATEGY = 1002, // ParU strategy + PARU_CONTROL_UMFPACK_STRATEGY = 1003, // UMFPACK strategy + PARU_CONTROL_ORDERING = 1004, // UMFPACK ordering + PARU_CONTROL_RELAXED_AMALGAMATION = 1005, // goal for # pivots in fronts + PARU_CONTROL_PANEL_WIDTH = 1006, // # of pivots in a panel + PARU_CONTROL_DGEMM_TINY = 1007, // dimension of tiny dgemm's + PARU_CONTROL_DGEMM_TASKED = 1008, // dimension of tasked dgemm's + PARU_CONTROL_DTRSM_TASKED = 1009, // dimension of tasked dtrsm's + PARU_CONTROL_PRESCALE = 1010, // prescale input matrix + PARU_CONTROL_SINGLETONS = 1011, // filter singletons, or not + PARU_CONTROL_MEM_CHUNK = 1012, // chunk size of memset and memcpy + + // int64_t parameter, for ParU_Get only: + PARU_CONTROL_OPENMP = 1013, // if ParU compiled with OpenMP; + // (for ParU_Get only, not set) + + // double parameters for ParU_Set and ParU_Get: + PARU_CONTROL_PIVOT_TOLERANCE = 2001, // pivot tolerance + PARU_CONTROL_DIAG_PIVOT_TOLERANCE = 2002, // diagonal pivot tolerance + + // pointer to const string (const char **), for ParU_Get only: + PARU_CONTROL_BLAS_LIBRARY_NAME = 3001, // BLAS library used + PARU_CONTROL_FRONT_TREE_TASKING = 3002, // parallel or sequential + +} +ParU_Control_enum ; + +// ordering options available to ParU: +#define PARU_ORDERING_CHOLMOD UMFPACK_ORDERING_CHOLMOD +#define PARU_ORDERING_AMD UMFPACK_ORDERING_AMD +#define PARU_ORDERING_METIS UMFPACK_ORDERING_METIS +#define PARU_ORDERING_BEST UMFPACK_ORDERING_BEST +#define PARU_ORDERING_NONE UMFPACK_ORDERING_NONE +#define PARU_ORDERING_METIS_GUARD UMFPACK_ORDERING_METIS_GUARD + +// scaling options for ParU: +#define PARU_PRESCALE_NONE 0 +#define PARU_PRESCALE_SUM 1 +#define PARU_PRESCALE_MAX 2 + + // ordering options described: + // PARU_ORDERING_CHOLMOD: use CHOLMOD (AMD/COLAMD then METIS, see below) + // PARU_ORDERING_AMD: use AMD on A+A' (symmetric strategy) or COLAMD + // (unsymmetric strategy) + // PARU_ORDERING_METIS: use METIS on A+A' (symmetric strategy) or A'A + // (unsymmetric strategy) + // PARU_ORDERING_BEST: try many orderings, pick best + // PARU_ORDERING_NONE: natural ordering + // PARU_ORDERING_METIS_GUARD: use METIS, AMD, or COLAMD. Symmetric + // strategy: always use METIS on A+A'. Unsymmetric strategy: use METIS on + // A'A, unless A has one or more very dense rows. In that case, A'A is + // very costly to form, and COLAMD is used instead of METIS. + +// default values of Control parameters +#define PARU_DEFAULT_MAX_THREADS (0) /* get default from OpenMP */ +#define PARU_DEFAULT_STRATEGY PARU_STRATEGY_AUTO +#define PARU_DEFAULT_UMFPACK_STRATEGY UMFPACK_STRATEGY_AUTO +#define PARU_DEFAULT_ORDERING PARU_ORDERING_METIS_GUARD +#define PARU_DEFAULT_RELAXED_AMALGAMATION (32) +#define PARU_DEFAULT_PANEL_WIDTH (32) +#define PARU_DEFAULT_DGEMM_TINY (4) +#define PARU_DEFAULT_DGEMM_TASKED (512) +#define PARU_DEFAULT_DTRSM_TASKED (4096) +#define PARU_DEFAULT_PRESCALE PARU_PRESCALE_MAX +#define PARU_DEFAULT_SINGLETONS (1) +#define PARU_DEFAULT_MEM_CHUNK (1024*1024) +#define PARU_DEFAULT_PIVOT_TOLERANCE (0.1) +#define PARU_DEFAULT_DIAG_PIVOT_TOLERANCE (0.001) + +// Note that the default UMFPACK scaling is SUM, not MAX. + +// ============================================================================= +// ParU C++ definitions ======================================================== +// ============================================================================= + +#ifdef __cplusplus + +// The following definitions are only available from C++: + +// silence these diagnostics: +#ifdef __clang__ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wc++11-extensions" +#endif + +#include + +//------------------------------------------------------------------------------ +// opaque objects (ParU_Symbolic, ParU_Numeric, and ParU_Control): +//------------------------------------------------------------------------------ + +typedef struct ParU_Symbolic_struct *ParU_Symbolic ; +typedef struct ParU_Numeric_struct *ParU_Numeric ; +typedef struct ParU_Control_struct *ParU_Control ; + +//------------------------------------------------------------------------------ +// ParU_Version: +//------------------------------------------------------------------------------ + +// return the version and date of the ParU library. + +ParU_Info ParU_Version (int ver [3], char date [128]) ; + +//------------------------------------------------------------------------------ +// ParU_Analyze: Symbolic analysis is done in this routine. UMFPACK is called +// here and after that some more specialized symbolic computation is done for +// ParU. ParU_Analyze can be called once and can be used for different +// ParU_Factorize calls. +//------------------------------------------------------------------------------ + +ParU_Info ParU_Analyze +( + // input: + cholmod_sparse *A, // input matrix to analyze of size n-by-n + // output: + ParU_Symbolic *Sym_handle, // output, symbolic analysis + // control: + ParU_Control Control +) ; + +//------------------------------------------------------------------------------ +// ParU_Factorize: Numeric factorization is done in this routine. Scaling and +// making Sx matrix, computing factors and permutations is here. ParU_Symbolic +// structure is computed ParU_Analyze and is an input in this routine. +//------------------------------------------------------------------------------ + +ParU_Info ParU_Factorize +( + // input: + cholmod_sparse *A, // input matrix to factorize + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + // output: + ParU_Numeric *Num_handle, + // control: + ParU_Control Control +) ; + +//------------------------------------------------------------------------------ +//--------------------- Solve routines ----------------------------------------- +//------------------------------------------------------------------------------ + +// In all the solve routines Num structure must come with the same Sym struct +// that comes from ParU_Factorize + +// The vectors x and b have length n, where the matrix factorized is n-by-n. +// The matrices X and B have size n-by-? nrhs, and are held in column-major +// storage. + +//-------- x = A\x ------------------------------------------------------------- +ParU_Info ParU_Solve // solve Ax=b, overwriting b with solution x +( + // input: + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + // input/output: + double *x, // vector of size n-by-1; right-hand on input, + // solution on output + // control: + ParU_Control Control +) ; + +//-------- x = A\b ------------------------------------------------------------- +ParU_Info ParU_Solve // solve Ax=b +( + // input: + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + double *b, // vector of size n-by-1 + // output + double *x, // vector of size n-by-1 + // control: + ParU_Control Control +) ; + +//-------- X = A\X ------------------------------------------------------------- +ParU_Info ParU_Solve // solve AX=B, overwriting B with solution X +( + // input + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + int64_t nrhs, // # of right-hand sides + // input/output: + double *X, // X is n-by-nrhs, where A is n-by-n; + // holds B on input, solution X on input + // control: + ParU_Control Control +) ; + +//-------- X = A\B ------------------------------------------------------------- +ParU_Info ParU_Solve // solve AX=B +( + // input + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + int64_t nrhs, // # of right-hand sides + double *B, // n-by-nrhs, in column-major storage + // output: + double *X, // n-by-nrhs, in column-major storage + // control: + ParU_Control Control +) ; + +// Solve L*x=b where x and b are vectors (no scaling or permutations) +ParU_Info ParU_LSolve // solve Lx=b +( + // input + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + // input/output: + double *x, // n-by-1, in column-major storage; + // holds b on input, solution x on input + // control: + ParU_Control Control +) ; + +// Solve L*X=B where X and B are matrices (no scaling or permutations) +ParU_Info ParU_LSolve // solve LX=B +( + // input + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + int64_t nrhs, // # of right-hand-sides (# columns of X) + // input/output: + double *X, // X is n-by-nrhs, where A is n-by-n; + // holds B on input, solution X on input + // control: + ParU_Control Control +) ; + +// Solve U*x=b where x and b are vectors (no scaling or permutations) +ParU_Info ParU_USolve // solve Ux=b +( + // input + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + // input/output + double *x, // n-by-1, in column-major storage; + // holds b on input, solution x on input + // control: + ParU_Control Control +) ; + +// Solve U*X=B where X and B are matrices (no scaling or permutations) +ParU_Info ParU_USolve // solve UX=B +( + // input + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + int64_t nrhs, // # of right-hand-sides (# columns of X) + // input/output: + double *X, // X is n-by-nrhs, where A is n-by-n; + // holds B on input, solution X on input + // control: + ParU_Control Control +) ; + +//------------------------------------------------------------------------------ +// permutation and inverse permutation, with optional scaling +//------------------------------------------------------------------------------ + +// apply inverse perm x(p) = b, or with scaling: x(p)=b ; x=x./s +ParU_Info ParU_InvPerm +( + // inputs + const int64_t *P, // permutation vector of size n + const double *s, // vector of size n (optional) + const double *b, // vector of size n + int64_t n, // length of P, s, B, and X + // output + double *x, // vector of size n + // control: + ParU_Control Control +) ; + +// apply inverse perm X(p,:) = B or with scaling: X(p,:)=B ; X = X./s +ParU_Info ParU_InvPerm +( + // inputs + const int64_t *P, // permutation vector of size nrows + const double *s, // vector of size nrows (optional) + const double *B, // array of size nrows-by-ncols + int64_t nrows, // # of rows of X and B + int64_t ncols, // # of columns of X and B + // output + double *X, // array of size nrows-by-ncols + // control: + ParU_Control Control +) ; + +// apply perm and scale x = b(P) / s +ParU_Info ParU_Perm +( + // inputs + const int64_t *P, // permutation vector of size n + const double *s, // vector of size n (optional) + const double *b, // vector of size n + int64_t n, // length of P, s, B, and X + // output + double *x, // vector of size n + // control: + ParU_Control Control +) ; + +// apply perm and scale X = B(P,:) / s +ParU_Info ParU_Perm +( + // inputs + const int64_t *P, // permutation vector of size nrows + const double *s, // vector of size nrows (optional) + const double *B, // array of size nrows-by-ncols + int64_t nrows, // # of rows of X and B + int64_t ncols, // # of columns of X and B + // output + double *X, // array of size nrows-by-ncols + // control: + ParU_Control Control +) ; + +//------------------------------------------------------------------------------ +//-------------- computing residual -------------------------------------------- +//------------------------------------------------------------------------------ + +// resid = norm1(b-A*x) / (norm1(A) * norm1 (x)) +ParU_Info ParU_Residual +( + // inputs: + cholmod_sparse *A, // an n-by-n sparse matrix + double *x, // vector of size n, solution to Ax=b + double *b, // vector of size n + // output: + double &resid, // residual: norm1(b-A*x) / (norm1(A) * norm1 (x)) + double &anorm, // 1-norm of A + double &xnorm, // 1-norm of x + // control: + ParU_Control Control +) ; + +// resid = norm1(B-A*X) / (norm1(A) * norm1 (X)) +// (multiple rhs) +ParU_Info ParU_Residual +( + // inputs: + cholmod_sparse *A, // an n-by-n sparse matrix + double *X, // array of size n-by-nrhs, solution to AX=B + double *B, // array of size n-by-nrhs + int64_t nrhs, + // output: + double &resid, // residual: norm1(B-A*X) / (norm1(A) * norm1 (X)) + double &anorm, // 1-norm of A + double &xnorm, // 1-norm of X + // control: + ParU_Control Control +) ; + +//------------------------------------------------------------------------------ +//------------ Get statistics and contents of factorization -------------------- +//------------------------------------------------------------------------------ + +ParU_Info ParU_Get // get int64_t from the symbolic/numeric objects +( + // input: + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + ParU_Get_enum field, // field to get + // output: + int64_t *result, // int64_t result: a scalar or an array + // control: + ParU_Control Control +) ; + +ParU_Info ParU_Get // get double from the symbolic/numeric objects +( + // input: + const ParU_Symbolic Sym, // symbolic analysis from ParU_Analyze + const ParU_Numeric Num, // numeric factorization from ParU_Factorize + ParU_Get_enum field, // field to get + // output: + double *result, // double result: a scalar or an array + // control: + ParU_Control Control +) ; + +//------------------------------------------------------------------------------ +//------------ Get/Set control parameters -------------------------------------- +//------------------------------------------------------------------------------ + +ParU_Info ParU_Set // set int32_t parameter in Control +( + // input + ParU_Control_enum field, // field to set + int32_t c, // value to set it to + // control: + ParU_Control Control +) ; + +ParU_Info ParU_Set // set int64_t parameter in Control +( + // input + ParU_Control_enum field, // field to set + int64_t c, // value to set it to + // control: + ParU_Control Control +) ; + +ParU_Info ParU_Set // set double parameter in Control +( + // input + ParU_Control_enum field, // field to set + double c, // value to set it to + // control: + ParU_Control Control +) ; + +ParU_Info ParU_Set // set float parameter in Control +( + // input + ParU_Control_enum field, // field to set + float c, // value to set it to + // control: + ParU_Control Control +) ; + +ParU_Info ParU_Get // get int64_t parameter from Control +( + // input + ParU_Control_enum field, // field to get + // output: + int64_t *c, // value of field + // control: + ParU_Control Control +) ; + +ParU_Info ParU_Get // get double parameter from Control +( + // input + ParU_Control_enum field, // field to get + // output: + double *c, // value of field + // control: + ParU_Control Control +) ; + +ParU_Info ParU_Get // get string from Control +( + // input: + ParU_Control_enum field, // field to get + // output: + const char **result, // string result + // control: + ParU_Control Control +) ; + +//------------------------------------------------------------------------------ +//------------ Free routines---------------------------------------------------- +//------------------------------------------------------------------------------ + +ParU_Info ParU_FreeNumeric +( + // input/output: + ParU_Numeric *Num_handle, // numeric object to free + // control: + ParU_Control Control +) ; + +ParU_Info ParU_FreeSymbolic +( + // input/output: + ParU_Symbolic *Sym_handle, // symbolic object to free + // control: + ParU_Control Control +) ; + +ParU_Info ParU_InitControl +( + // output: + ParU_Control *Control_handle // Control object to create +) ; + +ParU_Info ParU_FreeControl +( + // input/output: + ParU_Control *Control_handle // Control object to free +) ; + +#ifdef __clang__ +#pragma clang diagnostic pop +#endif + +#endif + +// ============================================================================= +// ParU C definitions ========================================================== +// ============================================================================= + +// The following definitions are available in both C and C++: + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef struct ParU_C_Symbolic_struct *ParU_C_Symbolic ; +typedef struct ParU_C_Numeric_struct *ParU_C_Numeric ; +typedef struct ParU_C_Control_struct *ParU_C_Control ; + +//------------------------------------------------------------------------------ +// ParU_Version: return the version and date of ParU +//------------------------------------------------------------------------------ + +ParU_Info ParU_C_Version (int ver [3], char date [128]) ; + +//------------------------------------------------------------------------------ +// ParU_C_InitControl: initialize C data structure +//------------------------------------------------------------------------------ + +ParU_Info ParU_C_InitControl (ParU_C_Control *Control_C_handle) ; + +//------------------------------------------------------------------------------ +// ParU_C_Analyze: Symbolic analysis is done in this routine. UMFPACK is called +// here and after that some more speciaized symbolic computation is done for +// ParU. ParU_Analyze can be called once and can be used for different +// ParU_Factorize calls. +//------------------------------------------------------------------------------ + +ParU_Info ParU_C_Analyze +( + // input: + cholmod_sparse *A, // input matrix to analyze of size n-by-n + // output: + ParU_C_Symbolic *Sym_handle_C, // output, symbolic analysis + // control: + ParU_C_Control Control_C +) ; + +//------------------------------------------------------------------------------ +// ParU_C_Factorize: Numeric factorization is done in this routine. Scaling and +// making Sx matrix, computing factors and permutations is here. +// ParU_C_Symbolic structure is computed ParU_Analyze and is an input in this +// routine. +//------------------------------------------------------------------------------ + +ParU_Info ParU_C_Factorize +( + // input: + cholmod_sparse *A, // input matrix to factorize of size n-by-n + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_Analyze + // output: + ParU_C_Numeric *Num_handle_C, // output numerical factorization + // control: + ParU_C_Control Control_C +) ; + +//------------------------------------------------------------------------------ +//--------------------- Solve routines ----------------------------------------- +//------------------------------------------------------------------------------ + +// x = A\x, where right-hand side is overwritten with the solution x. +ParU_Info ParU_C_Solve_Axx // solve Ax=b, overwriting b with solution x +( + // input: + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + // input/output: + double *x, // vector of size n-by-1; right-hand on input, + // solution on output + // control: + ParU_C_Control Control_C +) ; + +// x = A\b, for vectors x and b +ParU_Info ParU_C_Solve_Axb // solve Ax=b +( + // input: + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + double *b, // vector of size n-by-1 + // output + double *x, // vector of size n-by-1 + // control: + ParU_C_Control Control_C +) ; + +// X = A\X, where right-hand side is overwritten with the solution X. +ParU_Info ParU_C_Solve_AXX // solve AX=B, overwriting B with solution X +( + // input + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + int64_t nrhs, + // input/output: + double *X, // array of size n-by-nrhs in column-major storage, + // right-hand-side on input, solution on output. + // control: + ParU_C_Control Control_C +) ; + +// X = A\B, for matrices X and B +ParU_Info ParU_C_Solve_AXB // solve AX=B, overwriting B with solution X +( + // input + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + int64_t nrhs, + double *B, // array of size n-by-nrhs in column-major storage + // output: + double *X, // array of size n-by-nrhs in column-major storage + // control: + ParU_C_Control Control_C +) ; + +// x = L\x, where right-hand side is overwritten with the solution x. +ParU_Info ParU_C_Solve_Lxx // solve Lx=b, overwriting b with solution x +( + // input: + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + // input/output: + double *x, // vector of size n-by-1; right-hand on input, + // solution on output + // control: + ParU_C_Control Control_C +) ; + +// X = L\X, where right-hand side is overwritten with the solution X. +ParU_Info ParU_C_Solve_LXX // solve LX=B, overwriting B with solution X +( + // input + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + int64_t nrhs, + // input/output: + double *X, // array of size n-by-nrhs in column-major storage, + // right-hand-side on input, solution on output. + // control: + ParU_C_Control Control_C +) ; + +// x = U\x, where right-hand side is overwritten with the solution x. +ParU_Info ParU_C_Solve_Uxx // solve Ux=b, overwriting b with solution x +( + // input: + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + // input/output: + double *x, // vector of size n-by-1; right-hand on input, + // solution on output + // control: + ParU_C_Control Control_C +) ; + +// X = U\X, where right-hand side is overwritten with the solution X. +ParU_Info ParU_C_Solve_UXX // solve UX=B, overwriting B with solution X +( + // input + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + int64_t nrhs, + // input/output: + double *X, // array of size n-by-nrhs in column-major storage, + // right-hand-side on input, solution on output. + // control: + ParU_C_Control Control_C +) ; + +//------------------------------------------------------------------------------ +// Perm and InvPerm +//------------------------------------------------------------------------------ + +// apply permutation to a vector, x=b(p)./s +ParU_Info ParU_C_Perm +( + // inputs + const int64_t *P, // permutation vector of size n + const double *s, // vector of size n (optional) + const double *b, // vector of size n + int64_t n, // length of P, s, B, and X + // output + double *x, // vector of size n + // control: + ParU_C_Control Control_C +) ; + +// apply permutation to a matrix, X=B(p,:)./s +ParU_Info ParU_C_Perm_X +( + // inputs + const int64_t *P, // permutation vector of size nrows + const double *s, // vector of size nrows (optional) + const double *B, // array of size nrows-by-ncols + int64_t nrows, // # of rows of X and B + int64_t ncols, // # of columns of X and B + // output + double *X, // array of size nrows-by-ncols + // control: + ParU_C_Control Control_C +) ; + +// apply inverse permutation to a vector, x(p)=b, then scale x=x./s +ParU_Info ParU_C_InvPerm +( + // inputs + const int64_t *P, // permutation vector of size n + const double *s, // vector of size n (optional) + const double *b, // vector of size n + int64_t n, // length of P, s, B, and X + // output + double *x, // vector of size n + // control + ParU_C_Control Control_C +) ; + +// apply inverse permutation to a matrix, X(p,:)=b, then scale X=X./s +ParU_Info ParU_C_InvPerm_X +( + // inputs + const int64_t *P, // permutation vector of size nrows + const double *s, // vector of size nrows (optional) + const double *B, // array of size nrows-by-ncols + int64_t nrows, // # of rows of X and B + int64_t ncols, // # of columns of X and B + // output + double *X, // array of size nrows-by-ncols + // control + ParU_C_Control Control_C +) ; + +//------------------------------------------------------------------------------ +//-------------- computing residual -------------------------------------------- +//------------------------------------------------------------------------------ + +// resid = norm1(b-A*x) / (norm1(A) * norm1 (x)) +ParU_Info ParU_C_Residual_bAx +( + // inputs: + cholmod_sparse *A, // an n-by-n sparse matrix + double *x, // vector of size n + double *b, // vector of size n + // output: + double *residc, // residual: norm1(b-A*x) / (norm1(A) * norm1 (x)) + double *anormc, // 1-norm of A + double *xnormc, // 1-norm of x + // control: + ParU_C_Control Control_C +) ; + +// resid = norm1(B-A*X) / (norm1(A) * norm1 (X)) +ParU_Info ParU_C_Residual_BAX +( + // inputs: + cholmod_sparse *A, // an n-by-n sparse matrix + double *X, // array of size n-by-nrhs + double *B, // array of size n-by-nrhs + int64_t nrhs, + // output: + double *residc, // residual: norm1(B-A*X) / (norm1(A) * norm1 (X)) + double *anormc, // 1-norm of A + double *xnormc, // 1-norm of X + // control: + ParU_C_Control Control_C +) ; + +//------------------------------------------------------------------------------ +//------------ ParU_C_Get_*----------------------------------------------------- +//------------------------------------------------------------------------------ + +ParU_Info ParU_C_Get_INT64 // get int64_t contents of Sym_C and Num_C +( + // input: + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + ParU_Get_enum field, // field to get + // output: + int64_t *result, // int64_t result: a scalar or an array + // control: + ParU_C_Control Control_C +) ; + +ParU_Info ParU_C_Get_FP64 // get double contents of Sym_C and Num_C +( + // input: + const ParU_C_Symbolic Sym_C, // symbolic analysis from ParU_C_Analyze + const ParU_C_Numeric Num_C, // numeric factorization from ParU_C_Factorize + ParU_Get_enum field, // field to get + // output: + double *result, // double result: a scalar or an array + // control: + ParU_C_Control Control_C +) ; + +ParU_Info ParU_C_Get_Control_INT64 // get int64_t contents of Control +( + // input: + ParU_Control_enum field, // field to get + // output: + int64_t *result, // int64_t result: a scalar or an array + // control: + ParU_C_Control Control_C +) ; + +ParU_Info ParU_C_Get_Control_FP64 // get double contents of Control +( + // input: + ParU_Control_enum field, // field to get + // output: + double *result, // int64_t result: a scalar or an array + // control: + ParU_C_Control Control_C +) ; + +ParU_Info ParU_C_Get_Control_CONSTCHAR // get string from Control +( + // input: + ParU_Control_enum field, // field to get + // output: + const char **result, // string result + // control: + ParU_C_Control Control_C +) ; + +//------------------------------------------------------------------------------ +//------------ ParU_C_Set_*----------------------------------------------------- +//------------------------------------------------------------------------------ + +ParU_Info ParU_C_Set_Control_INT64 // set int64_t parameter in Control +( + // input + ParU_Control_enum field, // field to set + int64_t c, // value to set it to + // control: + ParU_C_Control Control_C +) ; + +ParU_Info ParU_C_Set_Control_FP64 // set double parameter in Control +( + // input + ParU_Control_enum field, // field to set + double c, // value to set it to + // control: + ParU_C_Control Control_C +) ; + +//------------------------------------------------------------------------------ +//------------ Free routines---------------------------------------------------- +//------------------------------------------------------------------------------ + +ParU_Info ParU_C_FreeNumeric +( + ParU_C_Numeric *Num_handle_C, // numeric object to free + // control: + ParU_C_Control Control_C +) ; + +ParU_Info ParU_C_FreeSymbolic +( + ParU_C_Symbolic *Sym_handle_C, // symbolic object to free + // control: + ParU_C_Control Control_C +) ; + +ParU_Info ParU_C_FreeControl +( + ParU_C_Control *Control_handle_C // Control object to free +) ; + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/ParU/Config/ParU.pc.in b/ParU/Config/ParU.pc.in index 64c18033f0..5cf859495e 100644 --- a/ParU/Config/ParU.pc.in +++ b/ParU/Config/ParU.pc.in @@ -1,4 +1,4 @@ -# ParU, Copyright (c) 2023, Timothy A. Davis. +# ParU, Copyright (c) 2022-2024, Mohsen Aznaveh and Timothy A. Davis, # All Rights Reserved. # SPDX-License-Identifier: GPL-3.0-or-later diff --git a/ParU/Config/ParUConfig.cmake.in b/ParU/Config/ParUConfig.cmake.in index 202bfc3edf..77c8e6d979 100644 --- a/ParU/Config/ParUConfig.cmake.in +++ b/ParU/Config/ParUConfig.cmake.in @@ -4,7 +4,8 @@ # The following copyright and license applies to just this file only, not to # the library itself: -# ParUConfig.cmake, Copyright (c) 2023, Timothy A. Davis. All Rights Reserved. +# ParUConfig.cmake, Copyright (c) 2023-2024, Timothy A. Davis. +# All Rights Reserved. # SPDX-License-Identifier: BSD-3-clause #------------------------------------------------------------------------------- @@ -16,7 +17,7 @@ # For backward compatibility the following variables are set: -# PARU_INCLUDE_DIR - where to find ParU.hpp and other headers +# PARU_INCLUDE_DIR - where to find ParU.h # PARU_LIBRARY - dynamic ParU library # PARU_STATIC - static ParU library # PARU_LIBRARIES - libraries when using ParU diff --git a/ParU/Config/ParU_definitions.h.in b/ParU/Config/ParU_definitions.h.in deleted file mode 100644 index b27df90594..0000000000 --- a/ParU/Config/ParU_definitions.h.in +++ /dev/null @@ -1,54 +0,0 @@ -// ============================================================================/ -// ======================= ParU_definitions.h =================================/ -// ============================================================================/ - -// ParU, Mohsen Aznaveh and Timothy A. Davis, (c) 2023, All Rights Reserved. -// SPDX-License-Identifier: GNU GPL 3.0 -// some defintions that are used both in C and C++ - -#ifndef PARU_DEFINITIONS_H -#define PARU_DEFINITIONS_H - - -#include "SuiteSparse_config.h" -#include "cholmod.h" -#include "umfpack.h" - -typedef enum ParU_Ret -{ - PARU_SUCCESS = 0, - PARU_OUT_OF_MEMORY = -1, - PARU_INVALID = -2, - PARU_SINGULAR = -3, - PARU_TOO_LARGE = -4 -} ParU_Ret; - -#define PARU_MEM_CHUNK (1024*1024) - -#define PARU_DATE "@PARU_DATE@" -#define PARU_VERSION_MAJOR @PARU_VERSION_MAJOR@ -#define PARU_VERSION_MINOR @PARU_VERSION_MINOR@ -#define PARU_VERSION_UPDATE @PARU_VERSION_UPDATE@ - -#define PARU__VERSION SUITESPARSE__VERCODE(@PARU_VERSION_MAJOR@,@PARU_VERSION_MINOR@,@PARU_VERSION_UPDATE@) -#if !defined (SUITESPARSE__VERSION) || \ - (SUITESPARSE__VERSION < SUITESPARSE__VERCODE(7,7,0)) -#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires SuiteSparse_config 7.7.0 or later" -#endif - -#if !defined (UMFPACK__VERSION) || \ - (UMFPACK__VERSION < SUITESPARSE__VERCODE(6,3,3)) -#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires UMFPACK 6.3.3 or later" -#endif - -#if !defined (CHOLMOD__VERSION) || \ - (CHOLMOD__VERSION < SUITESPARSE__VERCODE(5,2,1)) -#error "ParU @PARU_VERSION_MAJOR@.@PARU_VERSION_MINOR@.@PARU_VERSION_UPDATE@ requires CHOLMOD 5.2.1 or later" -#endif - -// the same values as UMFPACK_STRATEGY defined in UMFPACK/Include/umfpack.h -#define PARU_STRATEGY_AUTO 0 // decided to use sym. or unsym. strategy -#define PARU_STRATEGY_UNSYMMETRIC 1 // COLAMD(A), metis, ... -#define PARU_STRATEGY_SYMMETRIC 3 // prefer diagonal - -#endif //PARU_DEFINITIONS_H diff --git a/ParU/Config/README.txt b/ParU/Config/README.txt new file mode 100644 index 0000000000..df80615f24 --- /dev/null +++ b/ParU/Config/README.txt @@ -0,0 +1,16 @@ +ParU/Config: configuration files for ParU + +ParU, Copyright (c) 2022-2024, Mohsen Aznaveh and Timothy A. Davis, +All Rights Reserved. +SPDX-License-Identifier: GPL-3.0-or-later + +This folder contains files that are configured by cmake when ParU is built. + +Files in this folder: + + ParUConfig.cmake.in cmake configuration file for ParU + ParU.h.in source for Include/ParU.h + ParU.pc.in pkgconfig file for ParU + paru_version.tex.in source for Doc/paru_version.tex + README.txt this file + diff --git a/ParU/Demo/README.txt b/ParU/Demo/README.txt new file mode 100644 index 0000000000..74224959c0 --- /dev/null +++ b/ParU/Demo/README.txt @@ -0,0 +1,17 @@ +ParU/Demo: simple demos for ParU + +ParU, Copyright (c) 2022-2024, Mohsen Aznaveh and Timothy A. Davis, +All Rights Reserved. +SPDX-License-Identifier: GPL-3.0-or-later + +This folder contains demo main programs that are built and run +by "make demos" in the top-level Makefile. They do not form part +of the ParU complied library. + +Files in this folder: + + paru_democ.c longer demo for the ParU C interface + paru_demo.cpp longer demo for the ParU C++ interface + paru_simplec.c simple demo for the ParU C interface + paru_simple.cpp simple demo for the ParU C++ interface + README.txt this file diff --git a/ParU/Demo/Res/.gitignore b/ParU/Demo/Res/.gitignore deleted file mode 100644 index 52e15321b7..0000000000 --- a/ParU/Demo/Res/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -# Ignore all files except this file. -* -*/ -!.gitignore diff --git a/ParU/Demo/paru_demo.cpp b/ParU/Demo/paru_demo.cpp index 373ecacc23..1c1268bdfb 100644 --- a/ParU/Demo/paru_demo.cpp +++ b/ParU/Demo/paru_demo.cpp @@ -2,28 +2,50 @@ // ======================= paru_demo.cpp ================================== / // ========================================================================== / -// ParU, Copyright (c) 2022, Mohsen Aznaveh and Timothy A. Davis, +// ParU, Copyright (c) 2022-2024, Mohsen Aznaveh and Timothy A. Davis, // All Rights Reserved. -// SPDX-License-Identifier: GNU GPL 3.0 +// SPDX-License-Identifier: GPL-3.0-or-later /* * @brief test to see how to call umfpack symbolic analysis * * @author Aznaveh * */ + #include #include #include #include -#include -#include "ParU.hpp" +#include "ParU.h" + +#define FREE_ALL_AND_RETURN(info) \ +{ \ + if (b != NULL) free(b); \ + if (xx != NULL) free(xx); \ + if (x != NULL) free(x); \ + if (B != NULL) free(B); \ + if (X != NULL) free(X); \ + umfpack_dl_free_symbolic(&Symbolic); \ + umfpack_dl_free_numeric(&Numeric); \ + ParU_FreeNumeric(&Num, Control); \ + ParU_FreeSymbolic(&Sym, Control); \ + ParU_FreeControl(&Control); \ + cholmod_l_free_sparse(&A, cc); \ + cholmod_l_finish(cc); \ + return (info) ; \ +} int main(int argc, char **argv) { cholmod_common Common, *cc; cholmod_sparse *A; - ParU_Symbolic *Sym = NULL; + ParU_Symbolic Sym = NULL; + ParU_Numeric Num = NULL ; + ParU_Control Control = NULL ; + ParU_Info info; + double *b = NULL, *xx = NULL, *B = NULL, *X = NULL, *x = NULL ; + void *Symbolic = NULL, *Numeric = NULL ; //~~~~~~~~~Reading the input matrix and test if the format is OK~~~~~~~~~~~~ // start CHOLMOD @@ -36,19 +58,19 @@ int main(int argc, char **argv) if (A == NULL) { std::cout << "ParU: input matrix is invalid" << std::endl; - exit(1); + FREE_ALL_AND_RETURN (PARU_INVALID) ; } if (mtype != CHOLMOD_SPARSE) { std::cout << "ParU: input matrix must be sparse" << std::endl; - exit(1); + FREE_ALL_AND_RETURN (PARU_INVALID) ; } if (A->xtype != CHOLMOD_REAL) { std::cout << "ParU: input matrix must be real" << std::endl; - exit(1); + FREE_ALL_AND_RETURN (PARU_INVALID) ; } //~~~~~~~~~~~~~~~~~~~Starting computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -59,50 +81,86 @@ int main(int argc, char **argv) << ver[0] << "." << ver[1] << "." << ver[2] << " ================================== " << date << std::endl; - double my_start_time = omp_get_wtime(); + info = ParU_InitControl (&Control) ; + if (info != PARU_SUCCESS) + { + FREE_ALL_AND_RETURN (info) ; + } + + const char *blas_name ; + info = ParU_Get (PARU_CONTROL_BLAS_LIBRARY_NAME, &blas_name, Control) ; + if (info != PARU_SUCCESS) + { + FREE_ALL_AND_RETURN (info) ; + } + std::cout << "BLAS: " << blas_name << std::endl ; + + const char *tasking ; + info = ParU_Get (PARU_CONTROL_FRONT_TREE_TASKING, &tasking, Control) ; + if (info != PARU_SUCCESS) + { + FREE_ALL_AND_RETURN (info) ; + } + std::cout << "frontal tree tasking: " << tasking << std::endl ; + + int64_t using_openmp ; + info = ParU_Get (PARU_CONTROL_OPENMP, &using_openmp, Control) ; + if (info != PARU_SUCCESS) + { + FREE_ALL_AND_RETURN (info) ; + } + std::cout << "OpenMP in ParU: " << (using_openmp ? "yes" : "no" ) + << std::endl ; + + double my_start_time = SUITESPARSE_TIME ; - ParU_Control Control; - ParU_Ret info; + ParU_Set (PARU_CONTROL_ORDERING, PARU_ORDERING_METIS_GUARD, Control) ; - Control.umfpack_ordering = UMFPACK_ORDERING_AMD; - // Control.umfpack_strategy = UMFPACK_STRATEGY_UNSYMMETRIC; - // Control.umfpack_strategy = UMFPACK_STRATEGY_SYMMETRIC; - // Control.umfpack_default_singleton = 0; - // Control.paru_max_threads = 6; - Control.umfpack_ordering = UMFPACK_ORDERING_METIS_GUARD; std::cout << "\n--------- ParU_Analyze:\n"; - info = ParU_Analyze(A, &Sym, &Control); - double my_time_analyze = omp_get_wtime() - my_start_time; + info = ParU_Analyze(A, &Sym, Control); + double my_time_analyze = SUITESPARSE_TIME - my_start_time; if (info != PARU_SUCCESS) { - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - return info; + std::cout << "ParU: analyze failed" << std::endl; + FREE_ALL_AND_RETURN (info) ; } - std::cout << "In: " << Sym->m << "x" << Sym->n - << " nnz = " << Sym->anz << std::endl; + + int64_t n, anz ; + info = ParU_Get (Sym, Num, PARU_GET_N, &n, Control) ; + if (info != PARU_SUCCESS) + { + std::cout << "ParU: stats failed" << std::endl; + FREE_ALL_AND_RETURN (info) ; + } + + info = ParU_Get (Sym, Num, PARU_GET_ANZ, &anz, Control) ; + if (info != PARU_SUCCESS) + { + std::cout << "ParU: stats failed" << std::endl; + FREE_ALL_AND_RETURN (info) ; + } + + std::cout << "In: " << n << "x" << n + << " nnz = " << anz << std::endl; std::cout << std::scientific << std::setprecision(1) - << "ParU: Symbolic factorization is done in " << my_time_analyze << "s!\n"; - ParU_Numeric *Num; + << "ParU: Symbolic factorization: " << my_time_analyze + << " seconds\n"; std::cout << "\n--------- ParU_Factorize:" << std::endl; - double my_start_time_fac = omp_get_wtime(); - info = ParU_Factorize(A, Sym, &Num, &Control); - double my_time_fac = omp_get_wtime() - my_start_time_fac; + double my_start_time_fac = SUITESPARSE_TIME; + info = ParU_Factorize(A, Sym, &Num, Control); + double my_time_fac = SUITESPARSE_TIME - my_start_time_fac; if (info != PARU_SUCCESS) { std::cout << std::scientific << std::setprecision(1) - << "ParU: factorization was NOT successful in " << my_time_fac - << " seconds!\n"; + << "ParU: factorization was NOT successful: " + << my_time_fac << " seconds\n"; if (info == PARU_OUT_OF_MEMORY) std::cout << "Out of memory\n"; if (info == PARU_INVALID) std::cout << "Invalid!\n"; if (info == PARU_SINGULAR) std::cout << "Singular!\n"; - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_Freesym(&Sym, &Control); - return info; + FREE_ALL_AND_RETURN (info) ; } else { @@ -111,135 +169,106 @@ int main(int argc, char **argv) << " seconds.\n"; } + double rcond ; + info = ParU_Get (Sym, Num, PARU_GET_RCOND_ESTIMATE, &rcond, Control) ; + if (info != PARU_SUCCESS) + { + std::cout << "ParU: stats failed" << std::endl; + FREE_ALL_AND_RETURN (info) ; + } + //~~~~~~~~~~~~~~~~~~~Test the results ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - int64_t m = Sym->m; + double my_time, my_solve_time; -#if 1 - if (info == PARU_SUCCESS) + + b = (double *)malloc(n * sizeof(double)); + xx = (double *)malloc(n * sizeof(double)); + + for (int64_t i = 0; i < n; ++i) b[i] = i + 1; + std::cout << "\n--------- ParU_Solve:\n"; + double my_solve_time_start = SUITESPARSE_TIME; + info = ParU_Solve(Sym, Num, b, xx, Control); + if (info != PARU_SUCCESS) { - double *b = (double *)malloc(m * sizeof(double)); - double *xx = (double *)malloc(m * sizeof(double)); - for (int64_t i = 0; i < m; ++i) b[i] = i + 1; - std::cout << "\n--------- ParU_Solve:\n"; - double my_solve_time_start = omp_get_wtime(); - info = ParU_Solve(Sym, Num, b, xx, &Control); - if (info != PARU_SUCCESS) - { - std::cout << "ParU: Solve has a problem.\n"; - free(b); - free(xx); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_Freesym(&Sym, &Control); - return info; - } - my_solve_time = omp_get_wtime() - my_solve_time_start; - my_time = omp_get_wtime() - my_start_time; - std::cout << std::defaultfloat << std::setprecision(1) - << "Solve time is " << my_solve_time << " seconds.\n"; - - // printing out x - #if 0 - std::cout << "x = ["; - std::cout << std::defaultfloat << std::setprecision(22); - for (int64_t i = 0; i < m; ++i) - std::cout << " " << xx[i] << "', "; - std::cout << "]\n"; - #endif - - double resid, anorm, xnorm; - std::cout << "\n--------- ParU_Residual:\n"; - info = ParU_Residual(A, xx, b, m, resid, anorm, xnorm, &Control); - if (info != PARU_SUCCESS) - { - std::cout << "ParU: Residual has a problem.\n"; - free(b); - free(xx); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_Freesym(&Sym, &Control); - return info; - } - double rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); - - std::cout << std::scientific << std::setprecision(2) - << "Relative residual is |" << rresid << "|, anorm is " << anorm - << ", xnorm is " << xnorm << " and rcond is " << Num->rcond << "." - << std::endl; - - free(b); - free(xx); - const int64_t nrhs = 16; // number of right handsides - double *B = (double *)malloc(m * nrhs * sizeof(double)); - double *X = (double *)malloc(m * nrhs * sizeof(double)); - for (int64_t i = 0; i < m; ++i) - for (int64_t j = 0; j < nrhs; ++j) - B[j * m + i] = (double)(i + j + 1); - - std::cout << "\n--------- ParU_Solve:\n"; - info = ParU_Solve(Sym, Num, nrhs, B, X, &Control); - if (info != PARU_SUCCESS) - { - std::cout << "ParU: mRhs Solve has a problem.\n"; - free(B); - free(X); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_Freesym(&Sym, &Control); - return info; - } - std::cout << "\n--------- ParU_Residual:\n"; - info = ParU_Residual(A, X, B, m, nrhs, resid, anorm, xnorm, &Control); - if (info != PARU_SUCCESS) + std::cout << "ParU: solve failed" << std::endl; + FREE_ALL_AND_RETURN (info) ; + } + my_solve_time = SUITESPARSE_TIME - my_solve_time_start; + my_time = SUITESPARSE_TIME - my_start_time; + std::cout << std::defaultfloat << std::setprecision(1) + << "Solve time is " << my_solve_time << " seconds.\n"; + + // printing out xx +#if 0 + std::cout << "x = ["; + std::cout << std::defaultfloat << std::setprecision(22); + for (int64_t i = 0; i < n; ++i) + std::cout << " " << xx[i] << "', "; + std::cout << "]\n"; +#endif + + double resid, anorm, xnorm; + std::cout << "\n--------- ParU_Residual:\n"; + info = ParU_Residual(A, xx, b, resid, anorm, xnorm, Control); + if (info != PARU_SUCCESS) + { + std::cout << "ParU: resid failed" << std::endl; + FREE_ALL_AND_RETURN (info) ; + } + double rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); + + std::cout << std::scientific << std::setprecision(2) + << "Relative residual is |" << rresid << "|, anorm is " << anorm + << ", xnorm is " << xnorm << " and rcond is " << rcond << "." + << std::endl; + + const int64_t nrhs = 16; // number of right handsides + B = (double *)malloc(n * nrhs * sizeof(double)); + X = (double *)malloc(n * nrhs * sizeof(double)); + for (int64_t i = 0; i < n; ++i) + { + for (int64_t j = 0; j < nrhs; ++j) { - std::cout << "ParU: mRhs Residual has a problem.\n"; - free(B); - free(X); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_Freesym(&Sym, &Control); - return info; + B[j * n + i] = (double)(i + j + 1); } - rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); - - std::cout << std::scientific << std::setprecision(2) - << "Multiple right hand side: relative residual is |" - << rresid << "|." << std::endl; + } - free(B); - free(X); + std::cout << "\n--------- ParU_Solve:\n"; + info = ParU_Solve(Sym, Num, nrhs, B, X, Control); + if (info != PARU_SUCCESS) + { + std::cout << "ParU: solve failed" << std::endl; + FREE_ALL_AND_RETURN (info) ; } -#endif + std::cout << "\n--------- ParU_Residual:\n"; + info = ParU_Residual(A, X, B, nrhs, resid, anorm, xnorm, Control); + if (info != PARU_SUCCESS) + { + std::cout << "ParU: solve failed" << std::endl; + FREE_ALL_AND_RETURN (info) ; + } + rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); + + std::cout << std::scientific << std::setprecision(2) + << "Multiple right hand side: relative residual is |" + << rresid << "|." << std::endl; //~~~~~~~~~~~~~~~~~~~End computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - int64_t max_threads = omp_get_max_threads(); - omp_set_num_threads(max_threads); //~~~~~~~~~~~~~~~~~~~Calling umfpack~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ double umf_time = 0; - -#if 1 - double umf_start_time = omp_get_wtime(); + double umf_start_time = SUITESPARSE_TIME; double status, // Info [UMFPACK_STATUS] Info[UMFPACK_INFO], // Contains statistics about the symbolic analysis - umf_Control[UMFPACK_CONTROL]; // it is set in umfpack_dl_defaults and // is used in umfpack_dl_symbolic; if // passed NULL it will use the defaults umfpack_dl_defaults(umf_Control); - // umf_Control[UMFPACK_ORDERING] = UMFPACK_ORDERING_AMD; - // umf_Control[UMFPACK_ORDERING] = UMFPACK_ORDERING_METIS; - // umf_Control [UMFPACK_STRATEGY] = UMFPACK_STRATEGY_UNSYMMETRIC; - // umf_Control [UMFPACK_STRATEGY] = UMFPACK_STRATEGY_SYMMETRIC; - // umf_Control[UMFPACK_SINGLETONS] = Control.umfpack_default_singleton; umf_Control[UMFPACK_ORDERING] = UMFPACK_ORDERING_METIS_GUARD; int64_t *Ap = (int64_t *)A->p; int64_t *Ai = (int64_t *)A->i; double *Ax = (double *)A->x; - // int64_t m = A->nrow; - int64_t n = A->ncol; - void *Symbolic, *Numeric; // Output argument in umf_dl_symbolc; status = umfpack_dl_symbolic(n, n, Ap, Ai, Ax, &Symbolic, umf_Control, Info); @@ -250,10 +279,10 @@ int main(int argc, char **argv) umfpack_dl_report_info(umf_Control, Info); umfpack_dl_report_status(umf_Control, status); std::cout << "umfpack_dl_symbolic failed\n"; - exit(0); + FREE_ALL_AND_RETURN (PARU_INVALID) ; } - double umf_symbolic = omp_get_wtime() - umf_start_time; - double umf_fac_start = omp_get_wtime(); + double umf_symbolic = SUITESPARSE_TIME - umf_start_time; + double umf_fac_start = SUITESPARSE_TIME; status = umfpack_dl_numeric(Ap, Ai, Ax, Symbolic, &Numeric, umf_Control, Info); // umf_Control[UMFPACK_PRL] = 2; @@ -264,48 +293,41 @@ int main(int argc, char **argv) umfpack_dl_report_info(umf_Control, Info); umfpack_dl_report_status(umf_Control, status); std::cout << "umfpack_dl_numeric failed\n"; + FREE_ALL_AND_RETURN (PARU_INVALID) ; } - double umf_time_fac = omp_get_wtime() - umf_fac_start; + double umf_time_fac = SUITESPARSE_TIME - umf_fac_start; - double *b = (double *)malloc(m * sizeof(double)); - double *x = (double *)malloc(m * sizeof(double)); - for (int64_t i = 0; i < m; ++i) b[i] = i + 1; + x = (double *)malloc(n * sizeof(double)); + for (int64_t i = 0; i < n; ++i) b[i] = i + 1; - double solve_start = omp_get_wtime(); + double solve_start = SUITESPARSE_TIME; status = umfpack_dl_solve(UMFPACK_A, Ap, Ai, Ax, x, b, Numeric, umf_Control, Info); - double umf_solve_time = omp_get_wtime() - solve_start; - umf_time = omp_get_wtime() - umf_start_time; + double umf_solve_time = SUITESPARSE_TIME - solve_start; + umf_time = SUITESPARSE_TIME - umf_start_time; double umf_resid, umf_anorm, umf_xnorm; - info = ParU_Residual(A, x, b, m, umf_resid, umf_anorm, umf_xnorm, &Control); - double umf_rresid = (umf_anorm == 0 || umf_xnorm == 0 ) + info = ParU_Residual(A, x, b, umf_resid, umf_anorm, umf_xnorm, Control); + double umf_rresid = (umf_anorm == 0 || umf_xnorm == 0 ) ? 0 : (umf_resid/(umf_anorm*umf_xnorm)); std::cout << std::scientific << std::setprecision(2) << "UMFPACK relative residual is |" << umf_rresid << "|, anorm is " << umf_anorm << ", xnorm is " << umf_xnorm << " and rcond is " - << Num->rcond << "." << std::endl; - - free(x); - free(b); - - umfpack_dl_free_symbolic(&Symbolic); - umfpack_dl_free_numeric(&Numeric); -#endif // calling umfpack + << rcond << "." << std::endl; // Writing results to a file #if 0 if (info == PARU_SUCCESS) { FILE *res_file; - char res_name[] = "../build/Res/res.txt"; + char res_name[] = "res.txt"; res_file = fopen(res_name, "a"); if (res_file == NULL) { std::cout << "Par: error in making " << res_name << " to write the results!\n"; } fprintf(res_file, "%" PRId64" %" PRId64 " %lf %lf %lf %lf %lf %lf %lf %lf\n", - Sym->m, Sym->anz, my_time_analyze, my_time_fac, my_solve_time, my_time, + n, anz, my_time_analyze, my_time_fac, my_solve_time, my_time, umf_symbolic, umf_time_fac, umf_solve_time, umf_time); fclose(res_file); } @@ -316,9 +338,6 @@ int main(int argc, char **argv) #endif // writing to a file //~~~~~~~~~~~~~~~~~~~Free Everything~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ParU_Freenum(&Num, &Control); - ParU_Freesym(&Sym, &Control); - - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); + FREE_ALL_AND_RETURN (PARU_SUCCESS) ; } + diff --git a/ParU/Demo/paru_democ.c b/ParU/Demo/paru_democ.c index f5607c55a7..40ca220dab 100644 --- a/ParU/Demo/paru_democ.c +++ b/ParU/Demo/paru_democ.c @@ -2,26 +2,47 @@ // ======================= paru_demo.c ==================================== / // ========================================================================== / -// ParU, Copyright (c) 2022, Mohsen Aznaveh and Timothy A. Davis, +// ParU, Copyright (c) 2022-2024, Mohsen Aznaveh and Timothy A. Davis, // All Rights Reserved. -// SPDX-License-Identifier: GNU GPL 3.0 +// SPDX-License-Identifier: GPL-3.0-or-later /* * @brief test to see how to call umfpack symbolic analysis * * @author Aznaveh * */ + #include #include -#include -#include "ParU_C.h" +#include "ParU.h" + +#define FREE_ALL_AND_RETURN(info) \ +{ \ + if (b != NULL) free(b); \ + if (xx != NULL) free(xx); \ + if (x != NULL) free(x); \ + if (B != NULL) free(B); \ + if (X != NULL) free(X); \ + umfpack_dl_free_symbolic(&Symbolic); \ + umfpack_dl_free_numeric(&Numeric); \ + ParU_C_FreeNumeric(&Num, Control); \ + ParU_C_FreeSymbolic(&Sym, Control); \ + ParU_C_FreeControl(&Control); \ + cholmod_l_free_sparse(&A, cc); \ + cholmod_l_finish(cc); \ + return (info) ; \ +} int main(int argc, char **argv) { - cholmod_common Common, *cc; - cholmod_sparse *A; - ParU_C_Symbolic *Sym = NULL; + cholmod_common Common, *cc ; + cholmod_sparse *A = NULL ; + ParU_C_Symbolic Sym = NULL ; + ParU_C_Numeric Num = NULL ; + ParU_C_Control Control = NULL ; + double *b = NULL, *xx = NULL, *B = NULL, *X = NULL, *x = NULL ; + void *Symbolic = NULL, *Numeric = NULL ; // UMFPACK factorization //~~~~~~~~~Reading the input matrix and test if the format is OK~~~~~~~~~~~~ // start CHOLMOD @@ -34,19 +55,19 @@ int main(int argc, char **argv) if (A == NULL) { printf("ParU: input matrix is invalid\n"); - exit(1); + FREE_ALL_AND_RETURN (PARU_INVALID) ; } if (mtype != CHOLMOD_SPARSE) { printf("ParU: input matrix must be sparse\n"); - exit(1); + FREE_ALL_AND_RETURN (PARU_INVALID) ; } if (A->xtype != CHOLMOD_REAL) { printf("ParU: input matrix must be real\n"); - exit(1); + FREE_ALL_AND_RETURN (PARU_INVALID) ; } //~~~~~~~~~~~~~~~~~~~Starting computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -57,34 +78,30 @@ int main(int argc, char **argv) ver[0], ver[1], ver[2]); printf(" %s\n", date); - double my_start_time = omp_get_wtime(); + double my_start_time = SUITESPARSE_TIME; - ParU_C_Control Control; - ParU_C_Init_Control(&Control); // initialize the Control in C - ParU_Ret info; + ParU_Info info; + info = ParU_C_InitControl(&Control); // initialize the Control in C - Control.umfpack_ordering = UMFPACK_ORDERING_AMD; - // Control.umfpack_strategy = UMFPACK_STRATEGY_UNSYMMETRIC; - // Control.umfpack_strategy = UMFPACK_STRATEGY_SYMMETRIC; - // Control.umfpack_default_singleton = 0; - // Control.paru_max_threads = 6; - Control.umfpack_ordering = UMFPACK_ORDERING_METIS_GUARD; + ParU_C_Set_Control_INT64 (PARU_CONTROL_ORDERING, PARU_ORDERING_METIS_GUARD, + Control) ; printf ("\n--------- ParU_C_Analyze:\n") ; - info = ParU_C_Analyze(A, &Sym, &Control); - double my_time_analyze = omp_get_wtime() - my_start_time; + info = ParU_C_Analyze(A, &Sym, Control); + double my_time_analyze = SUITESPARSE_TIME - my_start_time; if (info != PARU_SUCCESS) { - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - return info; + FREE_ALL_AND_RETURN (info) ; } - printf("In: %" PRId64 "x%" PRId64 " nnz = %" PRId64 " \n", Sym->m, Sym->n, Sym->anz); - printf("ParU: Symbolic factorization is done in %lfs!\n", my_time_analyze); - ParU_C_Numeric *Num; + + int64_t n, anz ; + ParU_C_Get_INT64 (Sym, Num, PARU_GET_N, &n, Control) ; + ParU_C_Get_INT64 (Sym, Num, PARU_GET_ANZ, &anz, Control) ; + printf("In: %" PRId64 "x%" PRId64 " nnz = %" PRId64 " \n", n, n, anz); + printf("ParU: Symbolic factorization: %lf seconds\n", my_time_analyze); printf ("\n--------- ParU_C_Factorize:\n") ; - double my_start_time_fac = omp_get_wtime(); - info = ParU_C_Factorize(A, Sym, &Num, &Control); - double my_time_fac = omp_get_wtime() - my_start_time_fac; + double my_start_time_fac = SUITESPARSE_TIME; + info = ParU_C_Factorize(A, Sym, &Num, Control); + double my_time_fac = SUITESPARSE_TIME - my_start_time_fac; if (info != PARU_SUCCESS) { printf("ParU: factorization was NOT successful in %lf seconds!", @@ -92,144 +109,102 @@ int main(int argc, char **argv) if (info == PARU_OUT_OF_MEMORY) printf("\nOut of memory\n"); if (info == PARU_INVALID) printf("\nInvalid!\n"); if (info == PARU_SINGULAR) printf("\nSingular!\n"); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_C_Freesym(&Sym, &Control); - return info; - } - else - { - printf("ParU: factorization was successful in %lf seconds.\n", - my_time_fac); + FREE_ALL_AND_RETURN (info) ; } + printf("ParU: factorization was successful in %lf seconds.\n", + my_time_fac); + //~~~~~~~~~~~~~~~~~~~~~Test the results ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - int64_t m = Sym->m; double my_time, my_solve_time; -#if 1 - if (info == PARU_SUCCESS) + + b = (double *)malloc(n * sizeof(double)); + xx = (double *)malloc(n * sizeof(double)); + for (int64_t i = 0; i < n; ++i) b[i] = i + 1; + printf ("\n--------- ParU_C_Solve_Axb:\n") ; + double my_solve_time_start = SUITESPARSE_TIME; + info = ParU_C_Solve_Axb(Sym, Num, b, xx, Control); + if (info != PARU_SUCCESS) { - double *b = (double *)malloc(m * sizeof(double)); - double *xx = (double *)malloc(m * sizeof(double)); - for (int64_t i = 0; i < m; ++i) b[i] = i + 1; - printf ("\n--------- ParU_C_Solve_Axb:\n") ; - double my_solve_time_start = omp_get_wtime(); - info = ParU_C_Solve_Axb(Sym, Num, b, xx, &Control); - if (info != PARU_SUCCESS) - { - printf("ParU: Solve has a problem.\n"); - free(b); - free(xx); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_C_Freesym(&Sym, &Control); - return info; - } - my_solve_time = omp_get_wtime() - my_solve_time_start; - my_time = omp_get_wtime() - my_start_time; - printf("Solve time is %lf seconds.\n", my_solve_time); - - // printing out x - #if 0 - printf("x = ["); - for (int64_t i = 0; i < m; ++i) - printf (" %.2lf, ", xx[i]); - printf("]\n"); - #endif - - double resid, anorm, xnorm; - printf ("\n--------- ParU_C_Residual_bAx:\n") ; - info = - ParU_C_Residual_bAx(A, xx, b, m, &resid, &anorm, &xnorm, &Control); - if (info != PARU_SUCCESS) - { - printf("ParU: Residual has a problem.\n"); - free(b); - free(xx); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_C_Freesym(&Sym, &Control); - return info; - } - double rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); - - printf( - "Residual is |%.2e|, anorm is %.2e, xnorm is %.2e, and rcond is" - " %.2e.\n", rresid, anorm, xnorm, Num->rcond); - - free(b); - free(xx); - const int64_t nrhs = 16; // number of right handsides - double *B = (double *)malloc(m * nrhs * sizeof(double)); - double *X = (double *)malloc(m * nrhs * sizeof(double)); - for (int64_t i = 0; i < m; ++i) - for (int64_t j = 0; j < nrhs; ++j) - B[j * m + i] = (double)(i + j + 1); - - printf ("\n--------- ParU_C_Solve_AXV:\n") ; - info = ParU_C_Solve_AXB(Sym, Num, nrhs, B, X, &Control); - if (info != PARU_SUCCESS) - { - printf("ParU: mRhs Solve has a problem.\n"); - free(B); - free(X); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_C_Freesym(&Sym, &Control); - return info; - } - printf ("\n--------- ParU_C_Residual_BAX:\n") ; - info = ParU_C_Residual_BAX(A, X, B, m, nrhs, &resid, &anorm, &xnorm, - &Control); - if (info != PARU_SUCCESS) + printf ("ParU: solve failed.\n"); + FREE_ALL_AND_RETURN (info) ; + } + my_solve_time = SUITESPARSE_TIME - my_solve_time_start; + my_time = SUITESPARSE_TIME - my_start_time; + printf("Solve time is %lf seconds.\n", my_solve_time); + + // printing out x +#if 0 + printf("x = ["); + for (int64_t i = 0; i < n; ++i) + printf (" %.2lf, ", xx[i]); + printf("]\n"); +#endif + + double resid, anorm, xnorm; + printf ("\n--------- ParU_C_Residual_bAx:\n") ; + info = + ParU_C_Residual_bAx(A, xx, b, &resid, &anorm, &xnorm, Control); + if (info != PARU_SUCCESS) + { + printf("ParU: resid failed.\n"); + FREE_ALL_AND_RETURN (info) ; + } + double rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); + + double rcond ; + ParU_C_Get_FP64 (Sym, Num, PARU_GET_RCOND_ESTIMATE, &rcond, Control) ; + printf( + "Residual is |%.2e|, anorm is %.2e, xnorm is %.2e, and rcond is" + " %.2e.\n", rresid, anorm, xnorm, rcond); + + const int64_t nrhs = 16; // number of right handsides + B = (double *)malloc(n * nrhs * sizeof(double)); + X = (double *)malloc(n * nrhs * sizeof(double)); + for (int64_t i = 0; i < n; ++i) + { + for (int64_t j = 0; j < nrhs; ++j) { - printf("ParU: mRhs Residual has a problem.\n"); - free(B); - free(X); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); - ParU_C_Freesym(&Sym, &Control); - return info; + B[j * n + i] = (double)(i + j + 1); } + } - rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); - printf("Multiple right hand side: relative residual is |%.2e|.\n", - rresid); - - free(B); - free(X); + printf ("\n--------- ParU_C_Solve_AXB:\n") ; + info = ParU_C_Solve_AXB(Sym, Num, nrhs, B, X, Control); + if (info != PARU_SUCCESS) + { + printf("ParU: mRhs Solve has a problem.\n"); + FREE_ALL_AND_RETURN (info) ; + } + printf ("\n--------- ParU_C_Residual_BAX:\n") ; + info = ParU_C_Residual_BAX(A, X, B, nrhs, &resid, &anorm, &xnorm, + Control); + if (info != PARU_SUCCESS) + { + printf("ParU: mRhs Residual has a problem.\n"); + FREE_ALL_AND_RETURN (info) ; } -#endif + + rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); + printf("Multiple right hand side: relative residual is |%.2e|.\n", + rresid); //~~~~~~~~~~~~~~~~~~~End computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - int64_t max_threads = omp_get_max_threads(); - omp_set_num_threads(max_threads); //~~~~~~~~~~~~~~~~~~~Calling umfpack~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ double umf_time = 0; - -#if 1 - double umf_start_time = omp_get_wtime(); + double umf_start_time = SUITESPARSE_TIME; double status, // Info [UMFPACK_STATUS] - Info[UMFPACK_INFO], // Contains statistics about the symbolic analysis - + Info[UMFPACK_INFO], // statistics about the symbolic analysis umf_Control[UMFPACK_CONTROL]; // it is set in umfpack_dl_defaults and // is used in umfpack_dl_symbolic; if // passed NULL it will use the defaults umfpack_dl_defaults(umf_Control); - // umf_Control[UMFPACK_ORDERING] = UMFPACK_ORDERING_AMD; - // umf_Control[UMFPACK_ORDERING] = UMFPACK_ORDERING_METIS; - // umf_Control [UMFPACK_STRATEGY] = UMFPACK_STRATEGY_UNSYMMETRIC; - // umf_Control [UMFPACK_STRATEGY] = UMFPACK_STRATEGY_SYMMETRIC; - // umf_Control[UMFPACK_SINGLETONS] = Control.umfpack_default_singleton; umf_Control[UMFPACK_ORDERING] = UMFPACK_ORDERING_METIS_GUARD; int64_t *Ap = (int64_t *)A->p; int64_t *Ai = (int64_t *)A->i; double *Ax = (double *)A->x; - // int64_t m = A->nrow; - int64_t n = A->ncol; - void *Symbolic, *Numeric; // Output argument in umf_dl_symbolc; status = umfpack_dl_symbolic(n, n, Ap, Ai, Ax, &Symbolic, umf_Control, Info); @@ -240,10 +215,10 @@ int main(int argc, char **argv) umfpack_dl_report_info(umf_Control, Info); umfpack_dl_report_status(umf_Control, status); printf("umfpack_dl_symbolic failed\n"); - exit(0); + FREE_ALL_AND_RETURN (PARU_INVALID) ; } - double umf_symbolic = omp_get_wtime() - umf_start_time; - double umf_fac_start = omp_get_wtime(); + double umf_symbolic = SUITESPARSE_TIME - umf_start_time; + double umf_fac_start = SUITESPARSE_TIME; status = umfpack_dl_numeric(Ap, Ai, Ax, Symbolic, &Numeric, umf_Control, Info); // umf_Control[UMFPACK_PRL] = 2; @@ -254,49 +229,42 @@ int main(int argc, char **argv) umfpack_dl_report_info(umf_Control, Info); umfpack_dl_report_status(umf_Control, status); printf("umfpack_dl_numeric failed\n"); + FREE_ALL_AND_RETURN (PARU_INVALID) ; } - double umf_time_fac = omp_get_wtime() - umf_fac_start; + double umf_time_fac = SUITESPARSE_TIME - umf_fac_start; - double *b = (double *)malloc(m * sizeof(double)); - double *x = (double *)malloc(m * sizeof(double)); - for (int64_t i = 0; i < m; ++i) b[i] = i + 1; + x = (double *)malloc(n * sizeof(double)); + for (int64_t i = 0; i < n; ++i) b[i] = i + 1; - double solve_start = omp_get_wtime(); + double solve_start = SUITESPARSE_TIME; status = umfpack_dl_solve(UMFPACK_A, Ap, Ai, Ax, x, b, Numeric, umf_Control, Info); - double umf_solve_time = omp_get_wtime() - solve_start; - umf_time = omp_get_wtime() - umf_start_time; + double umf_solve_time = SUITESPARSE_TIME - solve_start; + umf_time = SUITESPARSE_TIME - umf_start_time; double umf_resid, umf_anorm, umf_xnorm; - info = ParU_C_Residual_bAx(A, x, b, m, &umf_resid, &umf_anorm, &umf_xnorm, - &Control); - double umf_rresid = (umf_anorm == 0 || umf_xnorm == 0 ) + info = ParU_C_Residual_bAx(A, x, b, &umf_resid, &umf_anorm, &umf_xnorm, + Control); + double umf_rresid = (umf_anorm == 0 || umf_xnorm == 0 ) ? 0 : (umf_resid/(umf_anorm*umf_xnorm)); printf( "UMFPACK Residual is |%.2e|, anorm is %.2e, xnorm is %.2e, and rcond" " is %.2e.\n", - umf_rresid, umf_anorm, umf_xnorm, Num->rcond); - - free(x); - free(b); - - umfpack_dl_free_symbolic(&Symbolic); - umfpack_dl_free_numeric(&Numeric); -#endif // calling umfpack + umf_rresid, umf_anorm, umf_xnorm, rcond); // Writing results to a file #if 0 if (info == PARU_SUCCESS) { FILE *res_file; - char res_name[] = "../build/Res/res.txt"; + char res_name[] = "res.txt"; res_file = fopen(res_name, "a"); if (res_file == NULL) { printf("Par: error in making %s to write the results!\n", res_name); } - fprintf(res_file, "%ld %ld %lf %lf %lf %lf %lf %lf %lf %lf\n", Sym->m, - Sym->anz, my_time_analyze, my_time_fac, my_solve_time, my_time, + fprintf(res_file, "%ld %ld %lf %lf %lf %lf %lf %lf %lf %lf\n", n, + anz, my_time_analyze, my_time_fac, my_solve_time, my_time, umf_symbolic, umf_time_fac, umf_solve_time, umf_time); fclose(res_file); } @@ -305,9 +273,6 @@ int main(int argc, char **argv) #endif // writing to a file //~~~~~~~~~~~~~~~~~~~Free Everything~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ParU_C_Freenum(&Num, &Control); - ParU_C_Freesym(&Sym, &Control); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); + FREE_ALL_AND_RETURN (PARU_SUCCESS) ; } diff --git a/ParU/Demo/paru_simple.cpp b/ParU/Demo/paru_simple.cpp index 060fedffb9..1bffbc3ffa 100644 --- a/ParU/Demo/paru_simple.cpp +++ b/ParU/Demo/paru_simple.cpp @@ -2,9 +2,9 @@ // ======================= paru_simple.cpp ================================ / // ========================================================================== / -// ParU, Copyright (c) 2022, Mohsen Aznaveh and Timothy A. Davis, +// ParU, Copyright (c) 2022-2024, Mohsen Aznaveh and Timothy A. Davis, // All Rights Reserved. -// SPDX-License-Identifier: GNU GPL 3.0 +// SPDX-License-Identifier: GPL-3.0-or-later /* * @brief a simple test to show how to use ParU in C++ @@ -15,68 +15,82 @@ #include #include -#include "ParU.hpp" +#include "ParU.h" + +#define FREE_ALL_AND_RETURN(info) \ +{ \ + if (b != NULL) free(b); \ + if (x != NULL) free(x); \ + ParU_FreeNumeric(&Num, Control); \ + ParU_FreeSymbolic(&Sym, Control); \ + ParU_FreeControl(&Control); \ + cholmod_l_free_sparse(&A, cc); \ + cholmod_l_finish(cc); \ + return (info) ; \ +} + +#define OK(method,what) \ +{ \ + info = (method) ; \ + if (info != PARU_SUCCESS) \ + { \ + std::cout << what << " failed\n" ; \ + FREE_ALL_AND_RETURN (info) ; \ + } \ +} + int main(int argc, char **argv) { cholmod_common Common, *cc; - cholmod_sparse *A; - ParU_Symbolic *Sym; + cholmod_sparse *A = NULL ; + ParU_Symbolic Sym = NULL ; + ParU_Numeric Num = NULL ; + ParU_Control Control = NULL ; + double *b = NULL, *x = NULL ; + //~~~~~~~~~Reading the input matrix and test if the format is OK~~~~~~~~~~~~ // start CHOLMOD cc = &Common; int mtype; cholmod_l_start(cc); - // A = mread (stdin) ; read in the sparse matrix A A = (cholmod_sparse *)cholmod_l_read_matrix(stdin, 1, &mtype, cc); - //~~~~~~~~~~~~~~~~~~~Starting computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - std::cout << "================= ParU, a simple demo: ========================\n"; - ParU_Control Control; - ParU_Ret info; - info = ParU_Analyze(A, &Sym, &Control); - std::cout << "Input matrix is " << Sym->m << "x" << Sym->n - << " nnz = " << Sym->anz << std::endl; - ParU_Numeric *Num; - info = ParU_Factorize(A, Sym, &Num, &Control); - - if (info != PARU_SUCCESS) + if (A == NULL) { - std::cout << "ParU: factorization was NOT successful.\n"; - if (info == PARU_OUT_OF_MEMORY) - std::cout << "Out of memory\n"; - if (info == PARU_INVALID) - std::cout << "Invalid!\n"; - if (info == PARU_SINGULAR) - std::cout << "Singular!\n"; - } - else - { - std::cout << "ParU: factorization was successful." << std::endl; + std::cout << "ParU: invalid input matrix\n" ; + FREE_ALL_AND_RETURN (PARU_INVALID) ; } - //~~~~~~~~~~~~~~~~~~~ Computing Ax = b ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#if 1 - if (info == PARU_SUCCESS) - { - int64_t m = Sym->m; - double *b = (double *)malloc(m * sizeof(double)); - double *xx = (double *)malloc(m * sizeof(double)); - for (int64_t i = 0; i < m; ++i) b[i] = i + 1; - info = ParU_Solve(Sym, Num, b, xx, &Control); - double resid, anorm, xnorm; - info = ParU_Residual(A, xx, b, m, resid, anorm, xnorm, &Control); - double rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); - std::cout << std::scientific << std::setprecision(2) - << "Relative residual is |" << rresid << "| anorm is " << anorm - << ", xnorm is " << xnorm << " and rcond is " << Num->rcond << "." - << std::endl; - free(b); - free(xx); - } -#endif // testing the results - //~~~~~~~~~~~~~~~~~~~End computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ParU_Freenum(&Num, &Control); - ParU_Freesym(&Sym, &Control); + //~~~~~~~~~~~~~~~~~~~Starting computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + std::cout << "================= ParU, a simple demo: ===================\n"; + ParU_Info info; + OK (ParU_Analyze(A, &Sym, Control), "symbolic analysis"); + int64_t n, anz ; + OK (ParU_Get (Sym, Num, PARU_GET_N, &n, Control), "n") ; + OK (ParU_Get (Sym, Num, PARU_GET_ANZ, &anz, Control), "anz") ; + std::cout << "Input matrix is " << n << "x" << n << + " nnz = " << anz << std::endl; + OK (ParU_Factorize(A, Sym, &Num, Control), "numeric factorization") ; + int64_t unz, lnz ; + OK (ParU_Get (Sym, Num, PARU_GET_LNZ_BOUND, &lnz, Control), "lnz") ; + OK (ParU_Get (Sym, Num, PARU_GET_UNZ_BOUND, &unz, Control), "unz") ; + std::cout << "ParU: factorization was successful." << std::endl; + std::cout << "nnz(L) = " << lnz << ", nnz(U) = " << unz << std::endl; - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); + //~~~~~~~~~~~~~~~~~~~ Computing the residual, norm(b-Ax) ~~~~~~~~~~~~~~~~~~~ + b = (double *)malloc(n * sizeof(double)); + x = (double *)malloc(n * sizeof(double)); + for (int64_t i = 0; i < n; ++i) b[i] = i + 1; + OK (ParU_Solve(Sym, Num, b, x, Control), "solve") ; + double resid, anorm, xnorm, rcond ; + OK (ParU_Residual(A, x, b, resid, anorm, xnorm, Control), "residual"); + OK (ParU_Get (Sym, Num, PARU_GET_RCOND_ESTIMATE, &rcond, Control), + "rcond") ; + double rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); + std::cout << std::scientific << std::setprecision(2) + << "Relative residual is |" << rresid << "| anorm is " << anorm + << ", xnorm is " << xnorm << " and rcond is " << rcond << "." + << std::endl; + + //~~~~~~~~~~~~~~~~~~~End computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + FREE_ALL_AND_RETURN (PARU_SUCCESS) ; } diff --git a/ParU/Demo/paru_simplec.c b/ParU/Demo/paru_simplec.c index 5bcca6ab90..c50ac63756 100644 --- a/ParU/Demo/paru_simplec.c +++ b/ParU/Demo/paru_simplec.c @@ -2,75 +2,89 @@ // ======================= paru_simplec.c ================================= / // ========================================================================== / -// ParU, Copyright (c) 2022, Mohsen Aznaveh and Timothy A. Davis, +// ParU, Copyright (c) 2022-2024, Mohsen Aznaveh and Timothy A. Davis, // All Rights Reserved. -// SPDX-License-Identifier: GNU GPL 3.0 +// SPDX-License-Identifier: GPL-3.0-or-later /* * @brief a simple test to show how to use ParU with C interface * @author Aznaveh * */ -#include -#include -#include "ParU_C.h" +#include "ParU.h" + +#define FREE_ALL_AND_RETURN(info) \ +{ \ + if (b != NULL) free(b); \ + if (x != NULL) free(x); \ + ParU_C_FreeNumeric(&Num, Control); \ + ParU_C_FreeSymbolic(&Sym, Control); \ + ParU_C_FreeControl(&Control); \ + cholmod_l_free_sparse(&A, cc); \ + cholmod_l_finish(cc); \ + return (info) ; \ +} + +#define OK(method,what) \ +{ \ + ParU_Info info = (method) ; \ + if (info != PARU_SUCCESS) \ + { \ + printf ("ParU: %s failed\n", what) ; \ + FREE_ALL_AND_RETURN (info) ; \ + } \ +} + int main(int argc, char **argv) { - cholmod_common Common, *cc; - cholmod_sparse *A; - ParU_C_Symbolic *Sym; + cholmod_common Common, *cc = NULL ; + cholmod_sparse *A = NULL ; + ParU_C_Symbolic Sym = NULL ; + ParU_C_Numeric Num = NULL ; + ParU_C_Control Control = NULL ; + double *b = NULL, *x = NULL ; + //~~~~~~~~~Reading the input matrix and test if the format is OK~~~~~~~~~~~~ // start CHOLMOD cc = &Common; int mtype; cholmod_l_start(cc); - // A = mread (stdin) ; read in the sparse matrix A + + // read in the sparse matrix A from stdin A = (cholmod_sparse *)cholmod_l_read_matrix(stdin, 1, &mtype, cc); + if (A == NULL) + { + printf ("unable to read matrix\n") ; + FREE_ALL_AND_RETURN (PARU_INVALID) ; + } + //~~~~~~~~~~~~~~~~~~~Starting computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ printf("================= ParU, a simple demo, using C interface : ====\n"); - ParU_C_Control Control; - ParU_C_Init_Control(&Control); - ParU_Ret info; - info = ParU_C_Analyze(A, &Sym, &Control); - printf("Input matrix is %" PRId64 "x%" PRId64 " nnz = %" PRId64 " \n", Sym->m, Sym->n, Sym->anz); - ParU_C_Numeric *Num; - info = ParU_C_Factorize(A, Sym, &Num, &Control); + OK (ParU_C_Analyze(A, &Sym, Control), "analysis") ; + int64_t n, anz ; + OK (ParU_C_Get_INT64 (Sym, Num, PARU_GET_N, &n, Control), "n") ; + OK (ParU_C_Get_INT64 (Sym, Num, PARU_GET_ANZ, &anz, Control), "anz") ; + printf("Input matrix is %" PRId64 "x%" PRId64 " nnz = %" PRId64 " \n", + n, n, anz); + OK (ParU_C_Factorize(A, Sym, &Num, Control), "factorization") ; + printf("ParU: factorization was successful.\n"); - if (info != PARU_SUCCESS) - { - printf("ParU: factorization was NOT successful."); - if (info == PARU_OUT_OF_MEMORY) printf("\nOut of memory\n"); - if (info == PARU_INVALID) printf("\nInvalid!\n"); - if (info == PARU_SINGULAR) printf("\nSingular!\n"); - } - else - { - printf("ParU: factorization was successful.\n"); - } + //~~~~~~~~~~~~~~~~~~~ Computing the residual, norm(b-Ax) ~~~~~~~~~~~~~~~~~~~ + b = (double *)malloc(n * sizeof(double)); + x = (double *)malloc(n * sizeof(double)); + for (int64_t i = 0; i < n; ++i) b[i] = i + 1; + OK (ParU_C_Solve_Axb(Sym, Num, b, x, Control), "solve") ; - //~~~~~~~~~~~~~~~~~~~ Computing Ax = b ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -#if 1 - if (info == PARU_SUCCESS) - { - int64_t m = Sym->m; - double *b = (double *)malloc(m * sizeof(double)); - double *xx = (double *)malloc(m * sizeof(double)); - for (int64_t i = 0; i < m; ++i) b[i] = i + 1; - info = ParU_C_Solve_Axb(Sym, Num, b, xx, &Control); - double resid, anorm, xnorm; - info = - ParU_C_Residual_bAx(A, xx, b, m, &resid, &anorm, &xnorm, &Control); - double rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); - printf( "Relative residual is |%.2e|, anorm is %.2e, xnorm is %.2e " - " and rcond is %.2e.\n", rresid, anorm, xnorm, Num->rcond); - free(b); - free(xx); - } -#endif // testing the results - //~~~~~~~~~~~~~~~~~~~End computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - ParU_C_Freenum(&Num, &Control); - ParU_C_Freesym(&Sym, &Control); + double resid, anorm, xnorm; + OK (ParU_C_Residual_bAx(A, x, b, &resid, &anorm, &xnorm, Control), + "resid") ; + double rresid = (anorm == 0 || xnorm == 0 ) ? 0 : (resid/(anorm*xnorm)); + double rcond ; + OK (ParU_C_Get_FP64 (Sym, Num, PARU_GET_RCOND_ESTIMATE, &rcond, Control), + "rcond") ; + printf("Relative residual is |%.2e|, anorm is %.2e, xnorm is %.2e, " + " and rcond is %.2e.\n", rresid, anorm, xnorm, rcond); - cholmod_l_free_sparse(&A, cc); - cholmod_l_finish(cc); + //~~~~~~~~~~~~~~~~~~~End computation~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + FREE_ALL_AND_RETURN (PARU_SUCCESS) ; } diff --git a/ParU/Doc/Aznaveh_PhDThesis.pdf b/ParU/Doc/Aznaveh_PhDThesis.pdf new file mode 100644 index 0000000000..acaf26e3df Binary files /dev/null and b/ParU/Doc/Aznaveh_PhDThesis.pdf differ diff --git a/ParU/Doc/ChangeLog b/ParU/Doc/ChangeLog index 26f80c2369..e2446eaed2 100644 --- a/ParU/Doc/ChangeLog +++ b/ParU/Doc/ChangeLog @@ -1,3 +1,9 @@ +Aug 2, 2024: version 0.2.0 + + * major changes to the API: as compared to the draft 0.1 version. + * nearly stable release: the API should be unchanged when v1.0.0 + is released. + Mar 22, 2024: version 0.1.3 * minor updates to build system diff --git a/ParU/Doc/Doxyfile b/ParU/Doc/Doxyfile deleted file mode 100644 index 1f5431e660..0000000000 --- a/ParU/Doc/Doxyfile +++ /dev/null @@ -1,2576 +0,0 @@ -# Doxyfile 1.8.20 - -# This file describes the settings to be used by the documentation system -# doxygen (www.doxygen.org) for a project. -# -# All text after a double hash (##) is considered a comment and is placed in -# front of the TAG it is preceding. -# -# All text after a single hash (#) is considered a comment and will be ignored. -# The format is: -# TAG = value [value, ...] -# For lists, items can also be appended using: -# TAG += value [value, ...] -# Values that contain spaces should be placed between quotes (\" \"). - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- - -# This tag specifies the encoding used for all characters in the configuration -# file that follow. The default is UTF-8 which is also the encoding used for all -# text before the first occurrence of this tag. Doxygen uses libiconv (or the -# iconv built into libc) for the transcoding. See -# https://www.gnu.org/software/libiconv/ for the list of possible encodings. -# The default value is: UTF-8. - -DOXYFILE_ENCODING = UTF-8 - -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded by -# double-quotes, unless you are using Doxywizard) that should identify the -# project for which the documentation is generated. This name is used in the -# title of most generated pages and in a few other places. -# The default value is: My Project. - -PROJECT_NAME = "ParU" - -# The PROJECT_NUMBER tag can be used to enter a project or revision number. This -# could be handy for archiving the generated documentation or if some version -# control system is used. - -PROJECT_NUMBER = - -# Using the PROJECT_BRIEF tag one can provide an optional one line description -# for a project that appears at the top of each page and should give viewer a -# quick idea about the purpose of the project. Keep the description short. - -PROJECT_BRIEF = - -# With the PROJECT_LOGO tag one can specify a logo or an icon that is included -# in the documentation. The maximum height of the logo should not exceed 55 -# pixels and the maximum width should not exceed 200 pixels. Doxygen will copy -# the logo to the output directory. - -PROJECT_LOGO = - -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path -# into which the generated documentation will be written. If a relative path is -# entered, it will be relative to the location where doxygen was started. If -# left blank the current directory will be used. - -OUTPUT_DIRECTORY = ./OUTDOX - -# If the CREATE_SUBDIRS tag is set to YES then doxygen will create 4096 sub- -# directories (in 2 levels) under the output directory of each output format and -# will distribute the generated files over these directories. Enabling this -# option can be useful when feeding doxygen a huge amount of source files, where -# putting all generated files in the same directory would otherwise causes -# performance problems for the file system. -# The default value is: NO. - -CREATE_SUBDIRS = NO - -# If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII -# characters to appear in the names of generated files. If set to NO, non-ASCII -# characters will be escaped, for example _xE3_x81_x84 will be used for Unicode -# U+3044. -# The default value is: NO. - -ALLOW_UNICODE_NAMES = NO - -# The OUTPUT_LANGUAGE tag is used to specify the language in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all constant output in the proper language. -# Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese, -# Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States), -# Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian, -# Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages), -# Korean, Korean-en (Korean with English messages), Latvian, Lithuanian, -# Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian, -# Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish, -# Ukrainian and Vietnamese. -# The default value is: English. - -OUTPUT_LANGUAGE = English - -# The OUTPUT_TEXT_DIRECTION tag is used to specify the direction in which all -# documentation generated by doxygen is written. Doxygen will use this -# information to generate all generated output in the proper direction. -# Possible values are: None, LTR, RTL and Context. -# The default value is: None. - -OUTPUT_TEXT_DIRECTION = None - -# If the BRIEF_MEMBER_DESC tag is set to YES, doxygen will include brief member -# descriptions after the members that are listed in the file and class -# documentation (similar to Javadoc). Set to NO to disable this. -# The default value is: YES. - -BRIEF_MEMBER_DESC = YES - -# If the REPEAT_BRIEF tag is set to YES, doxygen will prepend the brief -# description of a member or function before the detailed description -# -# Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the -# brief descriptions will be completely suppressed. -# The default value is: YES. - -REPEAT_BRIEF = YES - -# This tag implements a quasi-intelligent brief description abbreviator that is -# used to form the text in various listings. Each string in this list, if found -# as the leading text of the brief description, will be stripped from the text -# and the result, after processing the whole list, is used as the annotated -# text. Otherwise, the brief description is used as-is. If left blank, the -# following values are used ($name is automatically replaced with the name of -# the entity):The $name class, The $name widget, The $name file, is, provides, -# specifies, contains, represents, a, an and the. - -ABBREVIATE_BRIEF = "The $name class" \ - "The $name widget" \ - "The $name file" \ - is \ - provides \ - specifies \ - contains \ - represents \ - a \ - an \ - the - -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then -# doxygen will generate a detailed section even if there is only a brief -# description. -# The default value is: NO. - -ALWAYS_DETAILED_SEC = NO - -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all -# inherited members of a class in the documentation of that class as if those -# members were ordinary class members. Constructors, destructors and assignment -# operators of the base classes will not be shown. -# The default value is: NO. - -INLINE_INHERITED_MEMB = NO - -# If the FULL_PATH_NAMES tag is set to YES, doxygen will prepend the full path -# before files name in the file list and in the header files. If set to NO the -# shortest path that makes the file name unique will be used -# The default value is: YES. - -FULL_PATH_NAMES = YES - -# The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path. -# Stripping is only done if one of the specified strings matches the left-hand -# part of the path. The tag can be used to show relative paths in the file list. -# If left blank the directory from which doxygen is run is used as the path to -# strip. -# -# Note that you can specify absolute paths here, but also relative paths, which -# will be relative from the directory where doxygen is started. -# This tag requires that the tag FULL_PATH_NAMES is set to YES. - -STRIP_FROM_PATH = - -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the -# path mentioned in the documentation of a class, which tells the reader which -# header file to include in order to use a class. If left blank only the name of -# the header file containing the class definition is used. Otherwise one should -# specify the list of include paths that are normally passed to the compiler -# using the -I flag. - -STRIP_FROM_INC_PATH = - -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but -# less readable) file names. This can be useful is your file systems doesn't -# support long names like on DOS, Mac, or CD-ROM. -# The default value is: NO. - -SHORT_NAMES = NO - -# If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the -# first line (until the first dot) of a Javadoc-style comment as the brief -# description. If set to NO, the Javadoc-style will behave just like regular Qt- -# style comments (thus requiring an explicit @brief command for a brief -# description.) -# The default value is: NO. - -JAVADOC_AUTOBRIEF = NO - -# If the JAVADOC_BANNER tag is set to YES then doxygen will interpret a line -# such as -# /*************** -# as being the beginning of a Javadoc-style comment "banner". If set to NO, the -# Javadoc-style will behave just like regular comments and it will not be -# interpreted by doxygen. -# The default value is: NO. - -JAVADOC_BANNER = NO - -# If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first -# line (until the first dot) of a Qt-style comment as the brief description. If -# set to NO, the Qt-style will behave just like regular Qt-style comments (thus -# requiring an explicit \brief command for a brief description.) -# The default value is: NO. - -QT_AUTOBRIEF = NO - -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a -# multi-line C++ special comment block (i.e. a block of //! or /// comments) as -# a brief description. This used to be the default behavior. The new default is -# to treat a multi-line C++ comment block as a detailed description. Set this -# tag to YES if you prefer the old behavior instead. -# -# Note that setting this tag to YES also means that rational rose comments are -# not recognized any more. -# The default value is: NO. - -MULTILINE_CPP_IS_BRIEF = NO - -# By default Python docstrings are displayed as preformatted text and doxygen's -# special commands cannot be used. By setting PYTHON_DOCSTRING to NO the -# doxygen's special commands can be used and the contents of the docstring -# documentation blocks is shown as doxygen documentation. -# The default value is: YES. - -PYTHON_DOCSTRING = YES - -# If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the -# documentation from any documented member that it re-implements. -# The default value is: YES. - -INHERIT_DOCS = YES - -# If the SEPARATE_MEMBER_PAGES tag is set to YES then doxygen will produce a new -# page for each member. If set to NO, the documentation of a member will be part -# of the file/class/namespace that contains it. -# The default value is: NO. - -SEPARATE_MEMBER_PAGES = NO - -# The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen -# uses this value to replace tabs by spaces in code fragments. -# Minimum value: 1, maximum value: 16, default value: 4. - -TAB_SIZE = 4 - -# This tag can be used to specify a number of aliases that act as commands in -# the documentation. An alias has the form: -# name=value -# For example adding -# "sideeffect=@par Side Effects:\n" -# will allow you to put the command \sideeffect (or @sideeffect) in the -# documentation, which will result in a user-defined paragraph with heading -# "Side Effects:". You can put \n's in the value part of an alias to insert -# newlines (in the resulting output). You can put ^^ in the value part of an -# alias to insert a newline as if a physical newline was in the original file. -# When you need a literal { or } or , in the value part of an alias you have to -# escape them by means of a backslash (\), this can lead to conflicts with the -# commands \{ and \} for these it is advised to use the version @{ and @} or use -# a double escape (\\{ and \\}) - -ALIASES = - -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources -# only. Doxygen will then generate output that is more tailored for C. For -# instance, some of the names that are used will be different. The list of all -# members will be omitted, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_FOR_C = NO - -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or -# Python sources only. Doxygen will then generate output that is more tailored -# for that language. For instance, namespaces will be presented as packages, -# qualified scopes will look different, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_JAVA = NO - -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran -# sources. Doxygen will then generate output that is tailored for Fortran. -# The default value is: NO. - -OPTIMIZE_FOR_FORTRAN = NO - -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL -# sources. Doxygen will then generate output that is tailored for VHDL. -# The default value is: NO. - -OPTIMIZE_OUTPUT_VHDL = NO - -# Set the OPTIMIZE_OUTPUT_SLICE tag to YES if your project consists of Slice -# sources only. Doxygen will then generate output that is more tailored for that -# language. For instance, namespaces will be presented as modules, types will be -# separated into more groups, etc. -# The default value is: NO. - -OPTIMIZE_OUTPUT_SLICE = NO - -# Doxygen selects the parser to use depending on the extension of the files it -# parses. With this tag you can assign which parser to use for a given -# extension. Doxygen has a built-in mapping, but you can override or extend it -# using this tag. The format is ext=language, where ext is a file extension, and -# language is one of the parsers supported by doxygen: IDL, Java, JavaScript, -# Csharp (C#), C, C++, D, PHP, md (Markdown), Objective-C, Python, Slice, VHDL, -# Fortran (fixed format Fortran: FortranFixed, free formatted Fortran: -# FortranFree, unknown formatted Fortran: Fortran. In the later case the parser -# tries to guess whether the code is fixed or free formatted code, this is the -# default for Fortran type files). For instance to make doxygen treat .inc files -# as Fortran files (default is PHP), and .f files as C (default is Fortran), -# use: inc=Fortran f=C. -# -# Note: For files without extension you can use no_extension as a placeholder. -# -# Note that for custom extensions you also need to set FILE_PATTERNS otherwise -# the files are not read by doxygen. - -EXTENSION_MAPPING = - -# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments -# according to the Markdown format, which allows for more readable -# documentation. See https://daringfireball.net/projects/markdown/ for details. -# The output of markdown processing is further processed by doxygen, so you can -# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in -# case of backward compatibilities issues. -# The default value is: YES. - -MARKDOWN_SUPPORT = YES - -# When the TOC_INCLUDE_HEADINGS tag is set to a non-zero value, all headings up -# to that level are automatically included in the table of contents, even if -# they do not have an id attribute. -# Note: This feature currently applies only to Markdown headings. -# Minimum value: 0, maximum value: 99, default value: 5. -# This tag requires that the tag MARKDOWN_SUPPORT is set to YES. - -TOC_INCLUDE_HEADINGS = 5 - -# When enabled doxygen tries to link words that correspond to documented -# classes, or namespaces to their corresponding documentation. Such a link can -# be prevented in individual cases by putting a % sign in front of the word or -# globally by setting AUTOLINK_SUPPORT to NO. -# The default value is: YES. - -AUTOLINK_SUPPORT = YES - -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want -# to include (a tag file for) the STL sources as input, then you should set this -# tag to YES in order to let doxygen match functions declarations and -# definitions whose arguments contain STL classes (e.g. func(std::string); -# versus func(std::string) {}). This also make the inheritance and collaboration -# diagrams that involve STL classes more complete and accurate. -# The default value is: NO. - -BUILTIN_STL_SUPPORT = NO - -# If you use Microsoft's C++/CLI language, you should set this option to YES to -# enable parsing support. -# The default value is: NO. - -CPP_CLI_SUPPORT = NO - -# Set the SIP_SUPPORT tag to YES if your project consists of sip (see: -# https://www.riverbankcomputing.com/software/sip/intro) sources only. Doxygen -# will parse them like normal C++ but will assume all classes use public instead -# of private inheritance when no explicit protection keyword is present. -# The default value is: NO. - -SIP_SUPPORT = NO - -# For Microsoft's IDL there are propget and propput attributes to indicate -# getter and setter methods for a property. Setting this option to YES will make -# doxygen to replace the get and set methods by a property in the documentation. -# This will only work if the methods are indeed getting or setting a simple -# type. If this is not the case, or you want to show the methods anyway, you -# should set this option to NO. -# The default value is: YES. - -IDL_PROPERTY_SUPPORT = YES - -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC -# tag is set to YES then doxygen will reuse the documentation of the first -# member in the group (if any) for the other members of the group. By default -# all members of a group must be documented explicitly. -# The default value is: NO. - -DISTRIBUTE_GROUP_DOC = NO - -# If one adds a struct or class to a group and this option is enabled, then also -# any nested class or struct is added to the same group. By default this option -# is disabled and one has to add nested compounds explicitly via \ingroup. -# The default value is: NO. - -GROUP_NESTED_COMPOUNDS = NO - -# Set the SUBGROUPING tag to YES to allow class member groups of the same type -# (for instance a group of public functions) to be put as a subgroup of that -# type (e.g. under the Public Functions section). Set it to NO to prevent -# subgrouping. Alternatively, this can be done per class using the -# \nosubgrouping command. -# The default value is: YES. - -SUBGROUPING = YES - -# When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions -# are shown inside the group in which they are included (e.g. using \ingroup) -# instead of on a separate page (for HTML and Man pages) or section (for LaTeX -# and RTF). -# -# Note that this feature does not work in combination with -# SEPARATE_MEMBER_PAGES. -# The default value is: NO. - -INLINE_GROUPED_CLASSES = NO - -# When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions -# with only public data fields or simple typedef fields will be shown inline in -# the documentation of the scope in which they are defined (i.e. file, -# namespace, or group documentation), provided this scope is documented. If set -# to NO, structs, classes, and unions are shown on a separate page (for HTML and -# Man pages) or section (for LaTeX and RTF). -# The default value is: NO. - -INLINE_SIMPLE_STRUCTS = NO - -# When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or -# enum is documented as struct, union, or enum with the name of the typedef. So -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct -# with name TypeT. When disabled the typedef will appear as a member of a file, -# namespace, or class. And the struct will be named TypeS. This can typically be -# useful for C code in case the coding convention dictates that all compound -# types are typedef'ed and only the typedef is referenced, never the tag name. -# The default value is: NO. - -TYPEDEF_HIDES_STRUCT = NO - -# The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This -# cache is used to resolve symbols given their name and scope. Since this can be -# an expensive process and often the same symbol appears multiple times in the -# code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small -# doxygen will become slower. If the cache is too large, memory is wasted. The -# cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range -# is 0..9, the default is 0, corresponding to a cache size of 2^16=65536 -# symbols. At the end of a run doxygen will report the cache usage and suggest -# the optimal cache size from a speed point of view. -# Minimum value: 0, maximum value: 9, default value: 0. - -LOOKUP_CACHE_SIZE = 0 - -# The NUM_PROC_THREADS specifies the number threads doxygen is allowed to use -# during processing. When set to 0 doxygen will based this on the number of -# cores available in the system. You can set it explicitly to a value larger -# than 0 to get more control over the balance between CPU load and processing -# speed. At this moment only the input processing can be done using multiple -# threads. Since this is still an experimental feature the default is set to 1, -# which efficively disables parallel processing. Please report any issues you -# encounter. Generating dot graphs in parallel is controlled by the -# DOT_NUM_THREADS setting. -# Minimum value: 0, maximum value: 32, default value: 1. - -NUM_PROC_THREADS = 1 - -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- - -# If the EXTRACT_ALL tag is set to YES, doxygen will assume all entities in -# documentation are documented, even if no documentation was available. Private -# class members and static file members will be hidden unless the -# EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES. -# Note: This will also disable the warnings about undocumented members that are -# normally produced when WARNINGS is set to YES. -# The default value is: NO. - -EXTRACT_ALL = YES - -# If the EXTRACT_PRIVATE tag is set to YES, all private members of a class will -# be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIVATE = YES - -# If the EXTRACT_PRIV_VIRTUAL tag is set to YES, documented private virtual -# methods of a class will be included in the documentation. -# The default value is: NO. - -EXTRACT_PRIV_VIRTUAL = NO - -# If the EXTRACT_PACKAGE tag is set to YES, all members with package or internal -# scope will be included in the documentation. -# The default value is: NO. - -EXTRACT_PACKAGE = NO - -# If the EXTRACT_STATIC tag is set to YES, all static members of a file will be -# included in the documentation. -# The default value is: NO. - -EXTRACT_STATIC = YES - -# If the EXTRACT_LOCAL_CLASSES tag is set to YES, classes (and structs) defined -# locally in source files will be included in the documentation. If set to NO, -# only classes defined in header files are included. Does not have any effect -# for Java sources. -# The default value is: YES. - -EXTRACT_LOCAL_CLASSES = YES - -# This flag is only useful for Objective-C code. If set to YES, local methods, -# which are defined in the implementation section but not in the interface are -# included in the documentation. If set to NO, only methods in the interface are -# included. -# The default value is: NO. - -EXTRACT_LOCAL_METHODS = NO - -# If this flag is set to YES, the members of anonymous namespaces will be -# extracted and appear in the documentation as a namespace called -# 'anonymous_namespace{file}', where file will be replaced with the base name of -# the file that contains the anonymous namespace. By default anonymous namespace -# are hidden. -# The default value is: NO. - -EXTRACT_ANON_NSPACES = NO - -# If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all -# undocumented members inside documented classes or files. If set to NO these -# members will be included in the various overviews, but no documentation -# section is generated. This option has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_MEMBERS = NO - -# If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all -# undocumented classes that are normally visible in the class hierarchy. If set -# to NO, these classes will be included in the various overviews. This option -# has no effect if EXTRACT_ALL is enabled. -# The default value is: NO. - -HIDE_UNDOC_CLASSES = NO - -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend -# declarations. If set to NO, these declarations will be included in the -# documentation. -# The default value is: NO. - -HIDE_FRIEND_COMPOUNDS = NO - -# If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any -# documentation blocks found inside the body of a function. If set to NO, these -# blocks will be appended to the function's detailed documentation block. -# The default value is: NO. - -HIDE_IN_BODY_DOCS = NO - -# The INTERNAL_DOCS tag determines if documentation that is typed after a -# \internal command is included. If the tag is set to NO then the documentation -# will be excluded. Set it to YES to include the internal documentation. -# The default value is: NO. - -INTERNAL_DOCS = NO - -# If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file -# names in lower-case letters. If set to YES, upper-case letters are also -# allowed. This is useful if you have classes or files whose names only differ -# in case and if your file system supports case sensitive file names. Windows -# (including Cygwin) and Mac users are advised to set this option to NO. -# The default value is: system dependent. - -CASE_SENSE_NAMES = YES - -# If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with -# their full class and namespace scopes in the documentation. If set to YES, the -# scope will be hidden. -# The default value is: NO. - -HIDE_SCOPE_NAMES = NO - -# If the HIDE_COMPOUND_REFERENCE tag is set to NO (default) then doxygen will -# append additional text to a page's title, such as Class Reference. If set to -# YES the compound reference will be hidden. -# The default value is: NO. - -HIDE_COMPOUND_REFERENCE= NO - -# If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of -# the files that are included by a file in the documentation of that file. -# The default value is: YES. - -SHOW_INCLUDE_FILES = YES - -# If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each -# grouped member an include statement to the documentation, telling the reader -# which file to include in order to use the member. -# The default value is: NO. - -SHOW_GROUPED_MEMB_INC = NO - -# If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include -# files with double quotes in the documentation rather than with sharp brackets. -# The default value is: NO. - -FORCE_LOCAL_INCLUDES = NO - -# If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the -# documentation for inline members. -# The default value is: YES. - -INLINE_INFO = YES - -# If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the -# (detailed) documentation of file and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. -# The default value is: YES. - -SORT_MEMBER_DOCS = YES - -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief -# descriptions of file, namespace and class members alphabetically by member -# name. If set to NO, the members will appear in declaration order. Note that -# this will also influence the order of the classes in the class list. -# The default value is: NO. - -SORT_BRIEF_DOCS = NO - -# If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the -# (brief and detailed) documentation of class members so that constructors and -# destructors are listed first. If set to NO the constructors will appear in the -# respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS. -# Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief -# member documentation. -# Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting -# detailed member documentation. -# The default value is: NO. - -SORT_MEMBERS_CTORS_1ST = NO - -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy -# of group names into alphabetical order. If set to NO the group names will -# appear in their defined order. -# The default value is: NO. - -SORT_GROUP_NAMES = NO - -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by -# fully-qualified names, including namespaces. If set to NO, the class list will -# be sorted only by class name, not including the namespace part. -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. -# Note: This option applies only to the class list, not to the alphabetical -# list. -# The default value is: NO. - -SORT_BY_SCOPE_NAME = NO - -# If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper -# type resolution of all parameters of a function it will reject a match between -# the prototype and the implementation of a member function even if there is -# only one candidate or it is obvious which candidate to choose by doing a -# simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still -# accept a match between prototype and implementation in such cases. -# The default value is: NO. - -STRICT_PROTO_MATCHING = NO - -# The GENERATE_TODOLIST tag can be used to enable (YES) or disable (NO) the todo -# list. This list is created by putting \todo commands in the documentation. -# The default value is: YES. - -GENERATE_TODOLIST = YES - -# The GENERATE_TESTLIST tag can be used to enable (YES) or disable (NO) the test -# list. This list is created by putting \test commands in the documentation. -# The default value is: YES. - -GENERATE_TESTLIST = YES - -# The GENERATE_BUGLIST tag can be used to enable (YES) or disable (NO) the bug -# list. This list is created by putting \bug commands in the documentation. -# The default value is: YES. - -GENERATE_BUGLIST = YES - -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or disable (NO) -# the deprecated list. This list is created by putting \deprecated commands in -# the documentation. -# The default value is: YES. - -GENERATE_DEPRECATEDLIST= YES - -# The ENABLED_SECTIONS tag can be used to enable conditional documentation -# sections, marked by \if ... \endif and \cond -# ... \endcond blocks. - -ENABLED_SECTIONS = - -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the -# initial value of a variable or macro / define can have for it to appear in the -# documentation. If the initializer consists of more lines than specified here -# it will be hidden. Use a value of 0 to hide initializers completely. The -# appearance of the value of individual variables and macros / defines can be -# controlled using \showinitializer or \hideinitializer command in the -# documentation regardless of this setting. -# Minimum value: 0, maximum value: 10000, default value: 30. - -MAX_INITIALIZER_LINES = 30 - -# Set the SHOW_USED_FILES tag to NO to disable the list of files generated at -# the bottom of the documentation of classes and structs. If set to YES, the -# list will mention the files that were used to generate the documentation. -# The default value is: YES. - -SHOW_USED_FILES = YES - -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. This -# will remove the Files entry from the Quick Index and from the Folder Tree View -# (if specified). -# The default value is: YES. - -SHOW_FILES = YES - -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces -# page. This will remove the Namespaces entry from the Quick Index and from the -# Folder Tree View (if specified). -# The default value is: YES. - -SHOW_NAMESPACES = YES - -# The FILE_VERSION_FILTER tag can be used to specify a program or script that -# doxygen should invoke to get the current version for each file (typically from -# the version control system). Doxygen will invoke the program by executing (via -# popen()) the command command input-file, where command is the value of the -# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided -# by doxygen. Whatever the program writes to standard output is used as the file -# version. For an example see the documentation. - -FILE_VERSION_FILTER = - -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed -# by doxygen. The layout file controls the global structure of the generated -# output files in an output format independent way. To create the layout file -# that represents doxygen's defaults, run doxygen with the -l option. You can -# optionally specify a file name after the option, if omitted DoxygenLayout.xml -# will be used as the name of the layout file. -# -# Note that if you run doxygen from a directory containing a file called -# DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE -# tag is left empty. - -LAYOUT_FILE = - -# The CITE_BIB_FILES tag can be used to specify one or more bib files containing -# the reference definitions. This must be a list of .bib files. The .bib -# extension is automatically appended if omitted. This requires the bibtex tool -# to be installed. See also https://en.wikipedia.org/wiki/BibTeX for more info. -# For LaTeX the style of the bibliography can be controlled using -# LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the -# search path. See also \cite for info how to create references. - -CITE_BIB_FILES = - -#--------------------------------------------------------------------------- -# Configuration options related to warning and progress messages -#--------------------------------------------------------------------------- - -# The QUIET tag can be used to turn on/off the messages that are generated to -# standard output by doxygen. If QUIET is set to YES this implies that the -# messages are off. -# The default value is: NO. - -QUIET = NO - -# The WARNINGS tag can be used to turn on/off the warning messages that are -# generated to standard error (stderr) by doxygen. If WARNINGS is set to YES -# this implies that the warnings are on. -# -# Tip: Turn warnings on while writing the documentation. -# The default value is: YES. - -WARNINGS = YES - -# If the WARN_IF_UNDOCUMENTED tag is set to YES then doxygen will generate -# warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag -# will automatically be disabled. -# The default value is: YES. - -WARN_IF_UNDOCUMENTED = YES - -# If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for -# potential errors in the documentation, such as not documenting some parameters -# in a documented function, or documenting parameters that don't exist or using -# markup commands wrongly. -# The default value is: YES. - -WARN_IF_DOC_ERROR = YES - -# This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that -# are documented, but have no documentation for their parameters or return -# value. If set to NO, doxygen will only warn about wrong or incomplete -# parameter documentation, but not about the absence of documentation. If -# EXTRACT_ALL is set to YES then this flag will automatically be disabled. -# The default value is: NO. - -WARN_NO_PARAMDOC = NO - -# If the WARN_AS_ERROR tag is set to YES then doxygen will immediately stop when -# a warning is encountered. -# The default value is: NO. - -WARN_AS_ERROR = NO - -# The WARN_FORMAT tag determines the format of the warning messages that doxygen -# can produce. The string should contain the $file, $line, and $text tags, which -# will be replaced by the file and line number from which the warning originated -# and the warning text. Optionally the format may contain $version, which will -# be replaced by the version of the file (if it could be obtained via -# FILE_VERSION_FILTER) -# The default value is: $file:$line: $text. - -WARN_FORMAT = "$file:$line: $text" - -# The WARN_LOGFILE tag can be used to specify a file to which warning and error -# messages should be written. If left blank the output is written to standard -# error (stderr). - -WARN_LOGFILE = - -#--------------------------------------------------------------------------- -# Configuration options related to the input files -#--------------------------------------------------------------------------- - -# The INPUT tag is used to specify the files and/or directories that contain -# documented source files. You may enter file names like myfile.cpp or -# directories like /usr/src/myproject. Separate the files or directories with -# spaces. See also FILE_PATTERNS and EXTENSION_MAPPING -# Note: If this tag is empty the current directory is searched. - -INPUT = ../Source/ ../Include/ ../Demo/ ../Lib/ - -# This tag can be used to specify the character encoding of the source files -# that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses -# libiconv (or the iconv built into libc) for the transcoding. See the libiconv -# documentation (see: https://www.gnu.org/software/libiconv/) for the list of -# possible encodings. -# The default value is: UTF-8. - -INPUT_ENCODING = UTF-8 - -# If the value of the INPUT tag contains directories, you can use the -# FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and -# *.h) to filter out the source-files in the directories. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# read by doxygen. -# -# If left blank the following patterns are tested:*.c, *.cc, *.cxx, *.cpp, -# *.c++, *.java, *.ii, *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, -# *.hh, *.hxx, *.hpp, *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, -# *.m, *.markdown, *.md, *.mm, *.dox (to be provided as doxygen C comment), -# *.doc (to be provided as doxygen C comment), *.txt (to be provided as doxygen -# C comment), *.py, *.pyw, *.f90, *.f95, *.f03, *.f08, *.f18, *.f, *.for, *.vhd, -# *.vhdl, *.ucf, *.qsf and *.ice. - -FILE_PATTERNS = *.c \ - *.cc \ - *.cxx \ - *.cpp \ - *.c++ \ - *.java \ - *.ii \ - *.ixx \ - *.ipp \ - *.i++ \ - *.inl \ - *.idl \ - *.ddl \ - *.odl \ - *.h \ - *.hh \ - *.hxx \ - *.hpp \ - *.h++ \ - *.cs \ - *.d \ - *.php \ - *.php4 \ - *.php5 \ - *.phtml \ - *.inc \ - *.m \ - *.markdown \ - *.md \ - *.mm \ - *.dox \ - *.doc \ - *.txt \ - *.py \ - *.pyw \ - *.f90 \ - *.f95 \ - *.f03 \ - *.f08 \ - *.f18 \ - *.f \ - *.for \ - *.vhd \ - *.vhdl \ - *.ucf \ - *.qsf \ - *.ice - -# The RECURSIVE tag can be used to specify whether or not subdirectories should -# be searched for input files as well. -# The default value is: NO. - -RECURSIVE = NO - -# The EXCLUDE tag can be used to specify files and/or directories that should be -# excluded from the INPUT source files. This way you can easily exclude a -# subdirectory from a directory tree whose root is specified with the INPUT tag. -# -# Note that relative paths are relative to the directory from which doxygen is -# run. - -EXCLUDE = - -# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or -# directories that are symbolic links (a Unix file system feature) are excluded -# from the input. -# The default value is: NO. - -EXCLUDE_SYMLINKS = NO - -# If the value of the INPUT tag contains directories, you can use the -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude -# certain files from those directories. -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories for example use the pattern */test/* - -EXCLUDE_PATTERNS = - -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names -# (namespaces, classes, functions, etc.) that should be excluded from the -# output. The symbol name can be a fully qualified name, a word, or if the -# wildcard * is used, a substring. Examples: ANamespace, AClass, -# AClass::ANamespace, ANamespace::*Test -# -# Note that the wildcards are matched against the file with absolute path, so to -# exclude all test directories use the pattern */test/* - -EXCLUDE_SYMBOLS = - -# The EXAMPLE_PATH tag can be used to specify one or more files or directories -# that contain example code fragments that are included (see the \include -# command). - -EXAMPLE_PATH = - -# If the value of the EXAMPLE_PATH tag contains directories, you can use the -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and -# *.h) to filter out the source-files in the directories. If left blank all -# files are included. - -EXAMPLE_PATTERNS = * - -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be -# searched for input files to be used with the \include or \dontinclude commands -# irrespective of the value of the RECURSIVE tag. -# The default value is: NO. - -EXAMPLE_RECURSIVE = NO - -# The IMAGE_PATH tag can be used to specify one or more files or directories -# that contain images that are to be included in the documentation (see the -# \image command). - -IMAGE_PATH = - -# The INPUT_FILTER tag can be used to specify a program that doxygen should -# invoke to filter for each input file. Doxygen will invoke the filter program -# by executing (via popen()) the command: -# -# -# -# where is the value of the INPUT_FILTER tag, and is the -# name of an input file. Doxygen will then use the output that the filter -# program writes to standard output. If FILTER_PATTERNS is specified, this tag -# will be ignored. -# -# Note that the filter must not add or remove lines; it is applied before the -# code is scanned, but not when the output code is generated. If lines are added -# or removed, the anchors will not be placed correctly. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -INPUT_FILTER = - -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern -# basis. Doxygen will compare the file name with each pattern and apply the -# filter if there is a match. The filters are a list of the form: pattern=filter -# (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how -# filters are used. If the FILTER_PATTERNS tag is empty or if none of the -# patterns match the file name, INPUT_FILTER is applied. -# -# Note that for custom extensions or not directly supported extensions you also -# need to set EXTENSION_MAPPING for the extension otherwise the files are not -# properly processed by doxygen. - -FILTER_PATTERNS = - -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using -# INPUT_FILTER) will also be used to filter the input files that are used for -# producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES). -# The default value is: NO. - -FILTER_SOURCE_FILES = NO - -# The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file -# pattern. A pattern will override the setting for FILTER_PATTERN (if any) and -# it is also possible to disable source filtering for a specific pattern using -# *.ext= (so without naming a filter). -# This tag requires that the tag FILTER_SOURCE_FILES is set to YES. - -FILTER_SOURCE_PATTERNS = - -# If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that -# is part of the input, its contents will be placed on the main page -# (index.html). This can be useful if you have a project on for instance GitHub -# and want to reuse the introduction page also for the doxygen output. - -USE_MDFILE_AS_MAINPAGE = - -#--------------------------------------------------------------------------- -# Configuration options related to source browsing -#--------------------------------------------------------------------------- - -# If the SOURCE_BROWSER tag is set to YES then a list of source files will be -# generated. Documented entities will be cross-referenced with these sources. -# -# Note: To get rid of all source code in the generated output, make sure that -# also VERBATIM_HEADERS is set to NO. -# The default value is: NO. - -SOURCE_BROWSER = YES - -# Setting the INLINE_SOURCES tag to YES will include the body of functions, -# classes and enums directly into the documentation. -# The default value is: NO. - -INLINE_SOURCES = YES - -# Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any -# special comment blocks from generated source code fragments. Normal C, C++ and -# Fortran comments will always remain visible. -# The default value is: YES. - -STRIP_CODE_COMMENTS = YES - -# If the REFERENCED_BY_RELATION tag is set to YES then for each documented -# entity all documented functions referencing it will be listed. -# The default value is: NO. - -REFERENCED_BY_RELATION = NO - -# If the REFERENCES_RELATION tag is set to YES then for each documented function -# all documented entities called/used by that function will be listed. -# The default value is: NO. - -REFERENCES_RELATION = NO - -# If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set -# to YES then the hyperlinks from functions in REFERENCES_RELATION and -# REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will -# link to the documentation. -# The default value is: YES. - -REFERENCES_LINK_SOURCE = YES - -# If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the -# source code will show a tooltip with additional information such as prototype, -# brief description and links to the definition and documentation. Since this -# will make the HTML file larger and loading of large files a bit slower, you -# can opt to disable this feature. -# The default value is: YES. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -SOURCE_TOOLTIPS = YES - -# If the USE_HTAGS tag is set to YES then the references to source code will -# point to the HTML generated by the htags(1) tool instead of doxygen built-in -# source browser. The htags tool is part of GNU's global source tagging system -# (see https://www.gnu.org/software/global/global.html). You will need version -# 4.8.6 or higher. -# -# To use it do the following: -# - Install the latest version of global -# - Enable SOURCE_BROWSER and USE_HTAGS in the configuration file -# - Make sure the INPUT points to the root of the source tree -# - Run doxygen as normal -# -# Doxygen will invoke htags (and that will in turn invoke gtags), so these -# tools must be available from the command line (i.e. in the search path). -# -# The result: instead of the source browser generated by doxygen, the links to -# source code will now point to the output of htags. -# The default value is: NO. -# This tag requires that the tag SOURCE_BROWSER is set to YES. - -USE_HTAGS = NO - -# If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a -# verbatim copy of the header file for each class for which an include is -# specified. Set to NO to disable this. -# See also: Section \class. -# The default value is: YES. - -VERBATIM_HEADERS = YES - -#--------------------------------------------------------------------------- -# Configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- - -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all -# compounds will be generated. Enable this if the project contains a lot of -# classes, structs, unions or interfaces. -# The default value is: YES. - -ALPHABETICAL_INDEX = YES - -# The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in -# which the alphabetical index list will be split. -# Minimum value: 1, maximum value: 20, default value: 5. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -COLS_IN_ALPHA_INDEX = 5 - -# In case all classes in a project start with a common prefix, all classes will -# be put under the same header in the alphabetical index. The IGNORE_PREFIX tag -# can be used to specify a prefix (or a list of prefixes) that should be ignored -# while generating the index headers. -# This tag requires that the tag ALPHABETICAL_INDEX is set to YES. - -IGNORE_PREFIX = - -#--------------------------------------------------------------------------- -# Configuration options related to the HTML output -#--------------------------------------------------------------------------- - -# If the GENERATE_HTML tag is set to YES, doxygen will generate HTML output -# The default value is: YES. - -GENERATE_HTML = YES - -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a -# relative path is entered the value of OUTPUT_DIRECTORY will be put in front of -# it. -# The default directory is: html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_OUTPUT = html - -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for each -# generated HTML page (for example: .htm, .php, .asp). -# The default value is: .html. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FILE_EXTENSION = .html - -# The HTML_HEADER tag can be used to specify a user-defined HTML header file for -# each generated HTML page. If the tag is left blank doxygen will generate a -# standard header. -# -# To get valid HTML the header file that includes any scripts and style sheets -# that doxygen needs, which is dependent on the configuration options used (e.g. -# the setting GENERATE_TREEVIEW). It is highly recommended to start with a -# default header using -# doxygen -w html new_header.html new_footer.html new_stylesheet.css -# YourConfigFile -# and then modify the file new_header.html. See also section "Doxygen usage" -# for information on how to generate the default header that doxygen normally -# uses. -# Note: The header is subject to change so you typically have to regenerate the -# default header when upgrading to a newer version of doxygen. For a description -# of the possible markers and block names see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_HEADER = - -# The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each -# generated HTML page. If the tag is left blank doxygen will generate a standard -# footer. See HTML_HEADER for more information on how to generate a default -# footer and what special commands can be used inside the footer. See also -# section "Doxygen usage" for information on how to generate the default footer -# that doxygen normally uses. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FOOTER = - -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading style -# sheet that is used by each HTML page. It can be used to fine-tune the look of -# the HTML output. If left blank doxygen will generate a default style sheet. -# See also section "Doxygen usage" for information on how to generate the style -# sheet that doxygen normally uses. -# Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as -# it is more robust and this tag (HTML_STYLESHEET) will in the future become -# obsolete. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_STYLESHEET = - -# The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined -# cascading style sheets that are included after the standard style sheets -# created by doxygen. Using this option one can overrule certain style aspects. -# This is preferred over using HTML_STYLESHEET since it does not replace the -# standard style sheet and is therefore more robust against future updates. -# Doxygen will copy the style sheet files to the output directory. -# Note: The order of the extra style sheet files is of importance (e.g. the last -# style sheet in the list overrules the setting of the previous ones in the -# list). For an example see the documentation. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_STYLESHEET = - -# The HTML_EXTRA_FILES tag can be used to specify one or more extra images or -# other source files which should be copied to the HTML output directory. Note -# that these files will be copied to the base HTML output directory. Use the -# $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these -# files. In the HTML_STYLESHEET file, use the file name only. Also note that the -# files will be copied as-is; there are no commands or markers available. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_EXTRA_FILES = - -# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen -# will adjust the colors in the style sheet and background images according to -# this color. Hue is specified as an angle on a colorwheel, see -# https://en.wikipedia.org/wiki/Hue for more information. For instance the value -# 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300 -# purple, and 360 is red again. -# Minimum value: 0, maximum value: 359, default value: 220. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_HUE = 220 - -# The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors -# in the HTML output. For a value of 0 the output will use grayscales only. A -# value of 255 will produce the most vivid colors. -# Minimum value: 0, maximum value: 255, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_SAT = 100 - -# The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the -# luminance component of the colors in the HTML output. Values below 100 -# gradually make the output lighter, whereas values above 100 make the output -# darker. The value divided by 100 is the actual gamma applied, so 80 represents -# a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not -# change the gamma. -# Minimum value: 40, maximum value: 240, default value: 80. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_COLORSTYLE_GAMMA = 80 - -# If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML -# page will contain the date and time when the page was generated. Setting this -# to YES can help to show when doxygen was last run and thus if the -# documentation is up to date. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_TIMESTAMP = NO - -# If the HTML_DYNAMIC_MENUS tag is set to YES then the generated HTML -# documentation will contain a main index with vertical navigation menus that -# are dynamically created via JavaScript. If disabled, the navigation index will -# consists of multiple levels of tabs that are statically embedded in every HTML -# page. Disable this option to support browsers that do not have JavaScript, -# like the Qt help browser. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_MENUS = YES - -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML -# documentation will contain sections that can be hidden and shown after the -# page has loaded. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_DYNAMIC_SECTIONS = NO - -# With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries -# shown in the various tree structured indices initially; the user can expand -# and collapse entries dynamically later on. Doxygen will expand the tree to -# such a level that at most the specified number of entries are visible (unless -# a fully collapsed tree already exceeds this amount). So setting the number of -# entries 1 will produce a full collapsed tree by default. 0 is a special value -# representing an infinite number of entries and will result in a full expanded -# tree by default. -# Minimum value: 0, maximum value: 9999, default value: 100. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_INDEX_NUM_ENTRIES = 100 - -# If the GENERATE_DOCSET tag is set to YES, additional index files will be -# generated that can be used as input for Apple's Xcode 3 integrated development -# environment (see: https://developer.apple.com/xcode/), introduced with OSX -# 10.5 (Leopard). To create a documentation set, doxygen will generate a -# Makefile in the HTML output directory. Running make will produce the docset in -# that directory and running make install will install the docset in -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at -# startup. See https://developer.apple.com/library/archive/featuredarticles/Doxy -# genXcode/_index.html for more information. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_DOCSET = NO - -# This tag determines the name of the docset feed. A documentation feed provides -# an umbrella under which multiple documentation sets from a single provider -# (such as a company or product suite) can be grouped. -# The default value is: Doxygen generated docs. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_FEEDNAME = "Doxygen generated docs" - -# This tag specifies a string that should uniquely identify the documentation -# set bundle. This should be a reverse domain-name style string, e.g. -# com.mycompany.MyDocSet. Doxygen will append .docset to the name. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_BUNDLE_ID = org.doxygen.Project - -# The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify -# the documentation publisher. This should be a reverse domain-name style -# string, e.g. com.mycompany.MyDocSet.documentation. -# The default value is: org.doxygen.Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_ID = org.doxygen.Publisher - -# The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher. -# The default value is: Publisher. -# This tag requires that the tag GENERATE_DOCSET is set to YES. - -DOCSET_PUBLISHER_NAME = Publisher - -# If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three -# additional HTML index files: index.hhp, index.hhc, and index.hhk. The -# index.hhp is a project file that can be read by Microsoft's HTML Help Workshop -# (see: https://www.microsoft.com/en-us/download/details.aspx?id=21138) on -# Windows. -# -# The HTML Help Workshop contains a compiler that can convert all HTML output -# generated by doxygen into a single compiled HTML file (.chm). Compiled HTML -# files are now used as the Windows 98 help format, and will replace the old -# Windows help format (.hlp) on all Windows platforms in the future. Compressed -# HTML files also contain an index, a table of contents, and you can search for -# words in the documentation. The HTML workshop also contains a viewer for -# compressed HTML files. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_HTMLHELP = NO - -# The CHM_FILE tag can be used to specify the file name of the resulting .chm -# file. You can add a path in front of the file if the result should not be -# written to the html output directory. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_FILE = - -# The HHC_LOCATION tag can be used to specify the location (absolute path -# including file name) of the HTML help compiler (hhc.exe). If non-empty, -# doxygen will try to run the HTML help compiler on the generated index.hhp. -# The file has to be specified with full path. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -HHC_LOCATION = - -# The GENERATE_CHI flag controls if a separate .chi index file is generated -# (YES) or that it should be included in the main .chm file (NO). -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -GENERATE_CHI = NO - -# The CHM_INDEX_ENCODING is used to encode HtmlHelp index (hhk), content (hhc) -# and project file content. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -CHM_INDEX_ENCODING = - -# The BINARY_TOC flag controls whether a binary table of contents is generated -# (YES) or a normal table of contents (NO) in the .chm file. Furthermore it -# enables the Previous and Next buttons. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -BINARY_TOC = NO - -# The TOC_EXPAND flag can be set to YES to add extra items for group members to -# the table of contents of the HTML help documentation and to the tree view. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTMLHELP is set to YES. - -TOC_EXPAND = NO - -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and -# QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that -# can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help -# (.qch) of the generated HTML documentation. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_QHP = NO - -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify -# the file name of the resulting .qch file. The path specified is relative to -# the HTML output folder. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QCH_FILE = - -# The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help -# Project output. For more information please see Qt Help Project / Namespace -# (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace). -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_NAMESPACE = org.doxygen.Project - -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt -# Help Project output. For more information please see Qt Help Project / Virtual -# Folders (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual- -# folders). -# The default value is: doc. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_VIRTUAL_FOLDER = doc - -# If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom -# filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_NAME = - -# The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the -# custom filter to add. For more information please see Qt Help Project / Custom -# Filters (see: https://doc.qt.io/archives/qt-4.8/qthelpproject.html#custom- -# filters). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_CUST_FILTER_ATTRS = - -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this -# project's filter section matches. Qt Help Project / Filter Attributes (see: -# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#filter-attributes). -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHP_SECT_FILTER_ATTRS = - -# The QHG_LOCATION tag can be used to specify the location of Qt's -# qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the -# generated .qhp file. -# This tag requires that the tag GENERATE_QHP is set to YES. - -QHG_LOCATION = - -# If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be -# generated, together with the HTML files, they form an Eclipse help plugin. To -# install this plugin and make it available under the help contents menu in -# Eclipse, the contents of the directory containing the HTML and XML files needs -# to be copied into the plugins directory of eclipse. The name of the directory -# within the plugins directory should be the same as the ECLIPSE_DOC_ID value. -# After copying Eclipse needs to be restarted before the help appears. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_ECLIPSEHELP = NO - -# A unique identifier for the Eclipse help plugin. When installing the plugin -# the directory name containing the HTML and XML files should also have this -# name. Each documentation set should have its own identifier. -# The default value is: org.doxygen.Project. -# This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES. - -ECLIPSE_DOC_ID = org.doxygen.Project - -# If you want full control over the layout of the generated HTML pages it might -# be necessary to disable the index and replace it with your own. The -# DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top -# of each HTML page. A value of NO enables the index and the value YES disables -# it. Since the tabs in the index contain the same information as the navigation -# tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -DISABLE_INDEX = YES - -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index -# structure should be generated to display hierarchical information. If the tag -# value is set to YES, a side panel will be generated containing a tree-like -# index structure (just like the one that is generated for HTML Help). For this -# to work a browser that supports JavaScript, DHTML, CSS and frames is required -# (i.e. any modern browser). Windows users are probably better off using the -# HTML help feature. Via custom style sheets (see HTML_EXTRA_STYLESHEET) one can -# further fine-tune the look of the index. As an example, the default style -# sheet generated by doxygen has an example that shows how to put an image at -# the root of the tree instead of the PROJECT_NAME. Since the tree basically has -# the same information as the tab index, you could consider setting -# DISABLE_INDEX to YES when enabling this option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -GENERATE_TREEVIEW = YES - -# The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that -# doxygen will group on one line in the generated HTML documentation. -# -# Note that a value of 0 will completely suppress the enum values from appearing -# in the overview section. -# Minimum value: 0, maximum value: 20, default value: 4. -# This tag requires that the tag GENERATE_HTML is set to YES. - -ENUM_VALUES_PER_LINE = 4 - -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used -# to set the initial width (in pixels) of the frame in which the tree is shown. -# Minimum value: 0, maximum value: 1500, default value: 250. -# This tag requires that the tag GENERATE_HTML is set to YES. - -TREEVIEW_WIDTH = 250 - -# If the EXT_LINKS_IN_WINDOW option is set to YES, doxygen will open links to -# external symbols imported via tag files in a separate window. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -EXT_LINKS_IN_WINDOW = NO - -# If the HTML_FORMULA_FORMAT option is set to svg, doxygen will use the pdf2svg -# tool (see https://github.com/dawbarton/pdf2svg) or inkscape (see -# https://inkscape.org) to generate formulas as SVG images instead of PNGs for -# the HTML output. These images will generally look nicer at scaled resolutions. -# Possible values are: png (the default) and svg (looks nicer but requires the -# pdf2svg or inkscape tool). -# The default value is: png. -# This tag requires that the tag GENERATE_HTML is set to YES. - -HTML_FORMULA_FORMAT = png - -# Use this tag to change the font size of LaTeX formulas included as images in -# the HTML documentation. When you change the font size after a successful -# doxygen run you need to manually remove any form_*.png images from the HTML -# output directory to force them to be regenerated. -# Minimum value: 8, maximum value: 50, default value: 10. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_FONTSIZE = 10 - -# Use the FORMULA_TRANSPARENT tag to determine whether or not the images -# generated for formulas are transparent PNGs. Transparent PNGs are not -# supported properly for IE 6.0, but are supported on all modern browsers. -# -# Note that when changing this option you need to delete any form_*.png files in -# the HTML output directory before the changes have effect. -# The default value is: YES. -# This tag requires that the tag GENERATE_HTML is set to YES. - -FORMULA_TRANSPARENT = YES - -# The FORMULA_MACROFILE can contain LaTeX \newcommand and \renewcommand commands -# to create new LaTeX commands to be used in formulas as building blocks. See -# the section "Including formulas" for details. - -FORMULA_MACROFILE = - -# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see -# https://www.mathjax.org) which uses client side JavaScript for the rendering -# instead of using pre-rendered bitmaps. Use this if you do not have LaTeX -# installed or if you want to formulas look prettier in the HTML output. When -# enabled you may also need to install MathJax separately and configure the path -# to it using the MATHJAX_RELPATH option. -# The default value is: NO. -# This tag requires that the tag GENERATE_HTML is set to YES. - -USE_MATHJAX = NO - -# When MathJax is enabled you can set the default output format to be used for -# the MathJax output. See the MathJax site (see: -# http://docs.mathjax.org/en/latest/output.html) for more details. -# Possible values are: HTML-CSS (which is slower, but has the best -# compatibility), NativeMML (i.e. MathML) and SVG. -# The default value is: HTML-CSS. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_FORMAT = HTML-CSS - -# When MathJax is enabled you need to specify the location relative to the HTML -# output directory using the MATHJAX_RELPATH option. The destination directory -# should contain the MathJax.js script. For instance, if the mathjax directory -# is located at the same level as the HTML output directory, then -# MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax -# Content Delivery Network so you can quickly see the result without installing -# MathJax. However, it is strongly recommended to install a local copy of -# MathJax from https://www.mathjax.org before deployment. -# The default value is: https://cdn.jsdelivr.net/npm/mathjax@2. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_RELPATH = https://cdn.jsdelivr.net/npm/mathjax@2 - -# The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax -# extension names that should be enabled during MathJax rendering. For example -# MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_EXTENSIONS = - -# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces -# of code that will be used on startup of the MathJax code. See the MathJax site -# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an -# example see the documentation. -# This tag requires that the tag USE_MATHJAX is set to YES. - -MATHJAX_CODEFILE = - -# When the SEARCHENGINE tag is enabled doxygen will generate a search box for -# the HTML output. The underlying search engine uses javascript and DHTML and -# should work on any modern browser. Note that when using HTML help -# (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET) -# there is already a search function so this one should typically be disabled. -# For large projects the javascript based search engine can be slow, then -# enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to -# search using the keyboard; to jump to the search box use + S -# (what the is depends on the OS and browser, but it is typically -# , /